TCP/IP报文头部整理

    IP协议是网络层的主要协议,为上层传输层提供无连接、无状态、不可靠的服务。优点是简单高效。无状态是指各个IP报文是独立传送的,不同步传输状态的信息,所以容易发生重复和乱序的情况。不可靠是指IP协议不能保证数据报一定能被送达,可靠性主要是通过传输层的TCP协议来保证的。

    TCP协议是面向连接的协议,是工作在传输层的协议。TCP协议通过三次握手、四次挥手、流量控制、拥塞控制、超时重传、确认报文等机制来保证可靠性。

    本文来简单介绍下IP头部和TCP头部的一些重要字段。

1、IP头部

IP头部通常有20字节,加上选项的话,最多不超过60字节。IP数据最大为65535字节。下面来进行逐一分析:

4位版本:指IP协议版本号,是IPV4还是IPV6

4位首部长度:指IP头部的长度,以4字节为单位,最大值为(1111)b × 4 = 60字节

8位服务类型:包含一个4位优先权字段:最小延时,最大吞吐量,最高可靠性和最小费用。(暂时不清楚具体通途,待补充)

16位总长度:表示整个IP数据报的长度,最大为65535,但是由于有MTU的限制,一般达不到这个数值

16位标识:数据报的标识,系统采用边发送边赋值的方式

3位标志:分别为保留区,禁止分片标志,和更多分片标志。DF位设置时表示禁止分区,如果数据报文过大,可能会发送失败。

MF位表示后面还有报文段,如果报文分片的话,除了最后一个分片,其他的报文片都置1

13位片偏移:分片相对于原始报文片开始的偏移

8位生存时间:表示报文到达目的之前,允许经过的路由跳数,没经过1跳,TTL值减一,值减到0的时候,丢弃

8位协议:用来区分上层协议(例如TCP,UDP等)

16位首部校验和:以CRC算法校验数据在传输过程中头部是否损坏

32位源IP地址:发送端的IP地址

32位目的IP地址:目的IP地址

注:

16位标识其实在标识了一个IP报文,如果一个报文被分片了,则该报文的所有分片的头部中16位标识都被填充为某个值

2、TCP头部


同IP头部类似,TCP头部通常也为20字节,带上选项部分,最大不超过60字节下面逐一进行解释。

16位源端口号:指发送端的端口号

16位目的端口号:指目的端的端口号

4位头部长度:同IP头部,表示TCP头部的大小,以4字节为单位。

32位序列号:TCP通信过程中,通过序列号来保证传输过程中数据的有序性

32位确认号:用以对接受到的报文进行确认

保留6位

URG:表示紧急指针

ACK:表示确认号

PSH:通知对端立即从缓冲区取走数据

SYN:表示请求建立连接

FIN:标志要通知对端本端的数据发送要关闭

16位窗口大小:TCP流量控制的手段,告诉发送方本端的接收端缓冲区还能接受多少数据

16位校验和:由发送方填充,接收端用CRC校验算法,用以检查TCP报文在传输过程中是否有损坏


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值