一个TCP包中的数据数据问题

一个TCP包中最大的数据
2008-03-10 18:54

在以太网中,最大传输单元MTU为1500个字节,在一个IP包中,去除IP包头的20个字节,可以传输的最大数据长度为1480个字节。在TCP包中,去除20个TCP包头,可以传输的最大数据段为1460个字节。因此,当数据超过最大数据长度时,将对该数据进行分片处理,在IP包头中会看到有多个片在传输,但标识号是相同的,表示是同一个数据包。

在IP层中本来有一个用来标识IP包总长度的字段,为16bit,即65536字节.但实际上在不同的网络协议中确不一定能达到.

输入名称“MTU” 2010-03-18 21:58 | (分类:默认分类)

内网须要看网关的,具体方式如下:
修改MTU
1、什么情形下需要改MTU?
如果您的动态域名网站不能被正常造访,很难连接,衔接上也非常慢,请试试把DirectSend设为“总是关闭”。如果关闭后可以正常拜访,这种情形就须要改动MTU。如果您的网站衔接正常,只是下载速度慢,就不必改MTU了。请跳过这一节。
2、什么是MTU?
MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。大部分网络装备的MTU都是1500。 如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会发生很多数据包碎片,增添丢包率,下降网络速度。把本机的MTU设成比网关的MTU小或雷同,就可以减少丢包。
3、如何检测网关的MTU?
在本机打开dos窗口,执行:ping -f -l 1472 192.168.0.1 其中192.168.0.1是网关IP地址,1472是数据包的长度,请注意,上面的参数是“-l”(小写的L),而不是“-1”。如果能ping通,表现数据包不需要拆包,可以通过网关发送出去。如果呈现:Packet needs to be fragmented but DF set.表现数据包须要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到适合的数据包长度了。 把数据包长度加上数据包头28字节,就得到MTU的值。如果检测到网关的MTU值是1500,不需要改动。如果网关有防火墙ping不通,可以试试直接把MTU设为1400。
4、如何修改本机的MTU?
修改办法如下:
(1)、运行regedit
(2)、阅读到:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Inte***ces
(3)、Inte***ces下有多个子项,每个子项对应一个网卡。请按如下方式选择网卡:
(a)肯定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19;
(b)用鼠标点击Inte***ces上的子项,查看键值列表中的IPAddress项;
(c)如果IPAddress的键值与(a)中的IP雷同,即192.168.0.19,则该子项就是要找的网卡。
(4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口:
填入MTU的值。填写前请先把基数设为十进制。设置好后,需要重启机器能力生效。


问:局域网服务器获得本地ISP提供的IP地址为202.102.192.68,采取Windows 98操作体系。如何实现改动网络的MTU值,以优化设置后果?

答:可以参考以下方式
实现。

第一步,拨号上网后,打开MS-DOS窗口,键入“Ping -f -l 1464 202.102.192.68”命令行。其中,快递查询,1464是尝试输入的MTU值,可能要从1500开端测试并尝试多次。如果运行成果显示“Request Timed out”或“Packet needs to be fragmented but DF set.”的信息,那么此时需要下降MTU数值再试,直到不再有这些信息呈现为止。记下此时的MTU值, 然后再加上28,就得到合适使用的最佳MTU了。这里得到的最大值是1464,则加上28后为1492。

第二步,打开注册表编纂器,找到[HKEY_LOCAL_ MACHINE//System//Current ControlSet//Services //Class//NetTrans//0000]分支。

第三步,在其中创立一个新的字符串类型的子键,命名为“MaxMTU”,并将其数值设置为测试得出的最佳MTU数值。

第四步,打开[HKEY_LOCAL_MACHINE//System//CurrentControlSet//Services//Class//Net//000x//Ndi//params//IP MTU//enum]分支。这里会有4项供选择。

第五步,在注册表右边窗口点击鼠标右键,选择“新建”→“字符串值”,并将其数值设置为测试出的MTU最佳值,然后将该项改名为“主动”,接着删除这里原有的几项。

第六步,打开[HKEY_LOCAL_MACHINE//System// CurrentControlSet//Services//Class//Net//0000]分支。

第七步,用鼠标右键单击IPMTU,并选择“修正”快捷菜单项,将其数值改为最佳MTU值。

第八步,打开[HKEY_LOCAL_MACHINE//System// CurrentControlSet//Services//Class//Net//0000//Ndi//params// IPMTU]分支,将其数值修正为最佳MTU值。
第九步,退出注册表,重启体系使修正生效。

小知识:什么是MTU?

从Windows 95体系开端,TCP/IP配置选项中的MTU(即Maximum Transmission Unit,或“最大传输单元”)是专为局域网配置的,但没有针对宽带接入进行优化。Cable Modem衔接的MTU尺度设置是1500,但各种DSL之间是有差别的,如ADSL PPPOE=1492 MTU,ADSL STATIC IP=1500 MTU,CABLE=1500等。

进行协商的个人计算机的默认MTU大小为1500个字节

 

你可能感兴趣的:(VC网络编程)