20220311
一 . 运输层
复用/分用
发送方运输层的udp协议会复用应用层的报文段,添加udp首部,只以源端口及目的端口标识该报文段
接收方运输层的udp协议会分用网络层的ip数据报,根据首部中的目的端口将数据报交给应用层指定进程。
发送方运输层的tcp协议会复用应用层的报文段,添加tcp首部,以源端口、目的端口、源ip地址、目的ip地址标记该报文段
接收方运输层的tcp协议会分用网络层的ip数据报,根据首部中的四个值,交给指定应用进程建立的一个套接字(接收方一个应用进程可以和不同发送方都建立一个套接字)
二。TCP对比UDP
- udp不需要建立连接即可发送数据,tcp要三次握手建立连接,发送数据后还需要四次挥手释放连接
- udp支持单、多、广播,tcp因为建立专用连接,只支持单播
- UDP面向报文段,直接发送应用层交付的整个报文段。TCP面向字节流,缓存应用层交付的数据报,从中提取字节流分段发送。
- UDP不提供可靠传输,TCP提供可靠传输(流量控制及拥塞控制)
三。 TCP流量控制
流量控制是在滑动窗口的基础上实现的,接收方通过告知发送方调整发送窗口来实现。
如果接收方让发送方调整发送窗口为0,发送方会启动一个0窗口计时器。如果超时未收到增大窗口通知,则发送0窗口确认报文,并为该报文启动一个0窗口确认报文计时器,该确认计时器如果超时,则继续重传0窗口确认报文,直到收到接收方的增大窗口通知为止。