TCP与UDP

TCP与UDP

传输层的作用

作为传输层的两个主要协议,为了识别自己传输的数据属于哪个应用,在协议内设定了端口号

将接收和发送的数据与特定的应用程序进行关联起来,通过socket,也就是绑定了端口

区别

  • TCP 是面向连接的,可靠的的流协议,它提供了可靠性传输,实行顺序控制`重发控制流量控制拥塞控制提高网络利用率`等多种功能
  • UDP 是不具有可靠性的数据报协议,细微的处理交给上层的应用去完成

TCP头部

就不解释每个字段的意思了

TCP头部

TCP的特点

通过序列号和确认应答提高可靠性

通过序列号和确认应答提高可靠性

数据包丢失

  1. 数据无法到达

    TCP数据无法到达

  2. 数据应答丢失

    TCP数据应答丢失

重发的超时时间如何确定

在BSD的Unix以及Windows系统中,超时都是以0.5s为单位进行控制的,因此重发超时的都是0.5的整数倍,不过由于最初的数据包还不知道往返时间,所以其重发的超时一般设置在6s左右。

TCP重发的超时时间如何确定

连接管理

这个会经常提到

TCP连接管理

TCP以段发送数据

在建立TCP连接的同时,也可以确定发送数据包的单位,称为最大消息长度(MSS),TCP在传送大量数据时,是以MSS的大小将数据进行分割发送。

TCP以段发送数据

利用窗口控制提高速度

TCP以1个段为单位,每发一个段进行一次确认应答,性能太差了,为了解决这个问题。

确认应答不再是以每个分段,而是以更大的单位进行确认,转发的时间被大幅度缩短。也就是说,发送端主机,在发送了一个段以后不必要一直等待确认应答,而是继续发送

TCP利用窗口控制提高速度

窗口控制与重发控制

没有确认应答也不受影响

TCP高速重发控制

流控制

为了防止流量浪费,比如说,数据接收端在高负荷的情况下无法接受任何数据。如果将本来接受的数据丢弃,则会触发重发机制。

为了防止这种现象,TCP提供了一种机制可以让发送端根据接收端的实际接受能力控制发送的数据量。这就是流控制。

做法就是在TCP首部中,有一个字段来通知窗口的大小,值越大,吞吐量越高

TCP流控制

拥塞控制

慢启动,慢慢变快

TCP拥塞控制

捎带应答

TCP捎带应答

UDP头部

UDP头信息

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×