UDP | TCP |
---|---|
UDP是无连接的 UDP提供不可靠服务 UDP同时支持点到点和多点通信 UDP是面向报文的 UDP首部8个字节 | TCP是面向连接的 TCP提供可靠服务 TCP只能进行点到点通信 TCP是面向字节流的 TCP首部20个字节 |
连接建立(三次握手):
注意:TCP报文首部SYN和FIN置位的时候需要消耗一个序列号,而仅有ACK置位时不需要消耗序列号。
连接释放(四次握手):
TCP是可靠的传输层协议,主要通过确认机制和超市重传机制实现可靠传输。
确认机制:
连接的建立和释放用的就是确认机制。
TCP和确认是对接收到的最高序号表示确认。但返回的确认序号是已收到的数据的最高序号加一。也就是说确认序号表示下次希望收到的数据字节的序号。确认具有累计确认效果。
超时重传机制:
超时重传机制最关键的因素的重传定时器的定时设置,但确定合适的往返时延RTT是相当困难的事情。
TCP采用了一种自适应算法。算法思想描述如下:记录每一个报文段发出的时间以及收到相应的确认报文段的时间,这两个时间差就是报文段的往返时延。将各个报文段的往返时延样本加权平均,就得到报文段的平均往返时延RTT。
TCP有三种定时器:重传定时器、持续定时器、保活定时器。
通过接收方的接收窗口rwnd实现。在通信过程中,接收方可以根据自己的接受情况动态地调整自己的接收窗口,然后告诉发送方,让发送方的发送窗口和自己的接收窗口一致。
拥塞控制的基本功能是避免网络发生拥塞。TCP/IP的拥塞控制机制主要集中在传输层实现。拥塞控制的前提条件是网络能够承受现有的网络负荷。
拥塞控制通过拥塞窗口cwnd实现。注意:发送窗口的取值依据拥塞窗口和接收窗口中的较小值,即Min[rwnd,cwnd]。发送方控制拥塞窗口的原则是:只要网络没有出现阻塞,拥塞窗口就可以再大一些;但只要出现阻塞,拥塞窗口就减小一些。
为了更好的进行拥塞控制,用到四种技术:慢启动、拥塞避免、快速重传、快速恢复。