为什么IP层要分片而TCP层要分段 这些和MTUMSS又有什么关系tcpdump抓包实战搞起.docx
- 文档编号:28518692
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:11
- 大小:17.75KB
为什么IP层要分片而TCP层要分段 这些和MTUMSS又有什么关系tcpdump抓包实战搞起.docx
《为什么IP层要分片而TCP层要分段 这些和MTUMSS又有什么关系tcpdump抓包实战搞起.docx》由会员分享,可在线阅读,更多相关《为什么IP层要分片而TCP层要分段 这些和MTUMSS又有什么关系tcpdump抓包实战搞起.docx(11页珍藏版)》请在冰豆网上搜索。
为什么IP层要分片而TCP层要分段这些和MTUMSS又有什么关系tcpdump抓包实战搞起
为什么IP层要分片而TCP层要分段?
这些和MTUMSS又有什么关系?
------tcpdump抓包实战搞起!
在前面的文章中,我们已经了解到,数据链路层对上层IP包的长度是有限制的,以典型的以太网为例,这个限制值即为MTU(最大值是1500字节),为此,IP层对上层网络层的数据也有限制,这个限制值是MSS(最大值为1460字节),至于为什么是这两个值,我们在前面的文章已经解释过了,故不再赘述。
我们设想一下,如果应用层需要用UDP发送2000字节的数据,那么加上IP头和UDP头后,就是2028个字节了,超过了MTU的限制,那怎么办呢?
此时,协议栈在IP层采用了分片的机制,把大的应用数据拆分成若干个小的数据,也样就有了若干个IP包,而且会保证每个IP包不超过1500字节。
用图来表示就是:
可以看到,分成了两个IP包来发送,且第二个IP包没有UDP数据,没有端口信息!
这一点十分值得注意。
如果过滤端口来抓包,肯定抓不到这个IP包。
第一个包也会有点怪异,其中UDP头中标明的包长度包含而第二个包的应用数据长度。
事实是否真的如此呢?
我们来写程序并抓包验证:
udp服务端的程序为:
[cpp]viewplaincopy#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>intmain(){structsockaddr_insrvAddr;bzero(&srvAddr,sizeof(srvAddr));srvAddr.sin_family=AF_INET;srvAddr.sin_addr.s_addr=htonl(INADDR_ANY);srvAddr.sin_port=htons(8765);intsrvAddrLen=sizeof(srvAddr);intiSock=socket(AF_INET,SOCK_DGRAM,0);//udpbind(iSock,(structsockaddr*)&srvAddr,sizeof(srvAddr));while
(1){getchar();charszBuf[50001]={0};recvfrom(iSock,szBuf,sizeof(szBuf)-1,0,(structsockaddr*)&srvAddr,(socklen_t*)&srvAddrLen);printf("msgfromclient[%s]\n",szBuf);}close(iSock);return0;}udp客户端的程序为:
[cpp]viewplaincopy#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<errno.h>intmain(intargc,char*argv[]){structsockaddr_insrvAddr;bzero(&srvAddr,sizeof(srvAddr));srvAddr.sin_family=AF_INET;srvAddr.sin_addr.s_addr=inet_addr("10.100.70.140");srvAddr.sin_port=htons(8765);intiSock=socket(AF_INET,SOCK_DGRAM,0);//udp#defineN2000charszBuf[N]={0};for(unsignedinti=0;i<N;i++)//字符数组最后一个字符不要求是‘\0’{szBuf[i]='a';}intiRet=sendto(iSock,szBuf,sizeof(szBuf),0,(structsockaddr*)&srvAddr,sizeof(srvAddr));printf("sendsizeis%d,iRetis%d,errmsg[%s]\n",sizeof(szBuf),iRet,strerror(errno));close(iSock);return0;}服务端抓包结果:
[plain]viewplaincopy00:
13:
57.187159IP10.100.70.139.46671>10.100.70.140.ultraseek-http:
UDP,length20000x0000:
450005dc051020004011ae220a64468bE.......@..".dF.0x0010:
0a64468cb64f223d07d8116e61616161.dF..O"=...naaaa0x0020:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0030:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0040:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0050:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0060:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0070:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0080:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0090:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00d0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00e0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00f0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0100:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0110:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0120:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0130:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0140:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0150:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0160:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0170:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0180:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0190:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x01a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x01b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x01c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x01d0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x01e0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x01f0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0200:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0210:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0220:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0230:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0240:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0250:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0260:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0270:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0280:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0290:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x02a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x02b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x02c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x02d0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x02e0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x02f0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0300:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0310:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0320:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0330:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0340:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0350:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0360:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0370:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0380:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0390:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x03a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x03b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x03c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x03d0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x03e0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x03f0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0400:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0410:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0420:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0430:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0440:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0450:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0460:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0470:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0480:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0490:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x04a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x04b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x04c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x04d0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x04e0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x04f0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0500:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0510:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0520:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0530:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0540:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0550:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0560:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0570:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0580:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0590:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x05a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x05b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x05c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x05d0:
61616161616161616161616100000000aaaaaaaaaaaa....0x05e0:
000000000000000000000000............00:
13:
57.187161IP10.100.70.139>10.100.70.140:
ip-proto-170x0000:
45000224051000b94011d1210a64468bE..$....@..!
.dF.0x0010:
0a64468c616161616161616161616161.dF.aaaaaaaaaaaa0x0020:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0030:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0040:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0050:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0060:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0070:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0080:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0090:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00a0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00b0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00c0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00d0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00e0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x00f0:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0100:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0110:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0120:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0130:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0140:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0150:
61616161616161616161616161616161aaaaaaaaaaaaaaaa0x0160:
6161616161616161
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 为什么IP层要分片而TCP层要分段 这些和MTUMSS又有什么关系tcpdump抓包实战搞起 为什么 IP 分片 TCP 分段 这些 MTUMSS 什么 关系 tcpdump 实战
链接地址:https://www.bdocx.com/doc/28518692.html