计算机网络【UDP和TCP首部字段详解】

计算机网络【UDP和TCP首部字段详解】,第1张

计算机网络【UDP和TCP首部字段详解】

文章目录
  • 一 UDP详解
  • 二 TCP首部各个字段详解

一 UDP详解


在传输层中,有两个协议UDP和TCP,通常UDP都是比较简单的协议字段,因为UDP不需要面向连接,也就是说,发送UDP数据包过去时候,不需要先建立连接再发送,可以直接发送,并且UDP不保证可靠性,也就是说,发送数据包过去不保证对方是否收到,UDP的数据包不管这个;



端口

常见的端口号


二 TCP首部各个字段详解


TCP首部,相对于UDP首部比较复杂,UDP首部只需要8个字节就可以表达想要的意思。而TCP至少需要20个字节才可以表达TCP主要的意思;

我们看看TCP的数据偏移字段:
数据偏移字段主要是用来计算TCP首部长度的,它占4个bit,TCP实际长度是数据偏移字段再乘于4得到的,由于TCP至少需要20个字节,所以说,数据偏移的最小值就是5,也就是二进制的0101;
而数据偏移4个bit能表示最大值为1111,所以说可以根据数据偏移字段算出TCP首部长度为4*15 = 60;
所以说TCP的首部取值范围是:20-60字节;

为什么数据偏移字段是算TCP的首部长度的呢?

其实也很好理解,我们的TCP报文,就是首部+数据部分的,而数据部分相对于首部偏移的字节不就是首部的长度了嘛!


不知道有木有人想过一个问题:为什么TCP首部值记录了TCP首部长度没有记录TCP数据长度呢?

其实TCP的数据部分是可以推算出来的,我们可以通过IP数据包推算出来,因为IP数据包的首部有,总长度和首部长度的信息,而IP数据包总长度-IP数据包首部长度= IP数据的长度; 而我们的IP数据的长度通常就是TCP传输下来的数据包,所以说IP数据部分就可以表示TCP的长度了,由于TCP又记录了TCP首部长度,那么IP数据部分-去TCP首部,就得到了TCP的数据长度了!

抓个包观察以下:


通过上面两个我们知道TCP的数据包长度为536字节;
假如我们再观察IP数据包的数据部分,如果也是536,那么就是正确的验证了TCP数据部分的计算方式

也就是说,我们的IP包总长度为556-IP首部20 = 536,刚好等于TCP数据包的长度!!!!
所以验证是对的!


保留字段:
其实保留字段就是TCP设计者留给以后用的,至今者6个bit的保留位都还没有使用过!


检验和字段:
了解即可!!!!


标志位字段:

一般来说,URG字段都是为0,很少见到是1的情况,比较不常见;
PSH标志位一般在互联网开发也不怎么使用;
RST为1时候,一般都是该TCP包出错了,表示需要重新释放,可以抓个包给你们看看RST为1的情况;



SYN为1,且ACK为0时候,表明这个TCP包是建立连接请求;
什么是建立连接请求呢?是TCP传输数据时候,需要先三次握手,第一次握手就是建立连接请求,后面都会详细讲到这个问题;
SYN1,且ACK1时候,表明对方同一建立链接;也就是第二次握手时候,我们可以看到;


序号和确认好字段:


我们要清楚,传输的数据是字节流,每个字节都有自己的编号,类似于变量在内存中又自己的地址编号一样。
而确认号,和序号它们在建立连接前和建立连接后都是由不同含义的。
我们先讨论的是建立连接之后的情况,也就是三次握手之后的情况,那么也就是开始发TCP数据包过去的情况;


我们知道建立建立后,需要发送TCP数据包过去,序号是用来记录这一次发送过去的数据包的数据部分的第一个字节是什么;
举个例子:

比如我们有一个客户端和一个服务器,建立连接后,服务器发送300字节的数据包给客户端,假设分三次发送过去,那么第一次发送过去就是发送了1-100个字节,此时这个数据包的TCP首部的序号就是为1,表示这一次发送过去的第一个字节编号为1;那么服务器继续发101-200过去,此时第二次的TCP首部的序号就是101,第三次那么它的序号就是201;

画个简易图理解以下确认号的意思:


而确认号是说明期待下一次发过来的TCP数据是部分的第一个字节编号是多少!

比如上面的哪个例子服务器发了给我一个1-100的数据包,我作为客户端,也会发一个TCP数据包给服务器,这个TCP数据包中是有一个确认号为101的编号,表示希望接下来接收到的字节是从101开始的。

***‘
窗口字段:

也是大致说了以下各个字段的主要意思,其实需要结合TCP的要点理解才可以,知道各个字段是具体是如何发挥作用的,比如可靠传输,流量控制,拥塞控制,连接管理,建立管理,释放管理!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5678578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存