f7ba8d03c5b55f35fb80e89d52e1cd7e.ppt
- Количество слайдов: 20
Network Input & Output CS-3013 & CS-502, Summer 2006 Network Input & Output 1
Computer Networks • Much more than can be covered in this course • CS 513, CS 577 • Outline • Protocol Stack • Kinds of network connections • Socket interface • Textbook: Networking is spread out over multiple chapters. • Distributed Computing • I/O Devices • Memory Management – Buffer allocation • Real Time OS CS-3013 & CS-502, Summer 2006 Network Input & Output 2
Computer C Process j Computer A The Network Process 1 Computer B Process i CS-3013 & CS-502, Summer 2006 Network Input & Output 3
Network Goal • Allow activities on multiple computer systems to communicate with each other • Shared memory (or data) • Message passing • Remote Procedure Call • Create abstractions that make these (relatively) transparent CS-3013 & CS-502, Summer 2006 Network Input & Output 4
Principal Abstraction – Socket • Originally created in BSD Unix • Subsequently, part of most OS’s • Allows opening a connection between two processes across network • Connection: – a serial conversation between two processes, threads, etc. , on different machines – organized as a sequence of messages or datagrams – distinct from all other connections CS-3013 & CS-502, Summer 2006 Network Input & Output 5
Network Stack • 1983 – Open System Interconnection (OSI) 7 layer Reference Model – Working group of the International Standards Organization (ISO) – Defines seven layers • Describe how applications communicate with each other – Via network-aware devices – Most day-to-day protocols • work on a slightly modified layer system • E. g. TCP/ IP uses a 6 -rather than a 7 -layer model CS-3013 & CS-502, Summer 2006 Network Input & Output 6
Network Stack (continued) • Arrived at 7 layer model – – Software architecture Created where a different layer of abstraction is needed Well defined function Layer chosen • with international standards being defined – Boundaries chosen • minimize information flow across interfaces – Number of layers: • Large enough – Distinct functions need not be thrown together – In the same layer out of necessity • Small enough – Architecture does not become unwieldy CS-3013 & CS-502, Summer 2006 Network Input & Output 7
The OSI 7 -layer model (in a nutshell) Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Silbershatz, §§ 16. 6 -16. 7 Physical Layer CS-3013 & CS-502, Summer 2006 Network Input & Output 8
The OSI 7 -layer model (continued) Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer CS-3013 & CS-502, Summer 2006 • Layer 1 – Physical Layer – Defines the physical and electrical characteristics of the network. • Transmitting of raw bits over the communication channel • Layer 2 – Data Link Layer – Take the raw transmission facility and transform it into an abstract link that appears free of errors to layer 3. • Error correcting coding (e. g. FEC) • Rate Control (Slow device not overrun by high speed device) Network Input & Output 9
The OSI 7 -layer model (continued) Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer CS-3013 & CS-502, Summer 2006 • Layer 3 – Network Layer – – Controlling the operation of the subnet How packets are routed Congestion Control Accounting function (billing) • Network Statistics – Example - IP layer (IPv 4, IPv 6) • Differences between v 4, v 6 source/destination addressing – V 4 – 32 bit addressing – V 6 – 128 bit addressing Network Input & Output 10
The OSI 7 -layer model (continued) Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer CS-3013 & CS-502, Summer 2006 • Layer 4 – Transport Layer – Accept data from layer 5 • Split it up into smaller units if need be • Passes these to the network layer • Ensures that the packets all arrive correctly at the destination • Isolates layer 5 from changes in the underlying hardware – Type of service to provide • Reliable or unreliable delivery – True end-to-end layer – Example - TCP or UDP Network Input & Output 11
The OSI 7 -layer model (continued) Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer CS-3013 & CS-502, Summer 2006 • Layer 5 - Session Layer – Allows users on different machines to establish sessions between them – Example SSL, RTP • Layer 6 – Presentation Layer – Performs certain functions that are requested sufficiently often to warrant finding a general solution for them rather than letting each user solve the problem – Example – encoding data • Layer 7 – Application Layer – User layer protocol, multiple protocols required – Example – http, ftp, smtp Network Input & Output 12
Example of OSI Model Sending Process Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer CS-3013 & CS-502, Summer 2006 Receiving Process Data AH PH Data SH TH NH DH Data Data Bits Network Input & Output DT Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer 13
TCP/IP – a subset Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer HTTP, DNS, Telnet, SMTP, FTP, SSH, etc. Not Defined TCP-UDP IP Device Physical Layer CS-3013 & CS-502, Summer 2006 Hardware Network Input & Output 14
Some Terms • Packet: – A unit of communication at Data Link layer – aka datagram • IP Address: – A four-part “number” used by Network Layer to route a packet from one computer to another • Port: – A 16 -bit number used within one computer to identify who/where to send packet to • Well-known port: – A port with number < 1024, used by agreement for standard services (telnet, ftp, smtp, pop, etc. ) CS-3013 & CS-502, Summer 2006 Network Input & Output 15
More Terms • Socket: – End point of a communication – Usually used in pairs, one for each direction – Comprises [IP Address: Port #] • Connection: – A logical linkage between pairs of sockets at two endpoints for purposes of a particular communication between those endpoints CS-3013 & CS-502, Summer 2006 Network Input & Output 16
Establishing a Connection • Process a on machine m creates a socket • OS assigns a new port number q to that socket • Process a attempts to open a connection to machine n: p • p is a well-known port • Process b on machine n is listening on p • Receives request from m: q • Process b forks a process or spawns a thread c to talk with m: q, then resumes listening on p • Thread/process c • Creates a new socket r for this connection • Replies to m: q with return address n: r • a and c continue to communicate over this pair of sockets until they are finished. CS-3013 & CS-502, Summer 2006 Network Input & Output 17
Reliable Connections • Transport layer partitions messages into packets • TCP – Transmission Control Protocol • Sequence number of current packet • Sequence number of last packet received correctly • Receiver keeps track of seq. # of packets • Reassembles in right order • Notify sender of missing, broken packets • Sender keeps copy of each packet until receipt acknowledged • Retransmits packets if no acknowledgement CS-3013 & CS-502, Summer 2006 Network Input & Output 18
Connection-less communication • UDP – User Datagram Protocol – Used when a certain number of errors can be tolerated and also – Where recovery from those errors is easy CS-3013 & CS-502, Summer 2006 Network Input & Output 19
Next Project 3 – a simple HTTP server and web client CS-3013 & CS-502, Summer 2006 Network Input & Output 20