MTU[最大传输单位]

今天搞一个网络,死活出问题,后来才发觉是MTU值设定的错误,自己总结了一下

当电脑连接网络传送资料时,资料会分割为不同大小的封包,MTU值设定。MTU是英文Maximum Transmission Unit的缩写,意为“最大传输单位”。也就是通过TCP/IP协议所传输的数据包最大有多少字节, MTU值越大,封包就越大,理论上可增加传送速率,但MTU值又不能设得太大,因为封包太大,传送时出现错误的机会大增。一般默认的设置,PPPoE连接的最高MTU值是1492, 而以太网(Ethernet)的最高MTU值则是1500,而在Internet上,默认的MTU大小是576字节, 为什么会有这种差别呢?一般而言,LAN就不说了吧,为充分发挥LAN的效能,MTU可以稍微大一点。Internet的情况恰好相反,对拨号用户来说,那叫一个慢呀。因此,对于Internet,应当采用较小的数据包。 MTU值设定与宽带接入方式的不同也会影响上网速度,通常推荐的MTU配置是:对于拨号用户,设置成576;对于使用PPPoE的DSL用户,设置成1400;对于其他用户,设置成1500。

ping www.blueidea.com -f -l 1480

出现Packet needs to be fragmented but DF set.就说明该大小的(1480字节)数据包超过了ISP的MaxMTU,产生了数据冲突碎片,那么我们就降低Ping命令中的数据包大小,比如说是1460一直到返回信息是Reply from 220.194.57.26: bytes=1460 time=134ms TTL=115才算正常,那个这个1460数据包大小的值就是ISP的PPPoE协议的MaxMTU值

9X系统中如下设定,运行==regedit回车,进入注册表。依次展开HKEY_LOCAT_MACHINE/System/CurrentControlSet/Services/Class/NetTrans/,会看到包含几个000X的子项,寻找含有键名为“DriverDesc”,键值为“TCP/IP”的000X主键,该键里有该计算机的网络属性设置,如IP地址192.168.0.XX,网关 192.168.0.1,子网掩码255.255.255.0等。在该键下新建“DWORD值”,命名为“MaxMtu”,修改键值为十进制的1460,

Win95,98系统:
打开注册表编辑器,找到位置 “HKEY_LOCAT_MACHINE/System/CurrentControlSet/Services/Class/NetTrans00x”, “x”表示为数字,假如电脑安装了多个通讯协议,就会出现“0001”、“0002”、“0003”等项目,只要打开该项目,就会看见 “DriverDesc”是“TCP/IP”,即网卡的“Registry”设置,用户在这里可按鼠标右键新增一个“MaxMTU”的DWORD值,修改键值为十进制的1460,重启。

Win2000,NT,XP,2003系统可以采用如下2种方法之一,建议采用第一种,如果不行,依次往下试验
1,启用PMTUD的backhole传输

打开REGEDIT,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/主键下,找到主键 EnablePMTUBHDetect ,如果没有则创建这个Dword值,将其键值设置为1,保存后重起计算机,并测试故障是否解决?
2, 手工设置网卡的MTU值

打开REGEDIT,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/主键下,下面会有几个文件夹,分别代表机器的安装的每一块网卡,依次浏览每个文件夹,并察看窗口右边IPAddress的键值,如果其值为你连接 Internet所用网卡的ip,则需要修改的就是这个文件夹。
进入此文件夹,找到一个名为MTU的主键,如果没有则创建这个Dword值,修改键值为十进制的1460,重启。

<think>嗯,用户现在问的是计算机网络中各层次的数据传输单位。我需要先回忆一下OSI七层模型和TCP/IP四层模型中的各个层次,以及它们对应的数据传输单位。首先,应该从物理层开始,物理层处理的是比特流,也就是bit,对吧?然后是数据链路层,这一层的数据单位是帧(Frame),对吧?网络层的话,传输的是数据包(Packet),而传输层是段(Segment)或者数据报(Datagram),具体取决于协议,比如TCP是段,UDP是数据报。会话层、表示层和应用层的数据单位可能不太常见,但通常称为消息或数据。 不过用户可能更熟悉TCP/IP模型,所以可能需要把两者对应起来。比如在TCP/IP模型中,网络接口层对应OSI的数据链路层和物理层,传输单位是帧。网络层对应IP层,单位是包。传输层同样是段或数据报,应用层则对应OSI的应用层、表示层和会话层,数据单位是消息或数据流。 用户可能想知道每一层的数据单位名称以及简要说明,比如为什么不同层有不同的单位,或者这些单位的作用。需要确保每个层次对应的名称准确,比如物理层是比特,数据链路层是帧,网络层是包,传输层是段,应用层是消息。同时可能需要提到封装和解封装的过程,解释数据在不同层之间如何添加或移除头部尾部信息。 另外,是否有必要区分OSI和TCP/IP模型?用户可能对这两个模型有些混淆,所以需要明确说明。比如在OSI七层模型中,各层的单位,而在TCP/IP四层模型中,各层的单位可能合并了一些层次。例如,TCP/IP的应用层对应OSI的应用层、表示层、会话层,所以数据单位可能统称为消息或数据。 需要检查是否有常见的错误,比如误将传输层的数据单位称为数据包,但实际上数据包属于网络层。TCP用段,UDP用数据报,这点需要明确指出。另外,物理层的传输单位是比特,也就是二进制位,而数据链路层处理的是帧,包含MAC地址等信息。 是否需要举例说明?比如在发送电子邮件时,数据从应用层的消息开始,经过传输层分段,网络层封装成包,数据链路层成帧,物理层转为比特流传输。接收方则反向解封装。 用户可能的潜在需求是理解网络层次结构以及数据在各层的处理方式,为学习网络协议打下基础。或者他们可能在备考,需要记住各层的传输单位。因此,结构清晰、层次分明的回答会更有效。同时,要确保术语正确,比如帧、包、段、数据报的定义和区别。 最后,总结各层的数据传输单位,可能用表格形式更直观,然后逐一解释每个单位的作用和相关协议。需要确认每个层次的名称和数据单位是否正确,避免混淆。例如,会话层、表示层在OSI模型中是否存在特定的数据单位?通常这些上层的单位可能统称为数据或消息,所以可能需要说明在高层中数据单位较为统一,而底层则有更具体的术语。</think>以下是**计算机网络各层次数据传输单位**的详细说明,基于**OSI七层模型**和**TCP/IP四层模型**的对应关系: --- ### **1. OSI模型各层数据传输单位** | **OSI层次** | **数据传输单位** | **核心功能与特点** | |------------------|------------------|------------------------------------------------------------------------------------| | **物理层** | **比特(bit)** | 传输二进制比特流(0/1),定义电压、接口等物理特性(如网线、光纤的电气信号传输)。 | | **数据链路层** | **帧(Frame)** | 封装网络层数据包为帧,添加MAC地址和校验码(如以太网协议)。 | | **网络层** | **包(Packet)** | 实现路由与寻址,封装传输层数据为IP包(如IPv4/IPv6协议)。 | | **传输层** | **段(Segment)**或**数据报(Datagram)** | - TCP协议:分段(Segment)<br>- UDP协议:数据报(Datagram) | | **会话层** | **会话数据** | 管理通信会话的建立、维护与终止(如RPC协议)。 | | **表示层** | **格式化数据** | 数据加密、压缩、编码转换(如SSL/TLS加密、JSON/XML格式转换)。 | | **应用层** | **消息(Message)** | 提供用户接口,处理应用数据(如HTTP请求、电子邮件内容)。 | --- ### **2. TCP/IP四层模型对应** | **TCP/IP层次** | **对应OSI层** | **数据传输单位** | **典型协议** | |-------------------|------------------------|------------------|--------------------------------------------------| | **网络接口层** | 物理层 + 数据链路层 | **帧(Frame)** | 以太网(Ethernet)、Wi-Fi(802.11) | | **网络层** | 网络层 | **包(Packet)** | IP、ICMP、ARP | | **传输层** | 传输层 | **段(Segment)**或**数据报** | TCP、UDP | | **应用层** | 应用层 + 表示层 + 会话层 | **消息(Message)** | HTTP、FTP、DNS、SMTP | --- ### **3. 数据传输单位详解** #### **(1) 比特(bit)** - **作用**:物理层通过高低电压或光信号表示二进制数据(如光纤中光的亮灭代表1/0)。 - **示例**:网卡将帧转换为比特流通过网线传输。 #### **(2) 帧(Frame)** - **结构**: $$ \text{帧头(MAC地址)} + \text{数据载荷(IP包)} + \text{帧尾(CRC校验码)} $$ - **功能**:通过MAC地址实现局域网内设备间通信,校验数据完整性(如以太网帧最大1518字节)。 #### **(3) 包(Packet)** - **组成**: $$ \text{IP头(源/目的IP地址)} + \text{传输层数据(段/数据报)} $$ - **功能**:跨网络寻址,决定数据从源到目的的最佳路径(如路由器根据IP地址转发包)。 #### **(4) 段(Segment)与数据报(Datagram)** - **TCP段**: - 包含序列号、确认号,支持可靠传输(如网页浏览、文件下载)。 - 结构: $$ \text{TCP头(端口号、控制标志)} + \text{应用层数据} $$ - **UDP数据报**: - 无连接、不可靠传输(如视频流、DNS查询)。 - 结构更简单,仅包含源/目的端口和校验和。 #### **(5) 消息(Message)** - **应用层协议**: - HTTP请求:`GET /index.html HTTP/1.1` - 电子邮件:SMTP协议中的文本内容与附件。 - **特点**:人类可读的格式化数据,通常基于文本或二进制编码(如JSON、Protobuf)。 --- ### **4. 数据封装与解封装过程** 1. **发送端**: $$ \text{应用数据(消息)} \xrightarrow{\text{+传输层头}} \text{段/数据报} \xrightarrow{\text{+IP头}} \text{包} \xrightarrow{\text{+帧头尾}} \text{帧} \xrightarrow{\text{比特流}} \text{物理传输} $$ 2. **接收端**: 逆向逐层剥离头部,最终还原为应用层消息。 --- ### **5. 常见问题** - **为什么分层?** 各层职责分离,便于协议设计与维护(如修改应用层协议不影响底层传输)。 - **MTU最大传输单元)与分片**: 数据链路层帧大小受限(如以太网MTU=1500字节),超大的IP包会被分片传输。 --- ### **总结** 理解各层数据传输单位是掌握网络通信的基础: - **底层**(物理层、数据链路层)关注**物理信号与本地传输**; - **中层**(网络层、传输层)解决**跨网络寻址与端到端通信**; - **高层**(应用层)直接服务于用户需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值