TCP/IP数据包首部解析

TCP/IP数据包首部解析

从头开始学计网,记录一下笔记
** 参考:《图解TCP/IP》**
在这里插入图片描述
TCP数据包结构:
在这里插入图片描述
1-1.源始端口,16位,范围当然是0-65535啦。
1-2.目的端口,同上。
2-1.序列号:字段长32位,指发送数据的位置,TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节的序号。每发送一次数据,就累加一次该数据字节数的大小。
序列号不会从0或1开始,会从随机数开始循环增加。(建立和断开连接的SYN与FIN包不携带数据,但也会作为字节增加序列号)
3-1.确认应答号:TCP告诉接受者希望他下次接到数据包的第一个字节的序号,可以认为在这个序号前的数据已正常接收。
4-1.数据偏移:4位,该字段表示TCP数据部分从包的那个部分开始(TCP包首部的长度)。字段长度单位为32位(4字节),最多表示16*32位。
比如TCP首部20字节,5个32位,偏移为5,0101
4-2.保留:一般为0,常被无视。
4-3.控制位:8位
1)CWR、ECE,与IP首部的ECN字段对应,ECE标志为1,则通知对方网络拥塞,已将拥塞窗口缩小。
2)URG:urgent flag,置1是表示数据需要紧急处置
3)ACK:acknowledgement flag,置1时,确认应答字段有效,除了建立连接的SYN包之外均应置1
4)PSH:push flag,置1时,应立刻传给上层应用协议,PSH置0时,并不需要立刻传而是先缓存
5)RST:reset flag,置1时表示TCP连接出现异常必须紧急断开连接。
6)SYN:synchronize flag,用于建立连接,并在其序列号字段进行序列号初始值设置
7)FIN:finish flag,置1时希望断开连接。
4-4.窗口字段:16位,窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
5-1.校验和:16位,包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
在这里插入图片描述
5-2.紧急指针:16位,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
6-1.可选选项:24位,类似IP,是可选选项。
6-2.填充:8位,使选项凑足32位。
7-1.用户数据

可以看出,每个IP包至少要20字节的头部长度,这些与下载内容无关,加上目前多数传输,包括http协议(就是IE直接下载),都是基于TCP协议的,所以IP包裹还要从用户数据中扣除20字节的TCP包头,这里已经是40字节了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值