TCP协议

TCP协议报文格式

在这里插入图片描述


TCP首部详解

源端口号 & 目的端口号

  • 16 位
  • 原地址端口号 & 目的地址端口号

序号 & 确认序号

  • 序号(seq)

    • 32位
    • 用来标识从TCP源端向目的端发送的字节流
    • 序列号不会从0或1开始, 而是计算机生成的随机数
    • 发送方发送数据时对此进行标记
  • 确认序号(ack)

    • 32位
    • 只有ACK标志位为1时,确认序号字段才有效
    • 表示下一次应该收到的数据的序列号
    • ack = seq+1

控制位

SYN

  • 用于请求建立连接
  • 连接请求: SYN = 1, ACK = 0
  • 连接应答: SYN = 1, ACK = 1

ACK

  • 确认序号标识
  • 为 1 时, ack 才有效
  • 为 0 时, 表示忽略 ack
  • ack 为确认序号, ACK 为标识位

FIN

  • finish 标识, 用于释放连接
  • 为 1 时表示发送方已经没有数据要发送了

PSH

  • push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队

RST

  • 重置连接标志
  • 用于重置由于主机崩溃或其他原因而出现错误的连接, 或者用于拒绝非法的报文段和拒绝连接请求

URG

  • 紧急指针标志
  • 为 1 表示有效, 为 0 表示无效

首部长度

  • 因为 TCP 报文内容含有可选项, 所以 TCP 报头的长度不固定
  • 实际指示了数据区在报文段中的起始偏移值

校验和

  • 对整个 TCP 报文段(包括报头和数据)进行奇偶校验
  • 由发送方进行计算和存储, 由接收端进行验证

保留

  • 暂时无用, 通常置为 0
  • 留作后用

窗口指针

  • 用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制
  • 窗口大小是一个16bit字段,因而窗口大小最大为65535。

紧急指针

  • 配合标识位的 URG 使用, 只有 URG 为 1 时, 这个才有效
  • 是发送紧急数据的一种方式
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值