wireshark抓包发现1506字节包

本文详细解析了以太网最大传输单元(MTU)的概念,解答了为何抓包时会发现长度为1506字节的数据包,而非通常认为的1500字节。通过分析以太网帧结构,解释了MTU与链路层、网络层的关系。

以太网的MTU最大为1506字节,但是抓包的时候我却发现大量的1506的字节包,这让我百思不得其解

1,TCP的MTU是哪里来的?

TCP的MTU一般使用默认值,当然,程序员也可以自己设定。我们这里讨论的是以太网的MTU值,以太网的MTU值为1500。

 

2,以太网的MTU为1500,为什么包长度达到了1506?

以太网的最大传输单元是1500,但这个长度是不包含链路层的,这个值是链路层针对网络层的设计,我们可以看看链路层的帧结构

这里我们讨论最常见的以太网帧封装结构,网络上99%以上都是以太网帧封装结构

由以太网帧结构,我们很容易就看出数据链路层针对网络层数据进行了限制,而wireshark的length项是整个帧的长度。

即14+20+20+1452 = 1506

1452这个值我们很容易从抓包的TCP层获取到

由此,我们得出,TCP层三次握手时候的MSS交换的值取决于网络层,受限于数据链路层协议。

 

在以太网数据帧中,开始的那部分是变长的字段(IP首部和TCP首部,数据部分是固定的,但不影响),把它们移动到尾部(CRC之前),这样把数据复制到内核时,就可以

把数据帧中的DATA部分映射到一个硬件页面,节省内存到内存的复制过程。也就是说CRC之后不必要再将已经在内存的DATA再重复复制一遍来使用。TCP数据报的长度是512字节的

整数倍,正好可以用内核中的页表来处理。

 

 我们注意到一个细节,CRC并未被计数到链路层数据长度

CRC是在数据发送期间进行计算的,是对整个帧的校检,也就是说,当一个帧封流出之后,CRC校检也随即完成,故,CRC是不计入链路层的。我们设想,如果把CRC放在帧头部,或帧中,那就需要对整个帧进行2次

操作方可完成,因为帧校检完成之后,若不附在尾部,必然要进行数据的插入操作。

 

同时我们也知道,一个以太网数据流,最大可达到1500 + 18 即1518字节。

 

END!

 

转载于:https://www.cnblogs.com/changbo/p/5091040.html

Wireshark 中搜索分组字节流(Packet Bytes)是分析网络流量时常见的需求,特别是在查找特定的二进制数据或原始数据内容时。以下为详细的方法和操作步骤: ### 使用“分组字节流”进行搜索 1. **定位到“分组字节流”面板** 在 Wireshark 主界面中,通常下方的第三个面板显示的是当前选中数据的原始字节流(Hex Dump),即“分组字节流”。可以通过鼠标点击该区域激活。 2. **使用快捷键 `Ctrl + F` 打开搜索窗口** 弹出的搜索窗口中选择“**分组字节流(Packet bytes)**”选项卡,确保搜索范围限定在原始字节流上。 3. **输入搜索内容** 支持以十六进制(Hex)或 ASCII 字符串形式进行搜索。例如: - 要搜索字符串 "example",可直接输入 `example`。 - 若需精确匹配十六进制值如 `65 78 61 6D 70 6C 65`,则切换至 Hex 模式输入[^1]。 4. **执行搜索** 点击“Find”按钮后,Wireshark 将高亮显示匹配的数据位置,并跳转到第一个匹配项。继续点击可遍历所有匹配结果。 ### 使用显示过滤器搜索字节流内容 若常规搜索方式无法命中目标,可以尝试通过设置显示过滤器来筛选含特定字节流的数据: ```text data contains { hex values } ``` 例如,搜索含 `65 78 61 6D 70 6C 65` 的数据: ```text data contains { 65 78 61 6D 70 6C 65 } ``` 如果要搜索 ASCII 字符串,则可以使用: ```text data-text-lines contains "example" ``` 这种方式特别适用于过滤出含特定文本内容的数据,即使这些内容出现在被截断或非结构化的字段中。 ### 导出分组字节流中的文件内容 对于某些流量(如菜刀等工具传输的文件),导出文件前需要对字节流进行处理,删除前后多余的控制字符(如 `X@Y`)。具体操作如下: 1. 右键点击分组字节流区域,选择“**Show Packet Bytes**”。 2. 在弹出窗口中,调整起始和结束偏移量(通常原字节数开头加3,结尾减3)。 3. 设置完成后点击“**Save as**”保存文件。 此方法可避免因多余字符导致文件损坏的问题[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值