cs716 advanced computer networks by a. wahid shaikh

37
1 CS716 Advanced Computer Networks By A. Wahid Shaikh

Upload: vina

Post on 16-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

CS716 Advanced Computer Networks By A. Wahid Shaikh. 1. Lecture No. 3. 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS716 Advanced Computer Networks By  A. Wahid Shaikh

1

CS716

Advanced Computer Networks

By A. Wahid Shaikh

Page 2: CS716 Advanced Computer Networks By  A. Wahid Shaikh

Lecture No. 3

Page 3: CS716 Advanced Computer Networks By  A. Wahid Shaikh

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

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

5

Message Transmission Using Layers

Page 6: CS716 Advanced Computer Networks By  A. Wahid Shaikh

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

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

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

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

10

Internet Architecture

• Layering is not very strict

Application

TCP UDP

IP

Network

Page 11: CS716 Advanced Computer Networks By  A. Wahid Shaikh

11

Network Models

Page 12: CS716 Advanced Computer Networks By  A. Wahid Shaikh

12

How Layers Fit Together in Practice

Page 13: CS716 Advanced Computer Networks By  A. Wahid Shaikh

13

Networking in the Internet Age

Page 14: CS716 Advanced Computer Networks By  A. Wahid Shaikh

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

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

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

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

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

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

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

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

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

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

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

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

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

27

Buffer Model

send()deliver()

Topmost protocol

Application process

buffer copy buffer copy

Page 28: CS716 Advanced Computer Networks By  A. Wahid Shaikh

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

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

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

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

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

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

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

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

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

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