1 / 37

CS716 Advanced Computer Networks By A. Wahid Shaikh

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

vina
Download Presentation

CS716 Advanced Computer Networks By A. Wahid Shaikh

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Lecture No. 3

  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 part of header includes demultiplexing field (e.g., pass up to request/reply or to message stream?)

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

  5. Message Transmission Using Layers

  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

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

  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)

  9. 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 NET NET 2 1 n

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

  11. Network Models

  12. How Layers Fit Together in Practice

  13. Networking in the Internet Age

  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

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

  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

  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 …)

  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

  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

  20. 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

  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)

  22. 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)

  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

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

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

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

  27. Buffer Model buffer copy buffer copy

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

  29. abcdefg abcdefg Message Library (cont) • Reassemble messages • Fragment message m m1 m2 abcd efg msgFragment ( m , new , 3); msgReassemble(new, m1, m2) new m new defg abc +

  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)

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

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

  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”

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

  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

  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)

  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

More Related