1、两台PC机之间数据包发送过程两台PC机之间数据包发送过程第一章:实验准备1.1:实验目的.21.2:实验介绍.2第二章:正式实验2.1:PC1与PC2的IP在同一网段,不设置网关.82.2:PC1与PC2的IP不在同一网段,不设置网关112.3:PC1与PC2的IP不在同一网段,网关为对方的IP地址.132.4:Linux之间的IP不在同一网段,网关为对方的IP地址.15第一章:实验准备1.1 实验目的:了解两台PC机之间数据包封装的过程。1.2 实验介绍: 该实验拓扑图如下所示:1. TCP/IP协议栈与数据包的封装:TCP/IP网络协议栈分为应用层、传输层、网络层和网络链路层四层。如下列图
2、所示:两台计算机通过TCP/IP协议通讯的过程如下所示:传输层及其以下的机制由核提供,应用层由用户进程提供,应用程序对通讯数据的含义进展解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部header,称为封装Encapsulation,如下列图所示:不同的协议层对数据包有不同的称谓,在传输层叫做段segment,在网络层叫做数据报datagram),在链路层叫做帧frame。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。1.1具体分析封
3、装的过程:设备接口IP地址子网掩码PC1有线网卡10.1.13.222255.255.255.0PC2有线网卡10.1.13.34255.255.255.0PC1机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地址和子网
4、掩码与自己做比对,可以发现pc2与自己处于一样的子网。所以数据传输不必经过网关设备。5.数据包下到pc1的数据链路层进展封装,源mac地址为pc1的mac地址,目标mac地址查询自己的arp表。6.pc1把帧转换成bit流,从物理接口发出。7.pc2接收到这个数据帧,查看帧的目标mac地址,和自己相等,说明该帧是发送给自己的,于是将二层帧头解开。8.pc2查看三层,只要目标ip地址和自己匹配,即解开第三层封装。9.pc2查看传输层报头,目标端口为23,pc2向上层应用查看自己是否开启了端口为23的上层效劳。假设开启那么把传输层报头解封装后将数据送往上层。第二章 正式实验2.1 PC1与PC2的
5、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.
6、4实验过程PC1pingPC2:DataICMP源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地址后,就可以将数据包封装,发给pc22.2 PC1与PC2的IP地址不在同一网段,
7、不设置网关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:封装过程DataICMP源ip:10.1.13.222目的ip:10.1.12.34源Mac:pc1的Ma
8、c目的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的网
9、关为PC1的IP地址10.1.11.1.4实验过程PC1pingPC2封装过程 DataICMP源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.4 Linux之间的IP地址不在同一网段,网关设置为对方的IP地址1实验目的在Linux操作系统下,设置
10、不同网段的IP地址且把默认网关设为对方IP,重复以上步骤,观察是否能够正常通信。2实验环境两台pc直连,不同网段,IP地址互为网关。设备名IP地址子网掩码PC110.1.1.1255.255.255.0PC210.1.2.1255.255.255.0配置两台PC机IP地址,并测试是否能互相通信,配置及测试结果如下:测试连通性,发现能够正常PING通,说明两台LINUX主机能够建立通信。抓取数据包进展分析:分析数据包可以看出,首先PC1检查自己的MAC地址表查询是否有PC2的MAC地址,如果有,那么直接调用进展封装建立通信,如果没有,那么要发送ARP播送请求,PC2收到查询请求后知道这是查询自己的MAC地址,所以将PC1的MAC地址存入自己的MAC地址表并发送自己的MAC地址回复给PC1,两台机器实现正常通信。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1