TCP与UDP协议特点及介绍

目录

 一、TCP windows窗口的作用

二、TCP报文首部格式

三、TCP的MSS

四、TCP可靠传输

五、TCP特点

六、TCP序号的作用

七、UDP报文首部格式

八、UDP的特点


(个人学习笔记,不喜勿喷,不正确的还请指正)

 一、TCP windows窗口的作用

TCP与UDP协议特点及介绍_第1张图片

TCP与UDP协议特点及介绍_第2张图片

窗口就是指无需等待应答而可以继续发送数据的最大值。TCP报文中16位窗口大小(65535B),表明我接收方电气概念可用缓存空间大小。用于TCP的流量控制,提高传输效率。

Window:一口气(连续几个包加起来)表示接收方缓存的大小。一口气发送一定量的数据而不需要得到确认,即在我回复ACK之前,你一口气最多可以发送的数据(可能是多个报文)。

Window窗口:TCP的流量控制,窗口起始于确认序号字段指明的值,这个值是接收端正期望接收的字节数。窗口最大为65535字节。(有点小,可选项字段,叫做窗口扩大因子)

TCP与UDP协议特点及介绍_第3张图片

CWND拥塞窗口控制

TCP与UDP协议特点及介绍_第4张图片

二、TCP报文首部格式

TCP与UDP协议特点及介绍_第5张图片

Source port       源端口

Destination port 目的端口 端口代表某个应用程序的进程号

Sequence Number 序列号 代表报文的序号

Acknowledgment Number 确认号 接收端对发送端报文进行确认的序号

Data Offset        报文数据偏移

Reserved          保留位

Flag位 URG ACK PSH RST SYN FIN

Window 窗口大小(接收端接收数据的大小,低于窗口大小的数据可以直接发送)

Checksum 校验和

Urgent Pointer 紧急指针(表示重要数据优先传递)

 

三、TCP的MSS

TCP MSS是什么意思?

作用:尽可能保证数据不分片,提高传输效率

TCP与UDP协议特点及介绍_第6张图片

MSS:Max segment size 属于可选字段,双方都在通信的第一个报文(发:SYN报文 接:SYN+ACK报文)指明本端所能接收的单个报文的最大长度的报文段(类似MTU)后续报文就没有该字段了

UDP容易分片,但TCP很少会分片,因为TCP有MSS,MSS在三次握手时进行协商,有了MSS后,当APP给的数据太大,TCP会自动将数据拆小(mss大小)然后在发送,因此TCP很少会分片。

MSS:一个包(单个包的TCP数据部分的大小 一般是1460字节)类似MTU。只有前两个包才会携带MSS。MSS属于可选项部分。

MSS指的是TCP数据部分的大小(纯data部分)一般等于MTU(1500)-20(IP头)-20(tcp头)=1460字节

TCP与UDP协议特点及介绍_第7张图片

四、TCP可靠传输

TCP可靠传输是什么意思:

TCP与UDP协议特点及介绍_第8张图片

超过window size接收方丢弃报文,然后回复ACK3重新发送

TCP可靠性的体现:

  1. 应用数据被分割成TCP认为最适合发送的数据块
  2. 当TCP发出一个报文段后,他将启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到一个确认,将重传这个报文段。
  3. 当接收者通过TCP收到数据时,她将发送一个确认,该确认不是立即发送,通常将推迟积几分之一秒。
  4. TCP可以对失序的报文寄信重新排列,然后交给应用层。
  5. TCP接收端必须能够丢弃重复的数据
  6. TCP可以提供流量控制,TCP连接的双方都有固定大小的缓冲区空间,TCP接收端只允许另一端发送接收端缓冲区所能接纳的数据,这将防止较快主机致使较慢主机缓冲区溢出。

TCP与UDP协议特点及介绍_第9张图片

五、TCP特点

TCP特点:

  1. 可靠传输
  2. 面向连接
  3. 慢启动(慢启动算法)
  4. 抢占带宽能力弱
  5. 既挑大也挑小(MTU)
  6. 面向数据流的传输方式
  7. 自带流量控制(滑动窗口机制)

TCP Flag 位含义

作用:标识当前TCP报文的特殊作用

Fin位:发送端完成发送任务,并要求释放连接

RST:重建连接标识,有错误,需释放连接然后重建

ACK位:确认需要有效

SYN位:同步序号 用来发起一个连接请求

PSH位:尽快将报文交给APP,而不必等待缓冲区满

URG:紧急指针位 置1时标识Urgent Pointer字段有效,紧急指针有效标识,它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)

Urgent Pointer字段:紧急指针,只有当URG标志置1时紧急指针才有效,TCP的紧急方式是发送端向另一端发送紧急数据的一中方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)

TCP与UDP协议特点及介绍_第10张图片

TCP如何判断拥塞

  1. 超时 没有收到对方的ack(超时定时器溢出)
  2. 连续收到对方3个重复的ack

TCP如何进行流量控制

流量控制的目的:

  1. 避免拥塞:在一个共享的网络环境,如果通信双方一开始就发送较大量的数据则有可能会导致整个玩过瘫痪。TCP为了防止该问题出现,在通信一开始时就会通过一个叫慢启动的算法对发送的数据量进行控制。
  2. 提高效率:尽可能利用好网络带宽,提高数据转发效率。

两个窗口(接收方和发送方的窗口):窗口大小直接反应传送报文的速率,俩窗口取最小值,最小值发送。

接收方通告窗口wndows(报文里体现)

发送方拥塞窗口cwnd(congestion window)(报文里不体现)

发送速率刚开始是很小的,然后慢启动算法生成缓慢上升的速率(虽然叫慢启动,但是是指数型增长,增长速度很快)[如果直接发送大流量包,对方不一定收到,会浪费带宽]

TCP与UDP协议特点及介绍_第11张图片

超时重传,有可能是中间丢包了,就会重新降低速率到门限的速率重传

TCP与UDP协议特点及介绍_第12张图片

如果有重复发送了ACK的场景下(发生拥塞),就会重新降低到CWND的一半速率+3个报文段重传,

TCP与UDP协议特点及介绍_第13张图片

六、TCP序号的作用

TCP序号的作用:确保报文传输的可靠性

TCP里报文里有两个序号:①发送序号 ②确认序号

TCP与UDP协议特点及介绍_第14张图片

发送序号:使用序号对每个字节进行计数,序号是32bit整数,序号达到2'32后又从0开始,发送序号指的是本报文段所发送的数据的第一个字节的序号

确认序号:期望收到对方的下一个报文段的数据的第一个字节的序号,即上次已成功收到的数据字节号+1,只有ACK标识为1,此段才有效。

TCP与UDP协议特点及介绍_第15张图片

TCP与UDP协议特点及介绍_第16张图片

七、UDP报文首部格式

TCP与UDP协议特点及介绍_第17张图片

TCP与UDP协议特点及介绍_第18张图片

Source port 源端口

Destination port 目的端口 端口代表某个应用程序的进程号

Length 长度(UDP的包头+负载的Data的总长度)

Checksum 校验和

Data Offset 报文数据偏移

八、UDP的特点

UDP特点:

  1. 不可靠传输
  2. 非面向连接
  3. 没有分片能力
  4. 抢占带宽能力强
  5. 面向数据报
  6. 既不挑大也不挑小

TCP与UDP协议特点及介绍_第19张图片

你可能感兴趣的:(网络基础,tcp/ip,udp,网络)