Title: Network Input
1Network Input Output
- CS-502 Operating Systems
- Spring 2006
2Computer 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
3(No Transcript)
4Network 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
5Principal Abstraction Socket
- Originally created in BSD Unix
- Subsequently in most OSs
- Allows opening a connection between two processes
across network
6Network Stack
- 1983 Open System Interconnection (OSI) 7 layer
Reference Model - Working group of the International Standards
Organization (ISO) - Defines seven layers
- Describe how applications
- Running upon network-aware devices
- Communicate with each other
- 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
7Network 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
8The OSI 7-layer model (in a nutshell)
9The OSI 7-layer model (continued)
- 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 a line that appears free of errors to
layer 3. - Error correcting coding (e.g. FEC)
- Rate Control (Slow device not overrun by high
speed device)
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data Link Layer
Physical Layer
10The OSI 7-layer model (continued)
- Layer 3 Network Layer
- Controlling the operation of the subnet
- How packets are routed
- Congestion Control
- Accounting function (billing)
- Network Statistics
- Example - IP layer (IPv4, IPv6)
- Differences between v4, v6 source/destination
addressing - V4 32 bit addressing
- V6 128 bit addressing
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data Link Layer
Physical Layer
11The OSI 7-layer model (continued)
- 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
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data Link Layer
Physical Layer
12The OSI 7-layer model (continued)
- 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
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data Link Layer
Physical Layer
13Example of OSI Model
Sending Process
Receiving Process
Data
Application Layer
Application Layer
AH
Data
Presentation Layer
Presentation Layer
PH
Data
Session Layer
Session Layer
SH
Data
Transport Layer
Transport Layer
TH
Data
Network Layer
Network Layer
NH
Data
Data Link Layer
Data Link Layer
DH
Data
DT
Physical Layer
Physical Layer
Bits
14TCP/IP a subset
Application Layer
HTTP, DNS, Telnet,SMTP, FTP, SSH, etc.
Presentation Layer
Not Defined
Session Layer
Not Defined
Transport Layer
TCP-UDP
Network Layer
IP
Data Link Layer
Device
Physical Layer
Hardware
15Some Terms
- Packet
- A unit of communication at Data Link layer
- 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 lt 1024, used by agreement for
standard services (telnet, ftp, smtp, pop, etc.)
16More 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
17Establishing 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 np - p is a well-known port
- Process b on machine n is listening on p
- Receives request from mq
- Process b forks/spawns a process/thread c to talk
with mq, then resumes listening - Thread/process c
- Creates a new socket r for this connection
- Replies to mq with return address nr
- a and c continue to communicate over this pair of
sockets until they are finished.
18Reliable 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
19Connection-less communication
- UDP User Datagram Protocol
- Used when a certain number of errors can be
tolerated
20Next time
- Will assign Project 4 a simple HTTP server and
web client - Using sockets