Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction of Transport Protocols

Similar presentations


Presentation on theme: "Introduction of Transport Protocols"— Presentation transcript:

1 Introduction of Transport Protocols
Computer Networking Introduction of Transport Protocols

2 Transport Protocols Network provides best-effort delivery
Transport at end-systems implement many functions 7 7 6 6 5 5 Transport Transport IP IP IP Datalink 2 2 Datalink Physical 1 1 Physical router

3 Minimum Transport Protocol Function
Multiplexing/de-multiplexing for multiple applications How does the protocol stack know what application should receive a packet? Why not using process ID?

4 Multiplexing using Ports
Transport layer uses the port in the transport header to identify the application socket. (Destination IP, destination port) identifies the destination Port numbers are well-known port numbers In UDP packets delivered at a socket can come from multiple sources (connectionless). Why do we need a source port number? Needed to return a packet! Flip source and destination (IP, port) pairs

5 User Datagram Protocol (UDP)
Source Port Dest. Port Length D. Checksum Still connectionless datagram Multiplexing/demultiplexing port numbers = connection/application endpoint End-to-end reliability through optional end-to-end checksum. protects against data corruption errors between source and destination (links, switches/routers, bus) does not protect against packet loss, duplication or reordering checksum is very simple so it can be implemented efficiently in software

6 Using UDP Examples: Use the port addressing provided by UDP
remote procedure calls multimedia distributed computing communication libraries Use the port addressing provided by UDP implement their own reliability, flow control, ordering, congestion control

7 More Transport Protocol Functions
Multiplexing/de-multiplexing for multiple applications Error control Hide unreliability of the network layer from applications Many types of errors: corruption, loss, duplication, reordering. End-to-end flow control Avoid flooding the receiver Congestion control Avoid flooding the network Connection management Logical end-to-end connection Connection state to optimize performance

8 Problems to Be Solved by Error Control At Transport Layer
Best effort network layer Packets can get corrupted Packets can get lost Packets can get re-ordered

9 Mechanisms used For Error Control
Packets can get corrupted CRC or Checksum to detect, retransmission to recover Error correction code to recover Packets can get lost Sequence number to detect Acknowledgement + Timeout to detect, retransmission to recover Packets can get re-ordered Sequence number to detect, receiver buffer to re-order

10 Sliding Window Protocol: Sender
Each packet has a sequence number Assume infinite sequence numbers for simplicity Sender maintains a window of sequence numbers SWS (sender window size) – maximum number of packets that can be sent without receiving an ACK LAR (last ACK received) LFS (last frame sent) Acknowledged packets Packets not acknowledged yet LAR LFS seq. numbers

11 Example Assume SWS = 3 Sender Receiver 1 frame 1 frame 2 frame 3 ACK 1
4 5 1 2 3 1 2 3 4 1 frame 4 Note: usually ACK contains the sequence number of the first packet in sequence expected by receiver

12 Sliding Window Protocol: Receiver
Receiver maintains a window of sequence numbers RWS (receiver window size) – maximum number of out-of-sequence packets that can received LFR (last frame received) – last frame received in sequence LAF (last acceptable frame) LAF – LFR <= RWS

13 Sliding Window Protocol: Receiver
Let seqNum be the sequence number of arriving packet If (seqNum <= LFR) or (seqNum >= LAF) Discard packet Else Accept packet ACK largest sequence number seqNumToAck, such that all packets with sequence numbers <= seqNumToAck were received Packets in sequence Packets out-of-sequence LFR LAF seq. numbers

14 Sender/Receiver State
Max ACK received Next seqnum Next expected Max acceptable Sender window Receiver window Sent & Acked Sent Not Acked Received & Acked Acceptable Packet OK to Send Not Usable Not Usable

15 Lecture 16: Transport Protocols
Sequence Numbers How large do sequence numbers need to be? Must be able to detect wrap-around Depends on sender/receiver window size E.g. Max seq = 7, send win=recv win=7 If pkts 0..6 are sent succesfully and all acks lost Receiver expects 7,0..5, sender retransmits old 0..6!!! Max sequence must be  send window + recv window Xxx picture Lecture 16: Transport Protocols

16 Cumulative ACK + Go-Back-N Retransmission
On reception of new ACK (i.e. ACK for something that was not acked earlier) Increase sequence of max ACK received Send next packet On reception of new in-order data packet (next expected) Hand packet to application Send cumulative ACK – acknowledges reception of all packets up to sequence number Increase sequence of max acceptable packet Lecture 16: Transport Protocols

17 Lecture 16: Transport Protocols
Loss Recovery On reception of out-of-order packet Send nothing (wait for source to timeout) Cumulative ACK (helps source identify loss) Timeout (Go-Back-N recovery) Set timer upon transmission of packet Retransmit all unacknowledged packets Performance during loss recovery No longer have an entire window in transit Can have much more clever loss recovery Lecture 16: Transport Protocols

18 Lecture 16: Transport Protocols
Go-Back-N in Action Lecture 16: Transport Protocols

19 Selective Ack + Selective Repeat
Receiver individually acknowledges all correctly received pkts Buffers packets, as needed, for eventual in-order delivery to upper layer Sender only resends packets for which ACK not received Sender timer for each unACKed packet Sender window N consecutive seq #’s Again limits seq #s of sent, unACKed packets Lecture 16: Transport Protocols

20 Selective Repeat: Sender, Receiver Windows
Lecture 16: Transport Protocols

21 Summary of ARQ Protocols
Mechanisms: Sequence number Timeout Acknowledgement Sender window: fill the pipe Receiver window: handle out-of-order delivery Lecture 16: Transport Protocols

22 Many Nuances What type of acknowledgements?
Selective acknowledgement Cumulative acknowledgement Negative acknowledgement How big should be the timeout value, SWS, RWS, sequence number field? Reliability mechanism used to implement other functions: flow control, congestion control Function overloading introduces ambiguity and complexity

23 Transmission Control Protocol (TCP)
The most utilized transport protocol Provides a bidirectional reliable byte stream service Made specific design decisions that have tradeoffs Ports for multiplexing and-demultiplexing Error control Each byte (not a packet) has a sequence number 32 bits sequence number space Cumulative ack + Go-Back-N Flow control Receiver gives send a window size to limit range of bytes that sender can send 16 bits window size Congestion control (next lecture) What is the key difference between this and flow control? Why is it more difficult to implement congestion control than flow control? Connection management (next lecture)

24 Sequence Number Space Each byte in byte stream is numbered.
32 bit value Wraps around Initial values selected at start up time TCP breaks up the byte stream in packets (“segments”) Packet size is limited to the Maximum Segment Size Each segment has a sequence number. Indicates where it fits in the byte stream 13450 14950 16050 17550 segment 8 segment 9 segment 10

25 Bidirectional Communication
Send bytes 1000:2000 Ack bytes 1000:2000 Send bytes 40000:42000 Ack bytes 40000:42000 Each Side of Connection can Send and Receive What this Means Maintain different sequence numbers for each direction Single segment can contain new data for one direction, plus acknowledgement for other But some contain only data & others only acknowledgement

26 Window Flow Control: Send Side
Packet Sent Packet Received Source Port Dest. Port Source Port Dest. Port Sequence Number Sequence Number Acknowledgment Acknowledgment HL/Flags Window HL/Flags Window D. Checksum Urgent Pointer D. Checksum Urgent Pointer Options.. Options.. App write acknowledged sent to be sent outside window

27 TCP Flow Control Sliding window protocol
For window size n, can send up to n bytes without receiving an acknowledgement When the data are acknowledged then the window slides forward Each packet advertises a window size Indicates number of bytes the sender is prepared to receive Original TCP always sent entire window Congestion control now limits this

28 Window Flow Control: Send Side
Sent but not acked Not yet sent Sent and acked Must retain for possible retransmission Next to be sent

29 Window Flow Control: Receive Side
Receive buffer Acked but not delivered to user Not yet acked window

30 Maximum Window Size Mechanism for receiver to exert flow control
Prevent sender from overwhelming receiver’s buffering & processing capacity Max. transmission rate = window size / round trip time Mechanism to Guarantee Receive Buffer Does Not Overflow Receive buffer Acked but not delivered to user Not yet acked window


Download ppt "Introduction of Transport Protocols"

Similar presentations


Ads by Google