各种数据包头的详解(tcp,udp,ipv4,ipv6)

Osi七层参考模型:

应用层

表示层

会话层

--------前三层控制层面

--------后四层数据层面

传输层:

区分不同的流量,定义传输方式(tcp/udp),定义端口号(区分不同的服务)

网络层:

寻址,编址(ipv4地址)

数据链路层:

定义局域网的封装,Ethernet 2 IEEE802.3封装

物理层

Tcp/ip参考模型:

应用层(等于osi上三层)

主机到主机层(等于osi传输层)

互联网层(等于osi网络层)

网络接口层

在实际生活中我们通常使用的是tcp/ip参考模型。

在osi中tcp的三次握手机制与四次挥手机制保证tcp的面向连接,确认重传机制保证tcp的可靠性。

一个完整的数据包:

           2层                   3层                4层

Tcp数据包头的结构:

 

每一行32个bit,4个字节。

Data:你要传输的数据(列如http,telnet)

Options:为可选项,默认为空。Padding:填充项。该两项默认为空。

所以,一个表准的tcp数据头部大小为20个字节。

Source Port:源端口

Destination Port:目标端口,该端口为你要访问的服务的端口。

Sequence Number:序列号,为所发送的数据的编号(顺序),序列号一般开始时是从1开始的。占32个bit。

Acknowledgment Number:确认号,用来确认时使用,当不用时为全0,占32个bit。

Data Offset:代表数据的偏移值(一个较大的数据传输时进行分片传输,第一个分片值为0,第二个分片值为第一个分片的大小,第三个分片值为前两个分片的大小。),表示该分片距离完整数据包头部的偏移值。

Reserved:保留位。

URG:紧急指针

ACK:标记位

PSH:暂停位,如果PSH=1表示tcp暂停数据的传输。

RST:重置位,

SYN:同步。

FIN:终止。

Window:单位(字节),代表一次性发送数据的多少进行确认。

Checksum:校验和,计算完整性。

Urgent pointer:紧急指针。默认为0,基本不用。

UDP数据包头结构:

             

 

IPV4与IPV6数据包结构:

           

IPV4:一行32个bit,4字节;

默认情况下ipv4的数据包为20个字节。

Version:版本,占4bit大小。

IHL:描述的是ip的头部的长度(大小),占4bit。  默认值为0101,单位是32bit(4字节),0101的十进制大小是5,所以ip头部大小是20个字节。所以ipv4头部大小的范围是(20-60字节),ipv4的头部大小只能以4字节的倍数增加。

Type of Service:描述服务类型,占8bit。对流量(数据)进行标记时使用。

Total Length:描述ip数据包的总长度(ip数据包头部+data),占16个bit,

Identification:占16个bit,标识符。当同一个数据被分片成多个分片传输时,在这个数据中的所有的分片的Identification值相同(这个值是随机的)表示是同一个数据的分片。

Flags:占3bit,3个bit的第一位叫做R:保留位,第二位叫做DF:不分片位,第三位叫做MF:更多分片位。

            DF:如果当这个bit等于1,则表示该数据没有被分片过。如果等于0,则表示该数据被分片。

           MF:当这个bit等于1时,表示你还没收完的该数据的分片,后面还有该数据的分片,当它为0时则表示该分片时该数据的最后一个分片(该数据的分片已经被收完)。

Fragment Offset:表示分片偏移,占13个bit。描述的是该分片距离完整数据包的头部的大小,单位字节。第n个分片的偏移值为前n-1个分片的大小(第一个分片的值为0,第二个分片的值为第一个分片的大小,第三个分片的值为前两个分片的大小之和。)

Time to Live(TTL):占8bit,生存时间(范围:0-255),可被路由次数,路由器查看一次路由表TTL值减一,当为0时将被丢弃。(可以避免环路带来的危害)

Protocol:占8bit,范围:1-255(0被保留),描述的是上层使用的是什么协议。Tcp的协议号:6,udp的协议号:17,ICMP的协议号:1(ICMP为跨层封装),ospf的协议号为:89(ospf协议为跨层封装),eigrp的协议号为:88(跨层封装),当值为6时表示ip的上层使用的是tcp协议。

Header Checksum:占16个bit,包头校验和,对ipv4的头部信息进行校验。当校验失败则说明该数据封装错误,或者该数据已经被人篡改。

Source Address:占32bit,源地址。

Destination Address:占32bit,目标地址。

Options:为可选项,默认为空。Padding:填充项。该两项默认为空。

IPV6:

Traffic Class:表示流量分类。作用与ipv4中Type of Service字段作用一样。

Payload lengh:表示总长度,作用与ipv4中Total Length字段作用一样。

Hop limit:表示跳数,作用与ipv4中的TTL字段作用一样。

Next Header:表示下一个头部,作用与ipv4中Protocol字段一样。

Flow lable:目前来说是一个保留字段

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值