IPv4数据包和IPv6数据包的捕获与解析

本文详述了一次关于捕获和解析IPv4及IPv6数据包的实验,探讨了在数据包从源到目的地传输过程中可能发生变化的字段,如生存时间(TTL)和流标签。实验使用Wireshark工具,并讨论了IP协议的头部字段,包括IPv4的标识、片偏移和IPv6的流标签、跳数限制。文章还介绍了网络地址转换(NAT)对IP包头部的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验要求

  1. 捕获并解析一个IPv4包
  2. 捕获并解析一个IPv6包
  3. IP包从源计算机到目的计算机的传输过程中,你认为哪些字段可能会发生变化?原因是什么?

二、实验环境及工具

 (1)网络环境:

无线局域网:校园局域网

在校园局域网下:

  1. 计算机的IPv4地址:10.130.9.141
  2. 计算机的IPv4地址:2001:250:401:6563:7048:772c:e88b:60a4

三、实验原理

1、互联网协议

IPv4和IPv6都是互联网协议,用于在网络上传输数据。IPv4是互联网上使用最广泛的协议,但由于其地址空间的限制,IPv6被设计为IPv4的后继协议。

IPv4使用32位地址,而IPv6使用128位地址。这意味着IPv6可以提供比IPv4更大的地址空间,从而支持更多的设备和更多的互联网连接。IPv6还提供了更好的安全性和性能,因为它使用IPsec协议来提供端到端的加密和认证,并提供了更好的路由和多播支持。

虽然IPv4仍然是互联网上使用最广泛的协议,但IPv6正在逐渐取代它,并成为未来互联网的主要协议。

2、IP协议的数据传递方式

当发送方发送数据时,数据被分成一系列数据报,并且每个数据报都被分配一个IP地址。这个IP地址标识了该数据报的源和目的地,这样路由器就可以将数据报从一个网络节点传递到另一个网络节点。在传输过程中,每个数据报都被分成两个部分:头部和数据部分。头部包含了源IP地址、目的IP地址和其他必要的信息,如数据报的长度和类型等。数据部分则包含实际的数据内容。当数据报到达目的地时,它们将被重新组装成完整的数据,然后将其传递给目的应用程序。整个过程中,IP协议确保数据的可靠性和准确性,以便数据能够在网络中正确地传输。

3、IPv4首部和数据部分

(1)IPv4首部包括以下字段:

版本(Version):指示该数据报使用的IP版本,通常为IPv4(值为4)。

首部长度(Header Length):指示IPv4首部的长度,以32位字长为单位。

区分服务(Differentiated Services):用于指示数据报的优先级和服务质量(QoS)要求。

总长度(Total Length):指示整个数据报(包括首部和数据部分)的长度。

标识(Identification):用于唯一地标识数据报的一个片段。

标记(Flags):用于指示该数据报是否可以被分片,以及它是否是分片的最后一个片段。

片偏移(Fragment Offset):用于指示数据报的片段在整个数据报中的位置。

生存时间(Time to Live):用于指示数据报在网络中的最大跳数(即经过的路由器数)。

协议(Protocol):指示数据部分使用的上层协议,如TCP、UDP或ICMP等。

首部校验和(Header Checksum):用于检查首部在传输过程中是否被损坏。

源IP地址(Source Address):指示发送方的IP地址。

目的IP地址(Destination Address):指示接收方的IP地址。

(2)IPv4数据部分则包括实际的数据内容,可以是任何类型的数据,如文本、图像、音频、视频等。数据部分的具体格式和内容取决于使用的上层协议,如TCP、UDP或ICMP等。

4、IPv6首部和数据部分

IPv6首部包括以下字段:

版本(Version):指示该数据报使用的IP版本,通常为IPv6(值为6)。

流量类别(Traffic Class):用于指示数据报的优先级和服务质量(QoS)要求。

流标签(Flow Label):用于标识同一个数据流中的数据报,以便路由器可以对它们进行优化处理。

负载长度(Payload Length):指示IPv6首部之后的数据部分的长度。

下一个头部(Next Header):指示下一个头部使用的协议类型,如TCP、UDP或ICMPv6等。

跳数限制(Hop Limit):与IPv4的生存时间类似,用于指示数据报在网络中可以经过的最大节点数。

源地址(Source Address):指示发送方的IPv6地址。

目标地址(Destination Address):指示接收方的IPv6地址。

IPv6数据部分同IPv4数据部分相同。

四、实验前分析

IPv4协议和IPv6协议都包含头部及数据两部分,因此,在IP包从计算机A到计算机B的过程中,会发生变化的部分也都在这两类中。

考虑IPv4以及IPv6协议的头部分:

1)TTL生存期(IPv4)或Hop Limit跳数限制(IPv6):每经过一个路由器,这个字段的值都会减1,以避免IP包在网络中无限循环。如果这个值为0,则路由器直接丢弃该IP包,所以,在经过网络中每个路由器时,该值必定发生变化。

2)源地址和目的地址:在IP包经过不同的路由器时,源地址和目标地址都会发生变化。除非路由器开启了NET功能,会把内网IP地址转换为公网IP地址。

3)标志(IPv4)或流标签(IPv6):如果IP包需要被分片,那么在IP包从源计算机到目的计算机的传输过程中,标识(IPv4)或流标签(IPv6)字段的值都会发生变化。在分片过程中,每个分片都有一个唯一的标识值,而这个值会随着IP包的传输而不断变化。

4)片偏移(IPv4)或分段偏移(IPv6):如果IP包需要被分片,那么在IP包从源计算机到目的计算机的传输过程中,片偏移(IPv4)或分段偏移(IPv6)字段的值都会发生变化。在IP分片的传输过程中,如果IP分片经过了一个修改IP分片的网络设备(如路由器),例如对MTU进行了调整,那么该设备可能会修改该IP分片的片偏移字段,以反映该分片在新的IP数据报中的位置。因此,IP分片的片偏移值可能会随着IP包的传输发生变化,但这并不会影响IP分片的重组。

PS:在查询资料的过程中,多次提到了NAT(网络地址转换),网络地址转换(NAT)是一种将私有IP地址转换为公共IP地址的技术,常用于在私有网络和公共网络之间进行通信。NAT的主要作用有解决IPv4地址短缺问题以及将内部网络和外部网络隔离开来,从而增强网络的安全性。

在一个使用NAT的网络中,路由器或网关设备会维护一个转换表,该表记录了内部网络中的私有IP地址和外部网络中的公共IP地址之间的映射关系。当内部网络中的主机需要访问外部网络时,其IP数据报将被路由器或网关设备转换为对应的公共IP地址,然后发送到外部网络。同样,当外部网络中的主机需要访问内部网络时,其IP数据报将被路由器或网关设备转换为对应的私有IP地址,然后发送到内部网络。因此它会改变IP协议的头部。

NAT技术可以有效地减少公网IP地址的使用量,同时也能够隐藏内部网络的真实IP地址,增加网络的安全性。

考虑数据部分:

数据部分在IP包传输过程中一般不会发生变化,因为数据部分是上层协议(如TCP、UDP、ICMP等)的内容,IP协议只是负责在不同的网络节点之间传输IP包。

五、实验具体操作

  1. 捕获一个IPv4包

 0100 … = Version: 4 //互联网协议 IPv4

… 0101 = Header Length: 20 bytes (5) //IP 包头部长度 20bytes

Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) //差分服务字段

Total Length: 165//IP 包的总长度

Identification: 0x8a7d (35453) //标志字段

Flags: 0x0 (Don’t Fragment) //标记字段

Fragment offset: 0 //碎片偏移量

Time to live: 1//生存周期 TTL

Protocol: UDP(17) //此包内封装的上层协议为 UDP

Header checksum: 0x0000[validation disabled] //头部数据的校验和

Source: 10.130.9.141//源 IP 地址

Destination: 239.192.152.143 //目的 IP 地址

  1. 捕获一个IPv6包

 

0110......=Version:6//互联网协议 IPv6

Traffic Class:0x00(DSCP:CS0,ECN:Not-ECT)//差分服务字段

Flow Label:0x05efb//流标签

Payload Length:62//负载长度

Next Header:TCP(6)//下一个头部所使用的协议类型是TCP

Hop Limit:64//跳数限制

Source Address:2001:250:401:6563:d54d:a665:ffea:76da//源地址

Destination Address:2620:1ec:c11::239//目的地址

六、实验总结

通过本次实验,我们学习了IP协议的基本工作原理,了解了IPv4和IPv6协议的区别以及如何使用Wireshark工具进行网络数据包的捕获和解析。

在捕获IPv4包的过程中,我们了解了IPv4包的格式和各字段的含义。我们使用Wireshark工具对捕获的IPv4包进行了解析,包括源IP地址、目标IP地址、IP协议类型、TTL等信息。

在捕获IPv6包的过程中,我们了解了IPv6包的格式和各字段的含义。与IPv4包相比,IPv6包的格式更加简洁,而且具有更高的扩展性。Wireshark工具对捕获的IPv6包进行的解析,主要包括源IP地址、目标IP地址、IP协议类型等信息。通过这些信息,我们能够了解数据报的发送和接收情况。

总的来说,本次实验让我们更加深入地了解了IP协议的基本工作原理以及IPv4和IPv6协议的区别。美中不足的是,没有对IP包从源计算机到目的计算机的发送过程进行检测,从而具体了解哪些部分在这个过程中发生了变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值