Скачать презентацию CS 716 Advanced Computer Networks By Dr Amir Скачать презентацию CS 716 Advanced Computer Networks By Dr Amir

d2c64891e7d9a1b90b4c6913b00d90bc.ppt

  • Количество слайдов: 37

CS 716 Advanced Computer Networks By Dr. Amir Qayyum 1 CS 716 Advanced Computer Networks By Dr. Amir Qayyum 1

Lecture No. 3 Lecture No. 3

Protocol Machinery Multiplexing and Demultiplexing (demux key) Encapsulation (header/body) in peer-to-peer interfaces indirect communication 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? )

Encapsulation Host 1 Host 2 Application program Data RRP RRP Data HHP HHP RRP Encapsulation Host 1 Host 2 Application program Data RRP RRP Data HHP HHP RRP Data 4

Message Transmission Using Layers 5 Message Transmission Using Layers 5

Standard Architectures • Open System Interconnect (OSI) Architecture – International Standards Organization (ISO) – 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 6

OSI Architecture End host Application User level OS kernel Application Presentation Data formatting Session OSI Architecture End host Application User level OS kernel Application Presentation Data formatting Session Connection management Transport Process-to-process communication channel Network Data link Physical Host-to-host packet delivery Framing of data bits Transmission of raw bits One or more nodes within the network 7

Internet Architecture • TCP/IP Architecture – Developed with ARPANET and NSFNET – Internet Engineering 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) 8

Internet Architecture • Implementation and design done together • Hourglass Design (bottleneck is IP) Internet Architecture • Implementation and design done together • Hourglass Design (bottleneck is IP) • Application vs Application Protocol (FTP, HTTP) FTP HTTP NV TFTP UDP TCP IP NET 1 NET 2 … NETn 9

Internet Architecture • Layering is not very strict Application TCP UDP IP Network 10 Internet Architecture • Layering is not very strict Application TCP UDP IP Network 10

Network Models 11 Network Models 11

How Layers Fit Together in Practice 12 How Layers Fit Together in Practice 12

Networking in the Internet Age 13 Networking in the Internet Age 13

Protocol Acronyms • • • (T)FTP – (Trivial) File Transfer Protocol HTTP – Hyper 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 14

Elements of a Protocol Implementation • Outline – – Service Interface Process Model Common Elements of a Protocol Implementation • Outline – – Service Interface Process Model Common Subroutines Example Protocol 15

Network Software • Major factors for runaway success of the Internet: – most functionalities 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 16

Network Application Programming Interface (API) • Interface that the OS provides to its networking 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 …) 17

Protocols and API • Protocols provide a certain set of services • API provides 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 18

Socket API • Use sockets as “abstract endpoints” of communication • Issues – Creating 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 19

Socket API • Creating a socket int socket(int domain, int type, int protocol) • Socket API • Creating a socket int 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 20

Sockets (cont) • Passive Open (on server) int bind(int socket, struct sockaddr *addr, int 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) 21

Sockets (cont) • Sending Messages int send(int socket, char *msg, int mlen, int flags) Sockets (cont) • Sending Messages int send(int socket, char *msg, int mlen, int flags) • Receiving Messages int recv(int socket, char *buf, int blen, int flags) 22

Protocol-to-Protocol Interface • A protocol interacts with a lower level protocol like an application 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 23

Protocol-to-Protocol Interface Issues • Configure multiple layers – static versus extensible • Process Model Protocol-to-Protocol Interface Issues • Configure multiple layers – static versus extensible • Process Model – avoid context switches • Buffer Model – avoid data copies 24

Process Model procedure call inter-process communication (a) Process-per-Protocol (b) Process-per-Message 25 Process Model procedure call inter-process communication (a) Process-per-Protocol (b) Process-per-Message 25

Process Model (cont. ) int send(Protocol llp, Msg *message) int deliver(Protocol hlp, Msg *message) Process Model (cont. ) int send(Protocol llp, Msg *message) int deliver(Protocol hlp, Msg *message) 26

Buffer Model buffer copy 27 Buffer Model buffer copy 27

Message Library • Add header m • Strip header m abcdefg bcopy (“ xyz” Message Library • Add header m • Strip header m abcdefg bcopy (“ xyz” , hdr , 3); msg. Add. Hdr (m, hdr, 3); hdr =msg. Strip. Hdr (m, 3); m m defg + hdr = “ abc” xyzabcdefg 28

Message Library (cont) • Fragment message m m 1 abcdefg m + m 2 Message Library (cont) • Fragment message m m 1 abcdefg m + m 2 abcd msg. Fragment (m, new, 3); new defg • Reassemble messages abc efg msg. Reassemble(new, m 1, m 2) new abcdefg 29

Network Programming • Things to learn – Internet protocols (IP, TCP, UDP, …) – 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) 30

OSI Model application layers Internet Protocols FTP network physical NV TFTP UDP TCP transport OSI Model application layers Internet Protocols FTP network physical NV TFTP UDP TCP transport data link HTTP IP FDDI Ethernet … ATM 31

Programming transport network • learn to use Internet for communication (with focus on implementation Programming transport network • learn to use Internet for communication (with focus on implementation of networking concepts) data link physical Principles and concepts • learn to build network from ground up 32

Socket Programming • Reading: Stevens 2 nd edition, Chapter 1 -6 • Sockets API: Socket Programming • Reading: Stevens 2 nd 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 superuser); known as “data-link sockets” 33

Outline • • • Client-server model TCP connections UDP services Addresses and data Sockets Outline • • • Client-server model TCP connections UDP services Addresses and data Sockets API Example of usage 34

Client-Server Model • Asymmetric relationship • Server/daemon – well-known name – waits for contact Client-Server Model • Asymmetric relationship • Server/daemon – well-known name – waits for contact – process requests, sends replies • Client server client – initiates contact – waits for response 35

Client-Server Model • Bidirectional communication channel • Service models – sequential: server processes only 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) 36

Review Lecture 3 • • Protocol Machinery - Encapsulation Standard architectures: OSI, Internet Network 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 37