800 likes | 1.12k Views
CS 352 Spring 2005 Internet Technology Fundamentals Dept. of Computer Science Rutgers University Administrative Class web page: http://remus.rutgers.edu/cs352/S05/ Not up yet (check Thursday noon) Notes/Slides Announcements Projects Homeworks Old exams Course Goals
E N D
CS 352Spring 2005Internet TechnologyFundamentals Dept. of Computer Science Rutgers University
Administrative Class web page: • http://remus.rutgers.edu/cs352/S05/ • Not up yet (check Thursday noon) • Notes/Slides • Announcements • Projects • Homeworks • Old exams
Course Goals • Understand the basic principles of computer networks • Understand the Internet and its protocols • Understand the key design principles used to build the Internet • Experience building network systems
Course goals (cont.) • Course is not about specific skills • E.g. configure a router from company X vs. learn principles of how all routers work • Success means you are confident to tackle a range of network programming, design and maintenance.
Course Approach • Lectures: theory behind how networks operate • Tested in exams • See last semesters’ classes for sample problems • Programming assignments: • Real world experience with networks • Program design • Communicating your design
Course Work • 2 Mid-terms (15% each) • Class participation (10%) • Final (30%) • Project (30%) • Part 1 (8%) • Part 2 (10%) • Part 3 (12%)
Programming assignments • Single long project • Broken into three parts • Can work in a group of 2 • Both program and write-up required • Background needed to get started: • Java (112+ level) • Comfortable using data structures(stacks, trees, vector) • Unix (login, handin, permissions, javac)
Programming Assignment • 2 Code reviews • 15 minute oral question and answer period. • TA an instructor will critically review your assignment. • “lost art” of program design. • Make improvements for next level of the assignment. • Grade depends on level of improvement in code quality as well as functionality.
Facilities • “Cereal” machines and lab • ~20 UltraSparc machines • ~30+ Linux machines • Romulus and remus for general use • Create your accounts now! • http://remus.rutgers.edu/newaccount.html • Cardkey Access: See your TA
Why Study Networks? • Integral part of society • Work, entertainment, community • Pervasive • Home, car, office, school, mall … • Understand what they do, how they work, and limitations • Any jobs left? • What happened to IT? • Future of the IT industry.
Impact of the Net on People • Anytime access to remote information • HW assignments from my server • Person-to-person and group communication • email, blogs, chat, meeting • Form and strengthen communities • chat rooms, MUDs, newsgroups
Impact of the Net on Society • Huge impact! • Continuation of technologies that reduce problems of time & space • (e.g. railroads,phone,autos,TV) • Good, bad and ugly • mirror of society • Changes still on the horizon • Commerce, services, entertainment, socializing
Internet Roles • Users • Everyone (mom and pop, kids) • work, leisure, serious, frivolous • Designers • protocol design and implementation • performance, cost and scale • Service Providers • Administrators and ISPs • Management, revenue, deployment
What is Internet Technology? • What is an internet? • Network of networks • What is the Internet? • A global internet based on the IP protocol • To what does “Internet technology” refer? • Architecture, protocols and services
Sample Internet Applications • Electronic mail • Remote terminal • File transfer • Newsgroups • File sharing • Resource distribution • World Wide Web • Video conferencing • Games
What is a Network? • Carrier of information between 2 or more entities • Interconnection may be any media capable of communicating information: • copper wire • lasers • microwave • satellite link
Some Definitions • Network: Collection of interconnected machines • Host: Machine running user application • Channel: Logical line of communication • Media: Physical process used • Protocol: Rules of communication • Router: decide were to send data next • Topology: How network is interconnected
How Do Computers Communicate? • With 1’s and 0’s • Computers only deal with 1’s and 0’s • So do networks • Must build all further structures from this basic representation • How do we transmit 1’s and 0’s in a network?
Physical Transmission A physical quantity (e.g. voltage), varying over time represents a digital 0 or 1
Concepts for this week • Layering and encapsulation • IP Hourglass • Core and Edge of the Internet • Circuit, message and packet switching • Single link transmission delay • Multi-link transmission delay • Circuit switching • Message switching • Packet switching • Computing general pipelining delay
Why Layering? • Network communication is very complex • Separation of concerns • Different vendors and organizations responsible for different layers • Testing and maintenance is simplified • Easy to replace a single layer with a different version
Protocol Hierarchy • Use layers to hide complexity • Each layer implements a service • Layer N uses service provided by layer N-1 • layer N-1 provides a service to layer N • Protocols • Each layer communicates with its peer by a set of rules • Interface • A layers interface specifies the operations
Protocol Hierarchy (cont’d) Host A Host B Layer 7 Protocol Layer 7 Layer 7 Layer 6 Protocol Layer 6 Layer 6 Layer 5 Protocol Layer 5 Layer 5 Layer 4 Protocol Layer 4 Layer 4 Layer 3 Protocol Layer 3 Layer 3 Layer 2 Protocol Layer 2 Layer 2 Layer 1 Protocol Layer 1 Layer 1 Physical Medium
Different Layering Architectures • ISO OSI 7-Layer Architecture • TCP/IP 4-Layer Architecture • + application layer = 5 layers in Kurose • Novell NetWare IPX/SPX 4-Layer Architecture
Standards Making Organizations ISO = International Standards Organization ITU = International Teletraffic Union (formerly CCITT) ANSI = American National Standards Institute IEEE = Institute of Electrical and Electronic Engineers IETF = Internet Engineering Task Force ATM Forum = ATM standards-making body ...and many more
Why So Many Standards Organizations? • Multiple technologies • Different areas of emphasis and history • Telecommunications/telephones • ITU,ISO,ATM • Local area networking/computers • IETF, IEEE • System area networks/storage • ANSI
ISO OSI Layering Architecture Host A Host B Application Protocol Application Layer Application Layer Presentation Protocol Presentation Layer Presentation Layer Session Protocol Session Layer Session Layer Transport Protocol Transport Layer Transport Layer Network Layer Network Layer Network Layer Network Layer Data Link Layer Data Link Layer Data Link Layer Data Link Layer Physical Layer Physical Layer Physical Layer Physical Layer Router Router
ISO’s Design Principles • A layer should be created where a different level of abstraction is needed • Each layer should perform a well-defined function • The layer boundaries should be chosen to minimize information flow across the interfaces • The number of layers should be large enough that distinct functions need not be thrown together in the same layer out of necessity, and small enough that the architecture does not become unwieldy
Layer 1: Physical Layer • Functions: • Transmission of a raw bit stream • Forms the physical interface between devices • Issues: • Which modulation technique (bits to pulse)? • How long will a bit last? • Bit-serial or parallel transmission? • Half- or Full-duplex transmission? • How many pins does the network connector have? • How is a connection set up or torn down?
Layer 2: Data Link Layer • Functions: • Provides reliable transfer of information between two adjacent nodes • Creates frames, or packets, from bits and vice versa • Provides frame-level error control • Provides flow control • In summary, the data link layer provides the network layer with what appears to be an error-free link for packets
Layer 3: Network Layer • Functions: • Responsible for routing decisions • Dynamic routing • Fixed routing • Performs congestion control
Layer 4: Transport Layer • Functions: • Hide the details of the network from the session layer • Example: If we want replace a point-to-point link with a satellite link, this change should not affect the behavior of the upper layers • Provides reliable end-to-end communication
Transport Layer (cont’d) Host A Host B Application Protocol Application Layer Application Layer first end-to-end layer Presentation Protocol Presentation Layer Presentation Layer Session Protocol Session Layer Session Layer Transport Protocol Transport Layer Transport Layer Network Layer Network Layer Network Layer Network Layer Data Link Layer Data Link Layer Data Link Layer Data Link Layer Physical Layer Physical Layer Physical Layer Physical Layer Router Router
Transport Layer (cont’d) • Functions (cont’d): • Perform end-to-end flow control • Perform packet retransmission when packets are lost by the network
Layer 5: Session Layer • May perform synchronization between several communicating applications or logical transmissions • Groups several user-level connections into a single “session” • Examples: • Banking session • Network meetings
Layer 6: Presentation Layer • Performs specific functions that are requested regularly by applications • Examples: • encryption • ASCII to Unicode, Unicode to ASCII • LSB-first representations to MSB-first representations
Layer 7: Application Layer • Application layer protocols are application-dependent • Implements communication between two applications of the same type • Examples: • FTP • Quake • SMTP (email)
Encapsulation Treat the neighboring layer’s information as a “black box”, can’t look inside or break message • Sending: add information needed by the current layer “around” the higher layers’ data • headers in front • trailers in back • Receiving: Strip off headers and trailers before handing up the stack
AH Data SH Data TH Data Encapsulation • Headers • Trailer Data Application Layer Presentation Layer PH Data Session Layer Transport Layer Network Layer NH Data Data Link Layer DH Data DT Physical Layer PH Data
FTP HTTP RTP TFTP UDP TCP IP … Ethernet 802.11 PPP CAT-5 Single-Mode Fiber RS-232 Internet “Hourglass” Architecture • Defined by Internet Engineering Task Force (IETF) • “Hourglass” Design
Internet Design Principles • Scale • Protocols should work in networks of all sizes and distances • Incremental deployment • New protocols need to be deployed gradually • Heterogeneity • Different technologies, autonomous organizations • End-to-end argument • Some functions can only be correctly implemented at the end hosts; the network should not provided these.
TCP/IP Layering Architecture • A simplified model • The network layer • Hosts drop packets into this layer, layer routes towards destination- only promise- try my best • The transport layer • reliable byte-oriented stream Application Transport Internet/Network Host-to-Net
Host A Application Layer Transport Layer Network Layer Host-to- Net Layer TCP/IP Layering Architecture (cont’d) Host B Application Protocol Application Layer Transport Protocol (TCP) Transport Layer IP IP IP Network Layer Network Layer Network Layer Host-to- Net Layer Host-to- Net Layer Host-to- Net Layer
Internet Topology • Current structure divides network into the “core” and “edge” networks • Core ISP’s “tiers” • Tier 1: Biggest ISPs • E.g. MCI, Sprint, AT&T • Tier 2 and 3: Regional and very small. • Edges: • Companies, organizations with a “default route” • E.g. Rutgers
Edge Networks Internet Service Provider 1 Company A ISP 2 Company B Edge router
Internet Service Provider 1 Company A ISP 2 Company B Core Networks
Single link Network Performance A Brief Introduction
Why Study Network Performance • Networks cost $ • OC-3 line ~= $10,000/month • Cable modem: $40/month • Are you getting your $/worth? • Why is the network “slow”? • Approach: • Build abstract models of network performance • Observe where real networks deviate from model • Simple Models: Tells us average/best/worse cases->useful, practical • Complex Models: Hard to understand -> useless
Digression: Units • Bits are the units used to describe an amount of data in a network • 1 kilobit (Kbit) = 1 x 103 bits = 1,000 bits • 1 megabit (Mbit) = 1 x 106 bits = 1,000,000 bits • 1 gigabit (Gbit) = 1 x 109 bits = 1,000,000,000 bits • Seconds are the units used to measure time • 1 millisecond (msec) = 1 x 10-3 seconds = 0.001 seconds • 1 microsecond (msec) = 1 x 10-6 seconds = 0.000001 seconds • 1 nanosecond (nsec) = 1 x 10-9 seconds = 0.000000001 seconds • Bits per second are the units used to measure channel capacity/bandwidth and throughput • bit per second (bps) • kilobits per second (Kbps) • megabits per second (Mbps)