CST 311 - Week 3

 This week the topic studied was the Transport Layer.  The topics included in the transport layer were multiplexing/demultiplexing, UDP, TCP, connection management, and congestion control. 

Multiplexing happens at the sender to handle data being sent from multiple sockets (app sent messages to sockets).  It adds a transport header that will later be used by the receiver in demultiplexing.  Demultiplexing happens at the receiver.  When an IP datagram is received it contains a source IP and destination IP.  Each datagram will also carry one segment that has a header with two fields, source port number, and destination port number.  The port numbers are used to direct the segment to the correct socket with that port number to then be sent to the appropriate application.  This process is used for UDP.  In TCP the demultiplexing part will use a 4-tuple to direct the segment to the correct socket.

UDP is a connectionless, no-frills, bare-bones protocol.  No handshaking occurs and segments can be lost or delivered out of order.  Because of its simplicity, there are no connection delays or congestion control so UDP can send segments as fast as it wants.  This can be beneficial, for example, streaming audio or video.  It's also used for DNS, SNMP, and HTTP/3.

TCP is a connection-orientated protocol.  It creates a connection between the sender and receiver that allows for full-duplex data flow.  It also implements congestion control and flow control.  Because TCP is connection-oriented, a handshake occurs between the sender and receiver.  A 3-way handshake is used, versus and 2-way handshake, because it solves the problem of a server being in the established connection state even though the client has already ended the connection.

Congestion control is important because without it a congestion collapse can occur that causes the throughput to fall drastically as a result of queueing buffers being overloaded.  Additive Increase Multiplicative Decrease (AIMD) is one of the most common congestion control algorithms used.  TCP Cubic is also widely used because it can ramp up the sending rate faster while still avoiding congestion.  There is also a delay-based congestion control and Explicit congestion notification, with the latter involving both IP and TCP to implement.

Comments

Popular posts from this blog

CST 499 - Week 10

CST 438 - Week 7

CST 438 - Week 3