ECE 453 Introduction to Computer Networks Lecture 14
- Slides: 32
ECE 453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
Transport Layer Service Model n communication network data link physical al ic nd -e d en network data link physical po s an tr rt between application processes running on different hosts transport layer protocols are implemented in the end systems application transport network data link physical g lo n provide logical application transport network data link physical
Layering: Protocol Stack Port no. Data Message IP address TCP Data Segment/Datagram IP TCP Data Frame MAC address Ethernet Bit stream Network Adapter (NIC)
Transport Layer Services Decompose/compose message into/from 4 -PDU (TPDU) Demultiplexing/multiplexing Connection-oriented Service (TCP) n n Reliable data transfer (RDT) Flow control Congestion control TCP connection management Source Port Destination Port Sequence Number Acknowledge Number HLEN Reserved Code Bits Window Checksum Urgent Pointer Options (if any) Padding Data … Connectionless Service (UDP) n Source Port Length checksum Data Destination Port Checksum
Transport Services (1) Decompose/compose message into/from 4 PDU (Protocol Data Unit) n n breaking application message into smaller chunks Add transport-layer header to each chunk 4 -PDU for TCP is called segment 4 -PDU for UDP is called datagram
Transport Service (2) Demultiplexing/multiplexing n n IP only delivers data between end systems identified with unique IP address IP does not deliver data between the application processes Demultiplexing: delivering the data in a transportlayer segment to the correct application process Multiplexing: gathering data at the source host from different application processes, enveloping data with header information to create segments and passing the segments to the network layer
Transport Service (3) Connection-oriented Service n n n TCP Reliable data transfer TCP flow control TCP congestion control TCP connection management Through socket programming Connectionless Service n UDP
Multiplexing/demultiplexing: Examples Web client host C Source IP: C Dest IP: B source port: y dest. port: 80 Web client host A Source IP: A Dest IP: B source port: x dest. port: 80 Source IP: C Dest IP: B source port: x dest. port: 80 Web server B port use: Web server
UDP (User Datagram Protocol) 32 bits Length, in bytes of UDP datagram, including header source port # dest port # length checksum Application data (message) Bare bone transport protocol Best-effort service Connectionless RFC 768 Eg. DNS Pros n n n UDP datagram format n No connection delay No connection state Small packet header overhead (8 bytes vs. TCP’s 20 bytes) Unregulated send rate
Applications Using UDP Multicast Real-time applications Multimedia applications Tolerate a small fraction of packet loss
TCP Segment Structure 0 4 16 24 31 Source Port Destination Port Sequence Number Acknowledge Number HLEN Reserved Code Bits Window Checksum Urgent Pointer Options (if any) Padding Data …
TCP Segment Structure 0 4 16 24 31 Source Port Destination Port Sequence Number Acknowledge Number HLEN Reserved Code Bits Window Checksum Urgent Pointer Options (if any) Padding Data …
TCP Flow Control flow control sender won’t overrun receiver’s buffers by transmitting too much, too fast receiver buffering receiver: explicitly informs sender of (dynamically changing) the amount of free buffer space – Rcv. Window field in TCP segment sender: keeps the amount of transmitted, un. ACKed data less than most recently received Rcv. Window
Congestion Control Problem When intermediate machines (routers) become overloaded, the condition is called congestion, the mechanisms to solve the problem are called congestion control mechanism Difference from flow control?
Congestion Control Approaches End-end congestion control n Network layer provides no explicit support to the transport layer for congestioncontrol purposes Network-assisted congestion control n Routers provide explicit feedback to the sender regarding the congestion state in the network
How Can TCP Help? Which approach should TCP use? What does TCP know? What can TCP do?
Congestion Window At any time, TCP window size: Last. Byte. Sent-Last. Byte. Acked <= Allowed window = min(receiver advertisement, congestion window)
Response To Congestion Two recommended techniques: n n Slow start Congestion avoidance w Additive increase w Multiplicative techniques
TCP Slowstart Host A initialize: Congwin = 1 for (each segment ACKed) Congwin++ until (loss event OR Cong. Win > threshold) exponential increase (per RTT) in window size loss event: timeout and/or three duplicate ACKs RTT Slowstart algorithm Host B one segme nt two segme nts four segme nts time How many RTT is needed before TCP can send N segments?
TCP Congestion Avoidance Congestion avoidance /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 perform slowstart
AIMD – TCP Congestion Avoidance AIMD: additive increase, multiplicative decrease n n increase window by 1 per RTT decrease threshold by factor of 2 on loss event
TCP Timeout and Retransmission Adaptive retransmission algorithm n n Next_RTT = (a * last_estimated_RTT) + (1 – a) * newly_collected_RTT_sample, 0 < a < 1 Typically, a = 7/8
TCP Connection Management Establishing a connection Initial Sequence Number (ISN) Closing a TCP connection Connection Reset TCP state machine
Three-way Handshake Protocol A Send SYN seq=x Receive SYN + ACK segment Send DATA with seq = x Piggyback with ACK=y B Receive SYN segment Send SYN, seq=y, ACK x Receive TCP segment
ISN: Initial Sequence Number Two tasks have been accomplished by 3 -way handshaking n n Both sides are ready to transfer data Both sides agree on ISN, ISN is chosen randomly Action taken in the three messages n n n A node chooses x, B node ACKs x+1, which specifies that B will expect octet from x+1 B node piggybacks his chosen ISN, y, on second message, with SYN set A node ACKs this y by y+1
TCP: Closing Connection The Two-Army Problem
Connection Release (4 Scenarios)
TCP: Close Connection client Close wait (start timer) server FIN ACK Close wait (start timer) timed wait FIN closed ACK closed
TCP: Connection Reset Normally, TCP closes connection, analogous to closing a file Under abnormal conditions, an RST bit indicates immediate abort, resources such as buffers are released
TCP Segment Structure 0 4 16 24 31 Source Port Destination Port Sequence Number Acknowledge Number HLEN Reserved Code Bits Window Checksum Urgent Pointer Options (if any) Padding Data …
TCP Code Bits Bit (left to right) Meaning if bit set to 1 URG Urgent pointer field is valid ACK Acknowledgement field is valid PSH The segment requires a push RST Reset the connection SYN Synchronize sequence number FIN Sender has reached end of its byte stream
TCP: Finite State Machine TCP server lifecycle TCP client lifecycle
- Cs 447
- Datagram network diagram
- Backbone networks in computer networks
- 01:640:244 lecture notes - lecture 15: plat, idah, farad
- 150 sayısının 30'u kaçtır
- Nrs 453
- Kj 453 lirik
- 271 en yakın onluğa yuvarlama
- Ce 453
- Weerklank 453
- Mbg453
- En 453
- Clang software
- Nrs 453
- Computer networks kurose
- Normalized device coordinates
- Clang tutorial
- Ce 453
- Computer security 161 cryptocurrency lecture
- Computer-aided drug design lecture notes
- Computer architecture lecture notes
- Isa definition computer
- Crc in computer networks
- Crc in computer networks
- Traffic management in computer networks
- Speed of a computer
- What is optimality principle in computer networks
- Snmp ports
- What is optimality principle in computer networks
- Uses of computer network
- Definition of computer
- Dns in computer networks
- Integrated and differentiated services in computer networks