两台PC机之间数据包发送过程.docx
《两台PC机之间数据包发送过程.docx》由会员分享,可在线阅读,更多相关《两台PC机之间数据包发送过程.docx(13页珍藏版)》请在冰豆网上搜索。
![两台PC机之间数据包发送过程.docx](https://file1.bdocx.com/fileroot1/2023-1/26/f64391a0-7760-425c-b74e-8012069085d6/f64391a0-7760-425c-b74e-8012069085d61.gif)
两台PC机之间数据包发送过程
两台PC机之间数据包发送过程
第一章:
实验准备
1.1:
实验目的……………………………………………………………………..2
1.2:
实验介绍……………………………………………………………………..2
第二章:
正式实验
2.1:
PC1与PC2的IP在同一网段,不设置网关…………………….8
2.2:
PC1与PC2的IP不在同一网段,不设置网关…………………11
2.3:
PC1与PC2的IP不在同一网段,网关为对方的IP地址…..13
2.4:
Linux之间的IP不在同一网段,网关为对方的IP地址…….15
第一章:
实验准备
1.1实验目的:
了解两台PC机之间数据包封装的过程。
1.2实验介绍:
该实验拓扑图如下所示:
1.TCP/IP协议栈与数据包的封装:
TCP/IP网络协议栈分为应用层、传输层、网络层和网络链路层四层。
如下列图所示:
两台计算机通过TCP/IP协议通讯的过程如下所示:
传输层及其以下的机制由核提供,应用层由用户进程提供,应用程序对通讯数据的含义进展解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部〔header〕,称为封装〔Encapsulation〕,如下列图所示:
不同的协议层对数据包有不同的称谓,在传输层叫做段〔segment〕,在网络层叫做数据报〔datagram),在链路层叫做帧〔frame〕。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
1.1具体分析封装的过程:
设备
接口
IP地址
子网掩码
PC1
有线网卡
10.1.13.222
255.255.255.0
PC2
有线网卡
10.1.13.34
255.255.255.0
PC1机IP信息:
PC2机IP信息:
PC1pingPC2连通性如下列图所示:
1.2数据封装的过程大致如下:
1.从pc1的应用层向pc2发出一个ping请求,生成数据。
2.请求下到pc1的传输层,传输层在上层数据前面加上tcp报头,报头中包括目标端口为23,以及一个大于1024,小于65535的随机端口作为源端口。
3.传输层数据下到网络层,pc1在网络层封装,源ip地址为pc1地址,目标ip地址为pc2地址。
4.pc1将pc2的ip地址和子网掩码与自己做比对,可以发现pc2与自己处于一样的子网。
所以数据传输不必经过网关设备。
5.数据包下到pc1的数据链路层进展封装,源mac地址为pc1的mac地址,目标mac地址查询自己的arp表。
6. pc1把帧转换成bit流,从物理接口发出。
7.pc2接收到这个数据帧,查看帧的目标mac地址,和自己相等,说明该帧是发送给自己的,于是将二层帧头解开。
8.pc2查看三层,只要目标ip地址和自己匹配,即解开第三层封装。
9. pc2查看传输层报头,目标端口为23,pc2向上层应用查看自己是否开启了端口为23的上层效劳。
假设开启那么把传输层报头解封装后将数据送往上层。
第二章正式实验
2.1PC1与PC2的IP地址在同一网段,不设置网关
1)实验目的:
探索两台直连同网段PC之间的通信过程
2)实验环境:
两台pc直连,IP地址配为同一网段,不配网关。
Pc1的IP配置:
Pc2的IP配置:
3)过程分析
Pc1去访问pc2,首先pc1用源ip、目的ip与本地子网掩码做与运算,得到网络位,判断源ip与目的ip是否在同一网段,本实验都为10.1.13.0/24的网段,pc1知道pc2和自己在同一网段后,为了得到pc2的Mac地址,pc1发送ARP查寻包,pc2收到ARP查询包后,给pc1返回ARP应答包,将自己的Mac地址告诉pc1,pc1知道了pc2的ip地址和Mac地址后,就可以将数据包封装然后发给pc2.
4〕实验过程
PC1pingPC2:
Data
ICMP
源ip:
10.1.13.222
目的ip:
10.1.13.34
源Mac:
pc1的Mac
目的Mac:
?
在封装到以太帧头时,由于不知道目的Mac地址,封装失败,需要先查本地的ARP缓存.
本地ARP缓存中没有pc2的Mac地址,需要发送ARP查询包,查询10.1.13.34的Mac地址,这是一个播送包,在同网段的所有主机都会收到.
Pc2收到ARP查询包后,在其中发现了自己的ip地址,知道这是在查寻自己的Mac地址,然后返回给pc1一个ARP应答包
Pc1知道了pc2的MAC地址后,就可以将数据包封装,发给pc2
2.2PC1与PC2的IP地址不在同一网段,不设置网关
1〕实验目的
探索两台直连pc间的通信过程,不同网段。
2〕实验环境
两台pc直连,不同网段,不配网关。
Pc1的IP配置
Pc2的IP配置
3〕过程分析
Pc1去访问pc2,首先pc1用源ip、目的ip与本地子网掩码做与运算,得到网络位,判断源ip与目的ip是否在同一网段,pc1为10.1.13.222/24,pc2为10.1.12.34/24不在同一网段,需要将包封装后发给网关,目的ip为pc2,目的Mac为网关的Mac,因为网关不存在,所以封装失败,包不能发出。
4〕实验过程
PC2pingPC1:
封装过程
Data
ICMP
源ip:
10.1.13.222
目的ip:
10.1.12.34
源Mac:
pc1的Mac
目的Mac:
网关?
?
?
由于网关不存在,数据包不能封装,无包发出。
2.3.PC1与PC2的IP地址不在同一网段,网关设置为对方的IP地址
1〕实验目的
探索两台直连pc间的通信过程,不同网段,配网关
2〕实验环境
两台pc直连,不同网段,配网关
Pc1的配置
Pc2的配置
3〕过程分析:
Pc1去访问pc2,首先pc1用源ip、目的ip与本地子网掩码做与运算,得到网络位,判断源ip与目的ip是否在同一网段,pc1为10.1.11.1/24,pc2为10.1.13.1/24不在同一网段,需要将包封装后发给网关,目的ip为pc2,目的Mac为网关的Mac,如下图PC1的网关为PC2的IP地址10.1.13.1,PC2的网关为PC1的IP地址10.1.11.1.
4〕实验过程
PC1pingPC2
封装过程
Data
ICMP
源ip:
10.1.11.1
目的ip:
10.1.13.1
源Mac:
pc1的Mac
目的Mac:
pc2的Mac
此时使用抓包工具进展抓包,分析所抓取到的数据包:
由此得出结论,即便默认网关和IP地址不在同一网段,但互为对方网关的话,PC机在MAC地址表查不到对方MAC地址的话也会发送ARP播送包,网关收到查询请求后知道这是查询自己的MAC地址,所以发送自己的MAC地址回复给PC1,两台机器实现正常通信。
2.4Linux之间的IP地址不在同一网段,网关设置为对方的IP地址
1〕实验目的
在Linux操作系统下,设置不同网段的IP地址且把默认网关设为对方IP,重复以上步骤,观察是否能够正常通信。
2〕实验环境
两台pc直连,不同网段,IP地址互为网关。
设备名
IP地址
子网掩码
PC1
10.1.1.1
255.255.255.0
PC2
10.1.2.1
255.255.255.0
配置两台PC机IP地址,并测试是否能互相通信,配置及测试结果如下:
测试连通性,发现能够正常PING通,说明两台LINUX主机能够建立通信。
抓取数据包进展分析:
分析数据包可以看出,首先PC1检查自己的MAC地址表查询是否有PC2的MAC地址,如果有,那么直接调用进展封装建立通信,如果没有,那么要发送ARP播送请求,PC2收到查询请求后知道这是查询自己的MAC地址,所以将PC1的MAC地址存入自己的MAC地址表并发送自己的MAC地址回复给PC1,两台机器实现正常通信。