CS716 Advanced Computer Networks By A. Wahid Shaikh
description
Transcript of CS716 Advanced Computer Networks By A. Wahid Shaikh
![Page 1: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/1.jpg)
1
CS716
Advanced Computer Networks
By A. Wahid Shaikh
![Page 2: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/2.jpg)
Lecture No. 3
![Page 3: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/3.jpg)
Protocol Machinery
Multiplexing and Demultiplexing (demux key)Encapsulation (header/body) in peer-to-peer interfaces
indirect communication (except at hardware level)each protocol adds a header
part of header includes demultiplexing field (e.g., pass up to request/reply or to message stream?)
![Page 4: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/4.jpg)
4
Encapsulation
Host 1 Host 2
Applicationprogram
Applicationprogram
Data Data
RRP RRP
RRP Data RRP Data
HHP HHP
RRP DataHHP
![Page 5: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/5.jpg)
5
Message Transmission Using Layers
![Page 6: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/6.jpg)
6
Standard Architectures
• Open System Interconnect (OSI) Architecture– International Standards Organization (ISO)
– International Telecommunications Union (ITU), formerly CCITT
– “X dot” series: X.25, X.400, X.500
– Primarily a reference model
![Page 7: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/7.jpg)
7
OSI Architecture
Application
Presentation
Session
Transport
End host
One or more nodeswithin the network
Network
Data link
Physical
Network
Data link
Physical
Network
Data link
Physical
Application
Presentation
Session
Transport
End host
Network
Data link
Physical
Application
Data formatting
Connection management
Process-to-process communication channel
Host-to-host packet delivery
Framing of data bits
Transmission of raw bits
User level
OS kernel
![Page 8: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/8.jpg)
8
Internet Architecture
• TCP/IP Architecture– Developed with ARPANET and NSFNET
– Internet Engineering Task Force (IETF)
• Culture: implement, then standardize
• OSI culture: standardize, then implement
– Became popular with release of Berkeley Software Distribution (BSD) Unix; i.e. free software
– Standard suggestions traditionally debated publically through “Request For Comments” (RFC’s)
![Page 9: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/9.jpg)
9
Internet Architecture
• Implementation and design done together• Hourglass Design (bottleneck is IP)• Application vs Application Protocol (FTP, HTTP)
… NETnNET2NET1
IP
TCP UDP
FTP HTTP NV TFTP
![Page 10: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/10.jpg)
10
Internet Architecture
• Layering is not very strict
Application
TCP UDP
IP
Network
![Page 11: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/11.jpg)
11
Network Models
![Page 12: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/12.jpg)
12
How Layers Fit Together in Practice
![Page 13: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/13.jpg)
13
Networking in the Internet Age
![Page 14: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/14.jpg)
14
Protocol Acronyms• (T)FTP – (Trivial) File Transfer Protocol
• HTTP – Hyper Text Transport Protocol
• NV – Network Video
• SMTP – Simple Mail Transfer Protocol
• NTP – Network Time Protocol
• TCP – Transmission Control Protocol
• UDP – User Datagram Protocol
• IP – Internet Protocol
• FDDI – Fiber Distributed Data Interface
• ATM – Asynchronous Transfer Mode
![Page 15: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/15.jpg)
15
Elements of a Protocol Implementation
• Outline– Service Interface– Process Model– Common Subroutines– Example Protocol
![Page 16: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/16.jpg)
16
Network Software
• Major factors for runaway success of the Internet:– most functionalities provided by software running on
general-purpose computers
• new services can be added readily with just a small matter of programming
• Understanding how to implement network software is essential to understand computer networks
![Page 17: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/17.jpg)
17
Network Application Programming Interface (API)
• Interface that the OS provides to its networking subsystem– most network protocols are implemented in software
– all systems implement network protocols as part of the OS
– each OS is free to define its own network API
– applications can be ported from one OS to another if APIs are similar
• *IF* application program does not interact with other parts of the OS other than the network (file system, fork processes, display …)
![Page 18: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/18.jpg)
18
Protocols and API
• Protocols provide a certain set of services
• API provides a syntax by which those services can be invoked
• Implementation is responsible for mapping API syntax onto protocol services
![Page 19: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/19.jpg)
19
Socket API• Use sockets as “abstract endpoints” of
communication• Issues
– Creating & identifying sockets– Sending & receiving data
• Mechanisms– UNIX system calls and library routines
socket
process
![Page 20: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/20.jpg)
20
Socket API
• Creating a socketint socket(int domain, int type, int protocol)
• domain (family) = AF_INET, PF_UNIX, AF_OSI• type = SOCK_STREAM, SOCK_DGRAM• protocol = TCP, UDP, UNSPEC• return value is a handle for the newly created
socket
![Page 21: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/21.jpg)
21
Sockets (cont)
• Passive Open (on server)int bind(int socket, struct sockaddr *addr, int
addr_len)int listen(int socket, int backlog)int accept(int socket, struct sockaddr *addr,
int addr_len)
• Active Open (on client)int connect(int socket, struct sockaddr *addr,
int addr_len)
![Page 22: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/22.jpg)
22
Sockets (cont)
• Sending Messagesint send(int socket, char *msg, int mlen, int
flags)
• Receiving Messagesint recv(int socket, char *buf, int blen, int
flags)
![Page 23: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/23.jpg)
23
Protocol-to-Protocol Interface• A protocol interacts with a lower level protocol
like an application interacts with underlying network
• Why not using available network APIs for PPI ?– Inefficiencies built into the socket interface
• application programmer tolerate them to simplify their task
– inefficiency at one level
• protocol implementers do not tolerate them– inefficiencies at several layers of protocols
![Page 24: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/24.jpg)
24
Protocol-to-Protocol Interface Issues
• Configure multiple layers– static versus extensible
• Process Model– avoid context switches
• Buffer Model– avoid data copies
![Page 25: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/25.jpg)
25
Process Model
(a) (b)Process-per-Protocol Process-per-Message
inter-process communication
procedure call
![Page 26: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/26.jpg)
26
Process Model (cont.)
IP
TCP
send(IP, message) deliver(TCP, message)
int send(Protocol llp, Msg *message)int deliver(Protocol hlp, Msg *message)
![Page 27: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/27.jpg)
27
Buffer Model
send()deliver()
Topmost protocol
Application process
buffer copy buffer copy
![Page 28: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/28.jpg)
28
Message Library
• Add header
abcdefg
bcopy (“ xyz” , hdr , 3);msgAddHdr (m, hdr, 3);
xyzabcdefg
m
m
abcdefg
hdr = msgStripHdr (m, 3);
defg + hdr = “ abc”
m
m
• Strip header
![Page 29: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/29.jpg)
29
Message Library (cont)
• Fragment message
new
m
m
abcdefg
defg + abc
msgFragment (m, new, 3);
m1 m2
new
abcd efg
msgReassemble(new, m1, m2)
• Reassemble messages
abcdefg
![Page 30: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/30.jpg)
30
Network Programming
• Things to learn– Internet protocols (IP, TCP, UDP, …)– Sockets API (Application Programming Interface)
• Why IP and sockets• allows a common name space across most of Internet
– IP (Internet Protocol) is standard• reduces number of translations, which incur overhead
– Sockets: reasonably simple and elegant Unix interface (most servers run Unix)
![Page 31: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/31.jpg)
31
OSI Model Internet Protocols
…physical
data link
network
transport
application layers TFTPNVHTTPFTP
UDPTCP
IP
FDDI Ethernet ATM
![Page 32: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/32.jpg)
32
• learn to use Internet for communication (with focus on implementation of networking concepts)
• learn to build network from ground up
physical
data link
network
transport
Programming
Principles and concepts
![Page 33: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/33.jpg)
33
Socket Programming
• Reading: Stevens 2nd edition, Chapter 1-6• Sockets API: a transport layer service interface
– introduced in 1981 by BSD 4.1
– implemented as library and/or system calls
– similar interfaces to TCP and UDP
– can also serve as interface to IP (for super-user); known as “raw sockets”
– Linux also provides interface to MAC layer (for super-user); known as “data-link sockets”
![Page 34: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/34.jpg)
34
Outline
• Client-server model• TCP connections• UDP services• Addresses and data• Sockets API• Example of usage
![Page 35: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/35.jpg)
35
Client-Server Model
• Asymmetric relationship• Server/daemon
– well-known name
– waits for contact
– process requests, sends replies
• Client– initiates contact
– waits for response
server
client client
client
![Page 36: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/36.jpg)
36
Client-Server Model• Bidirectional communication channel• Service models
– sequential: server processes only one client’s requests at a time
– concurrent: server processes multiple clients’ requests simultaneously
– hybrid: server maintains multiple connections, but processes requests sequentially
• Server and client categories not disjoint– server can be client of another server– server as client of its own client (peer-to-peer
architecture)
![Page 37: CS716 Advanced Computer Networks By A. Wahid Shaikh](https://reader036.fdocuments.us/reader036/viewer/2022062804/56814a74550346895db78c44/html5/thumbnails/37.jpg)
37
Review Lecture 3
• Protocol Machinery - Encapsulation
• Standard architectures: OSI, Internet
• Network models and layering
• Elements of protocol implementation
• Network software
• Network API – Socket API – PPI
• Process and buffer model
• Programming – Client server model