TCP和UDP协议都是传输层协议,用来传输数据的一种规范。

TCP数据报文的格式

TCP/UDP协议详解

顺序号就是seq,确认号对应ack ,FIN对应的就是四次挥手时使用的标志位,SYN 表示 客户端要和服务端建立连接时的标志位。

UDP的数据报文格式

TCP/UDP协议详解

 

两者的区别

1. TCP是面向连接的,提供尽最大努力的交付服务,

而UDP是无连接,只能确保数据的发送成功(无法保证数据能被对方正确接收,只管数据的发送)是一种不可靠的数据交付

2. TCP是面向字节流的,UDP是面向数据报文的。

3.TCP 具有拥塞控制,流量控制,而UDP没有拥塞控制;

4. TCP的首部开销(20个字节),UDP的首部开销8个字节;

5.TCP只支持点到点的通信,UDP可以支持一对一,一对多,多对多,多对一的通信。

 

上面说可TCP具有拥塞控制,为甚么要进行拥塞控制

计算机网络中的带宽、交换结点中的缓存及处理机等都是网络的资源。当我们对网络中的某一资源的需求超过了该资源所能提供的可用部分网络的性能就会变坏,这种情况就叫做拥塞。

拥塞控制就是 防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载

拥塞控制的四种方法:


1. 慢启动  一开始不发送大量的数据,先探测下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小


2.拥塞避免  即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线型规律缓慢增长。

TCP/UDP协议详解


3. 快重传 快重传要求接收方收到一个失序的报文段会立即发出重复确认.(让发送方尽早知道有报文段没有到达对方),而不是自己发送数据时顺带确认, 

快重传算法要求,发送方只要接收到三个重复的确认,就应当立即发送对方尚未收到的报文段,而不必继续等待设置的重传计数器时间到期

TCP/UDP协议详解


4. 快速恢复

快重传配合使用的还有快恢复算法,当发送方连续收到三个重复确认ACK时,就将ssthresh(慢启动门阀)设置位cwnd的一半,把cwnd设置为ssthresh的值加3(有些是设置为ssthresh),然后重传丢失的报文段。加3是因为收到3个重复的ack, 然后再进入拥塞避免阶段。,图参考拥塞避免的图

 

 

相关文章: