TCPIP报文讲解Word文件下载.docx
- 文档编号:7772562
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:10
- 大小:138.39KB
TCPIP报文讲解Word文件下载.docx
《TCPIP报文讲解Word文件下载.docx》由会员分享,可在线阅读,更多相关《TCPIP报文讲解Word文件下载.docx(10页珍藏版)》请在冰点文库上搜索。
eth:
ip:
icmp:
data]/包自上往下封装的协议
下面是数据帧里的结构:
—以太网/协议
目的主机硬件地址:
/48bit被发送端主机硬件地址MAC
源主机硬件地址:
/48bit发送端主机硬件地址MAC
包类型:
/16bit(0x0800)所封装包的类型,只识别最外一层IP协议
—IP/协议
版本:
/版本号为4,也称作IPv4
首部长度:
/首部占32bit数目,字段长4比特,所以其最长为:
32/8*15(2进制的1111)=60字节
—服务类型:
/8位
优先权子字段:
/3bit优先权子字段
TOS子字段:
/4bitTOS子字段,分别代表:
最小时延、最大吞吐量、最高可靠性和最小费用,这里全0表一般服务
未用位:
/1bit未用位(必须置0)
总长:
16位/指整个IP数据报的长度,由于该字段长16比特,所以IP数据包最长可达65535字节
标识:
16位/唯一标识主机发送的每一份数据报,通常每发送一份报文它的值就会加1
标志:
3位/
片偏移:
13位/
生存时间:
8位/设置数据报可以经过的最多路由器
封装协议类型:
/8bit(这里是ICMP,0x01)所封装的协议
头部检验和:
trueorfalse16位/根据首部计算的检验和码,结果全1为true,否则false
源IP地址:
/发送端主机IP地址
目的IP地址:
32位/接收端主机IP地址
—ICMP/协议
类型:
8位
代码:
8位/类型和代码决定其报文的类型如8和0表示请求报文,0和0表示回应报文
检验和:
16位/作用和算法同IP检验和
标识符:
16位
序列号:
16位/标识符和序列号由发送端任意选择决定,这些值在应答中将被返回,发送端就可以将应答和请求进行匹配。
数据:
围0至1472/发送报文的主要容
下面背景加黑的部分表示相应的值。
这是一个完整的ICMP数据包,由到外封装顺序为:
ICMP→IP→ETH
当接收端主机收到一个报文后,分用过程则和封装相反:
ETH→IP→ICMP
ARP报文:
从相关信息中我们可以看到,ARP的封装格式为:
ETH→ARP。
ETH封装:
发送方式为广播方式,即目的硬件地址全1,这是一个询问硬件地址的报文;
如果是回应报文,则以单播的方式发送回一个报文。
ARP报文中的ETH封装比ICMP多一个9个字节的Trailer,一般规定数据帧最小为60字节,ARP请求或应答都是42字节,所以填充18个全0的字节以满足最小60字节的要求。
帧类型:
ARP(ARP请求或应答值都为:
0x0806)
ARP封装下的信息:
硬件类型:
/表示硬件地址的类型,0x0001表示以太网地址
协议类型:
/表示要映射的协议地址类型,0x0800表示IP地址
硬件地址长度:
/1字节,这里值为6,表示硬件地址长度为6字节
协议地址长度:
/1字节,这里值为4
操作字段:
/ARP请求:
1;
ARP应答:
2;
RARP请求:
3;
RARP应答4。
发送端硬件地址:
发送端IP地址:
接收端硬件地址:
接收端IP地址:
RARP报文:
RARP分组格式和ARP基本一致。
它们之间主要差别是RARP请求或应答的帧类型代码为0x8035,RARP请求操作代码为3,应答操作代码为4。
PING程序:
目的:
测试另一台主机是否可以到达。
实验1:
PING10.11.1.1
结果输出如下图:
输出第一行是采用默认的32字节的报文PING目的主机的IP地址(如果输入是服务器的名称,则通过DNS解析成IP地址)。
通过抓包工具抓包分析,我们可以查到发送的报文是包含32字节数据的长74字节的ICMP请求报文。
从第2—5行输出和抓到的数据包可以看到:
从目的主机10.11.1.1收到:
含32字节数据、长74字节的ICMP回应报文;
往返时间都是2毫秒(往返时间=接收时间-发送时间),生存时间TTL为255(最大生存时间)。
从第7行可以看到:
发送4个包,接受到4个包,丢失率0%;
从第9行可以看到:
这里最小和最大往返时间都是2毫秒,平均往返时间2毫秒。
实验2:
PING一个不存在的主机10.11.1.2
从图中我们可以看,请求时间超时,发送4个包,收到0个回应,丢失率100%。
多PING几次,即可确定10.11.1.2和我们的主机是不相连的。
上面是在局域网里面操作的,如果在广域网里操作,结果会如何呢?
实验3:
PING.sina.
输出结果如下图:
从图中我们可以看出:
第一行DNS自动把域名解析成IP地址;
第2、4、5行往返时间明显比实验1要大很多,甚至超时(如第3行),
以上实验中的一些数值是可以修改的,如传输的数据长度,生存时间等都可以根据需要来修改,但存在一定的围限制,如:
、
输入PING–i10010.11.1.1/修改TTL值为100;
通过抓包可以看到:
输入PING-i50010.11.1.1/修改TTL值为500;
则在PING命令下显示:
PING实现过程:
1、生成ICMP请求报文。
2、将ICMP报文、发送端和目的端的主机IP地址封装在IP报文中,并发给ETH协议层。
3、通过ARP缓存查询目的IP地址相对应的硬件地址。
如果不存在,则执行4;
如果存在,则执行6。
4、发送ARP请求报文,以广播方式发送出去,询问对应目的IP地址的硬件地址。
5、如果接到ARP请求回应,则执行6,否则超时,按异常处理,输出请求超时。
6、ETH协议层将收到的IP报文、源主机和目的主机的硬件地址。
7、将封装好的报文通过媒介端口发送出去。
8、目的主机接收到发来的ICMP请求数据包,采用自上往下的方式分用报文。
9、ETH协议层查看发来的目的硬件地址是否和本地主机硬件地址相同?
相同,则提取IP数据包发送给IP协议层处理;
否则丢弃。
10、IP协议层接收后,检查目的IP地址是否和本地IP地址相同?
相同,则提取ICMP数据包给ICMP协议层,否则丢弃。
11、ICMP协议层接收处理后,马上构建一个ICMP回应给发送端主机,过程和发送请求一样,只是不需要再回应。
Traceroute程序:
作用:
可以查看IP数据报从一台主机传到另一台主机所经过的路由。
在PING过程中,我们知道采用-r可以记录路由选项。
但其受到一些限制,无法通用:
1、并不是所有的路由器都支持这个记录路由选项。
见实验1;
2、记录路由一般都是单向的选项,会受到一些限制(后面讨论);
3、IP首部中留给选项空间有限,不能存放太多的路径。
PING–r910.11.3.36、PING–r910.11.1.1
输出结果:
PING–r910.11.3.36:
PING–r910.11.1.1:
由上可见,通过交换机连接的路由是记录的,但网关路由器是不支持这记录路由选项的。
Tracert10.11.1.1(记录局域网里的路由)
Tracert.sina.(记录广域网里的路由)
Traceroute过程:
Traceroute发送一份TTL为1(UDP报文,端口值为主机任何应用程序皆不可用)的IP数据报(从上面的实验可以看到:
每一行里有三个往返时间值,即一般每次都是发送三份相同的报文)给目的主机,处理这份报文的第一个路由器将TTL值减1,丢弃该数据报,并发回一份ICMP超时报文,这样发送端主机就得到路径中的第一个路由地址。
然后Traceroute程序再发送一份TTL值为2的IP数据报,这样就可以得到第2个路由地址,依此类推得到后面的路由地址。
当目的端主机收到一份TTL为1的报文时,发现端口不可用,即产生一份“端口不可达”错误的ICMP报文(以区分ICMP超时报文)告诉发送端主机程序应该结束了,这样即可得到了整个路由过程的路由地址。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCPIP 报文 讲解