1 / 32

CSCI 4550/8556 Computer Networks

CSCI 4550/8556 Computer Networks. Comer, Chapter 16: Protocols and Layering. Introduction. LAN/WAN hardware can't solve all computer communication problems Software for LAN and WAN systems is large and complicated

thalia
Download Presentation

CSCI 4550/8556 Computer Networks

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. CSCI 4550/8556Computer Networks Comer, Chapter 16: Protocols and Layering

  2. Introduction • LAN/WAN hardware can't solve all computer communication problems • Software for LAN and WAN systems is large and complicated • Layering is a structuring technique to organize networking software design and implementation

  3. Why Network Software? • Sending data through raw hardware is awkward and inconvenient - doesn't match programming paradigms well • Equivalent to accessing files by making calls to disk controller to position read/write head and accessing individual sectors • May not be able to send data to every destination of interest without other assistance • Network software provides high-level interface to applications

  4. Why Protocols? • The name is derived from the Greek protokollen, the index to a scroll • Diplomats use rules, called protocols, as guides to formal interactions • A network protocol or computer communication protocol is a set of rules that specify the format and meaning of messages exchanged between computers across a network. • The format is sometimes called syntax • The meaning is sometimes called semantics • Protocols are implemented by protocol software

  5. One Protocol, or Many Protocols? • Computer communication across a network is a very hard problem. • Complexity requires multiple protocols, each of which manages a part of the problem. • The protocols may be simple or complex, but they must all work together.

  6. Protocol “Suites” • A set of related protocols that are designed for compatibility is called a protocol suite . • Protocol suite designers: • analyze communication problem • divide the problems into subproblems • design a protocol for each subproblem • A well-designed protocol suite • is efficient and effective - solves the problem without redundancy and makes best use of network capacity • allows replacement of individual protocols without changes to other protocols

  7. Layered Protocol Design • A layering model is a solution to the problem of complexity in network protocols. • The model suggests dividing the network protocol into layers, each of which solves part of the network communication problem. • These layers have several constraints, which ease the design problem. • A network protocol suite is designed to have a protocol or protocols for each layer.

  8. The ISO 7-Layer Reference Model • The International Organization for Standards (ISO) defined a 7-layer reference model as a guide to the design of a network protocol suite. • The layers are named and numbered; reference to “layer n” often means the nth layer of the ISO 7-layer reference model.

  9. The Layers in the ISO Model • Caveat - many modern protocols do not exactly fit the ISO model, and the ISO protocol suite is mostly of historic interest. • The concepts are still very useful and terminology persists. • The layers: • Layer 7: Application - Application-specific protocols such as FTP and SMTP (electronic mail) • Layer 6: Presentation - Common formats for representation of data • Layer 5: Session - Management of sessions such as login to a remote computer • Layer 4: Transport - Reliable delivery of data between computers • Layer 3: Network - Address assignment and data delivery across a physical network • Layer 2: Data Link - Format of data in frames and delivery of frames through network interface • Layer 1: Physical - Basic network hardware - such as RS-232 or Ethernet

  10. Layered Software Implementation • Software implemented from layered design has layered organization. • Software modules can be viewed as shown on the right.

  11. Layered Software and Stacks • Related modules from previous figure are called a protocol stack or simply a stack. • There are two constraints: • The software for each layer depends only on the services of the software provided by lower layers. • The software at layer n at the destination receives exactly the same protocol message sent by layer n at the sender. • These constraints mean that protocols can be tested independently and can be replaced within a protocol stack.

  12. The Layering Principle

  13. Messages and Protocol Stacks • On the sender, each layer: • accepts an outgoing message from the layer above, • adds a header and perhaps performs other processing, • then passes resulting message to next lower layer. • On the receiver, each layer: • receives an incoming message from the layer below, • removes the header for that layer and performs other processing, • then passes the resulting message to the next higher layer.

  14. Examples of Commercial Stacks

  15. Protocol Headers • The software at each layer communicates with the corresponding remote layer through information stored in headers. • Each layer adds its header to the front of the message from the next higher layer. • Headers are nested at the front of the message as the message traverses the network.

  16. Control Packets • Protocol layers often need to communicate directly without exchanging data. For example, they might • acknowledge incoming data, or • request the next data packet. • To accomplish this, the layers use control packets. • Those control packets generated by layer n on sender are interpreted by layer n on the receiver. • The control packets are ransmitted like any other packet by layers n-1 and below.

  17. Techniques for Reliable Network Communication • The model - reliable delivery of a block of data from one computer to another means • no data values have been changed, • the data is in the same order as when transmitted, • no data is missing, and • no data is duplicated. • Example - parity bit, checksum and CRC can be used to ensure the data is unchanged.

  18. Out of Order Delivery • Packets may be delivered out of order - especially in systems that include multiple networks. • Out of order delivery can be detected and corrected through sequencing . • The sender attaches a sequence number to each outgoing packet. • The receiver uses sequence numbers to put packets back in order and to detect missing packets.

  19. Duplicate Packet Delivery • Packets may be duplicated during transmission. • Sequencing can be used to • detect duplicate packets (which will have duplicate sequence numbers), and • discard those duplicate packets.

  20. Lost Packets • Perhaps the most widespread problem is that of lost packets. • Any error – a single bit error or incorrect length - causes the receiver to discard the packet. • This is a difficult problem to solve: how does the receiver decide when a packet has been lost?

  21. Retransmission • Most protocols use positive acknowledgment with retransmission (PAR) to deal with the problem of lost packets • The receiver sends a short message acknowledging receipt of good packets. • The sender infers packets have been lost from missing acknowledgments for those packets. • The sender retransmits those lost packets. • The sender sets a timer for each outgoing packet, and saves a copy of the packet until an acknowledgement for it is received. • If the timer expires before the acknowledgment is received, the sender can retransmit the saved copy. • Protocols define an upper bound on retransmission to detect unrecoverable network failure.

  22. Avoiding the Replay of Old Packets • Sufficiently delayed packets may be inserted into later sessions; this is called a replay error. • Example: • Suppose two computers exchange data with packets numbered 1 to 5. • Packet 4 encounters an extraordinary delay; the computers use retransmission to deliver a valid copy of packet 4. • Later on, two computers exchange different data with packets numbered 1 to 10. • Now the initial “packet 4” arrives (during the second session), so that the data from that old packet (rather than the current “packet 4”) is inserted into the data stream! • Protocols may attach a session number to each packet in a protocol session to differentiate packets from different sessions.

  23. Flow Control • Data overrun can occur when a sender transmits data faster than the receiver can process the incoming data. • Protocols use flow control mechanisms through which the receiver can control the rate of data transmission. Two common mechanisms are • stop-and-go • sliding windows

  24. Stop and Go Flow Control • The receiver sends a small control packet when it is ready for the next packet. • The sender waits for the control packet before sending the next packet. • This technique can be very inefficient of network bandwidth if the delivery time is large (as it is with satellite networks).

  25. Sliding Windows • This common technique allows the sender to transmit multiple packets before receiving an acknowledgment. • The number of packets that can be sent and their sequence number range is defined by the protocol and is called the window . • As acknowledgments arrive from the receiver, the window is moved along the data packets. • This is the origin of the term “sliding window.”

  26. Example of a Sliding Window • Transmission begins with (a). • In (b), two packets have been acknowledged. • In (c), eight packets have been acknowledged, and the four packets in the window are being transmitted.

  27. Stop-and-Go vs. Sliding Window • In (a), we see the sequence of transmissions for a protocol using stop-and-go. If one packet takes N time units to traverse the network, the time required is 8N. • In (b), we see the sequence of transmissions for the same packets using a sliding window.

  28. Transmission Times • For stop-and-go, each packet takes 2L time to deliver (where L is the latency, or network delivery time). • Sliding window can improve by the number of packets in the window (W is window size, Tw is sliding window throughput, Tg is stop-and-go throughput): • Transmission time is also limited by the network transmission rate (B is maximum network bandwidth):

  29. Network Congestion • Network congestion arises in network systems that include multiple links (see the figure below for an example). • If the input to some link exceeds the maximum bandwidth, packets will queue up at the connection to that link. • Eventually, packets will be discarded and packets will be retransmitted. • Ultimately, the network will experience congestion collapse. • This problem is related to, but not identical to, that of data overrun.

  30. Avoiding and Recovering From Congestion • Protocols attempt to avoid congestion and recover from network collapse by monitoring the state of the network and taking appropriate action. • They may use two techniques: • notification of congestion from packet switches, and • inferring congestion from packet loss. • Packet loss can be used to detect congestion because modern networks are reliable and rarely lose packets through hardware failure. • A sender can infer congestion from packet loss through missing acknowledgments. • The rate or percentage of lost packets can be used to estimate the degree of congestion.

  31. The Art of Protocol Design • Protocol design mixes engineering and art. • There are well-known techniques for solving specific problems. • But, those techniques can interact in subtle ways. • Protocol details must be chosen carefully. • The resulting protocol suite must account for interaction (e.g. between flow control and congestion). • Efficiency, effectiveness, and economy must all be balanced in a successful protocol design.

  32. Summary • Layering is a technique for guiding protocol design and implementation. • Protocols are grouped together into related protocol suites. • A collection of layered protocols is called a protocol stack. • Protocols use a variety of techniques for reliable delivery of data.

More Related