[计算机网络笔记]第三部分——传输层之TCP 报文结构

第三部分——传输层层协议

TCP协议:

      TCP的连接状态之在端系统存在,在网络链路上和交换机上是不知道的,因为链路上和交换机上没有到传输层的处理能力

      TCP是点对点连接的,一个连接只有两个端系统

      为了避免频繁发送TCP报文,TCP设有缓存,每次取出缓存发送,取出的缓存大小受限于MSS(最大报文段长度)

      TCP报文结构

源端口号

目标端口号

序号

确认号

首部长度(单位:4字节)

保留

URG

ACK

PSH

RST

SYN

FIN

接收窗口

互联网校验和

紧急数据指针

选项

应用层数据

         

一行为32比特,第一行和第五行是等分的(各16比特)第四行接收窗口占16比特,黄色表示TCP首部,灰色表示TCP真实数据部分

      TCP报文结构解释:

  1. 源端口号、目标端口号:用于多路分解
  2. 序号:为了TCP可靠传输而设计的,用于标识一个TCP报文,表示本TCP是从哪一个字节开始传输的
  3. 确认号:本意为确认己方已接受的字节数(在此序号之前的字节己方已经全部接受),在规律上,A对B发送的报文的确认号总是等于下一次B对A发送的序号。
  4. 首部长度:4比特,单位是4字节,也就是最多可以表示最多((2^4)-1)*4=60个字节的首部。

之所以要有首部长度,是因为TCP的首部长度是不固定的,有可选的选项字段可以加入,一般情况下可选选项为空,这时TCP首部长度是20个字节同时可以看出,因为首部长度单位是4字节,选项只能加入4字节的倍数,如果不够4字节则填充满。

  1. 保留:现在没有用到的位,有6比特
  2. URG标识:1比特,紧急指针,置1表示当前TCP报文要尽快传输,无需按照序列发送,需要配合后面2个字节的紧急数据指针使用
  3. ACK标识:1比特,确认标识,置1表明发送的是一条ACK确认报文,这时确认号才有意义
  4. PSH标识:1比特,PUSH标识,置1表示本次TCP报文要尽快推送到上层应用层,无需等待接收缓存
  5. RST标识:1比特,用于重启连接,置1表示要断开重新建立TCP连接
  6. SYN标识:1比特,用于建立连接,置1表示当前TCP报文是建立连接的报文,TCP三次握手的前两次报文中SYN都是1
  7. FIN标识:1比特,用于拆除连接,置1表示发送方要断开TCP连接,TCP四次挥手中,每一方的挥手过程(两方都要挥手)的第一个TCP报文FIN为1
  8. 接收窗口:用于协调发送方和接收方的发送速率,防止接收缓存溢出,本字段可以告知接收方发送方还可以接受多少报文(字节计算)
  9. 互联网校验和:同UDP的校验和,计算时需要计算整个TCP报文(首部+数据)的长度,16比特,相加回卷

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值