Examples of Protocol Two protocols will be studied in your first lab Http is the protocol used for browsing website Web browser <---- Web server http://www.youtube.com/watch?v=1iqfitndozo&feature=related SMTP is the protocol used for sending emails Email client software <---- SMTP server a new application usually uses a new protocol, e. g. Bit Torrent protocol http:/len.wikipediaorg/wiki/bittorrent_(prOtocol) TCP is a protocol used by internet hosts for reliable data transmission - Recall that Internet packets could be lost inside the Internet IEEE 802. 11 is the protocol used in WiFi How to coordinate a number of wireless devices within a wifi network? 6
6 Examples of Protocol • Two protocols will be studied in your first lab — HTTP is the protocol used for browsing website • Web browser <----> Web server • http://www.youtube.com/watch?v=1IQFjTnDozo&feature=related — SMTP is the protocol used for sending emails • Email client software < ---- > SMTP server • A new application usually uses a new protocol, e.g. BitTorrent protocol: http://en.wikipedia.org/wiki/BitTorrent_(protocol) • TCP is a protocol used by Internet hosts for reliable data transmission — Recall that Internet packets could be lost inside the Internet • IEEE 802.11 is the protocol used in WiFi — How to coordinate a number of wireless devices within a WiFi network?
Need For protocol architecture There are lots of network applications Building each application from scratch is very time-consuming and challenging What commands should be supported -How to respond to each command? -How to identify the two peer applications? Each computer may run multiple applications -How to identify the two computers? -How to convert the data into bit stream? -How to convert the bit stream into signals? How to detect and handle data loss and data error? The network is not perfect -Etc
7 Need For Protocol Architecture • There are lots of network applications • Building each application from scratch is very time-consuming and challenging —What commands should be supported? —How to respond to each command? —How to identify the two peer applications? • Each computer may run multiple applications! —How to identify the two computers? —How to convert the data into bit stream? —How to convert the bit stream into signals? —How to detect and handle data loss and data error? • The network is not perfect! —Etc
(Cont) Most of the network apps share some common modules Application A Application B Application C Module a Module b Module c Module t Module t Module t Module i Module i Module i C ommon Module n Module n Module n modules Module p Module p Module p 8
8 (Cont.) • Most of the network apps share some common modules Application A Module A Module T Module I Module N Module P Application B Module B Module T Module I Module N Module P Application C Module C Module T Module I Module N Module P Common modules
(Cont) a complex task is broken into subtasks: modular design Each subtask is implemented separately as a layer arranged in a vertical stack Each layer performs a related subset of the functions required to communicate with another system It relies on the next lower layer to perform more primitive functions and to conceal the details of those functions -It provides services to the next higher layer. Layers should be defined so that changes in one layer do not require changes in other layers. So, instead of using a single complex protocol, it's more flexible to implement a stack of protocols! Reduce the design and development workload significantly
9 (Cont.) • A complex task is broken into subtasks: modular design — Each subtask is implemented separately as a layer, arranged in a vertical stack • Each layer performs a related subset of the functions required to communicate with another system. — It relies on the next lower layer to perform more primitive functions and to conceal the details of those functions. — It provides services to the next higher layer. — Layers should be defined so that changes in one layer do not require changes in other layers. • So, instead of using a single complex protocol, it’s more flexible to implement a stack of protocols! — Reduce the design and development workload significantly!
Vertical stack Application A Application B Application C Application developers Modulea Module Module C Module t Operating system Module i Module n Hardware be replaced by other modules Module p斗 →| Module w 10
10 Vertical Stack Application A Module A Module T Module I Module N Module P Application B Module B Module C Application C Module W can be replaced by other modules Application developers Operating System Hardware