目 录

第1章 实验目的 

第2章 实验内容 

第3章 实验拓扑及参数 

第4章 实验过程及结果 

4.1 访问条件描述 

4.2 访问过程描述 

4.2.1 设备参数配置 

4.2.2 数据传输部分 

第5章 问题及讨论 

第6章 实验体会 

结 论 

第1章 实验目的

(1)掌握计算机网络工作原理。

(2)掌握数据传输过程中所涉及到的协议和设备的工作过程。

(3)灵活运用eNSP软件进行相关学习。

2实验内容

(1)理解计算机网络基本概念和拓扑结构。

(2)深入研究OSI模型和TCP/IP模型。

(3)学习网络协议和设备工作原理。

(4)运用eNSP软件搭建虚拟网络实验环境。

(5)网络故障排除和配置调试。

3实验拓扑及参数

本实验旨在通过如图3-1 网络拓扑图,基于客户端1刚刚开机,打开浏览器,输入百度网址回车后,对整个网络的工作过程的描述。拓扑图如图3-1所示。


3-1 实验拓扑图

    本实验所使用参数,按照实验要求,将IP地址等参数规划如表3-1所示。

3-1 网络参数表

设备

本机IP地址

网关

子网掩码

MAC地址

客户端1

10.208.208.49

10.208.208.62

255.255.255.240

54-89-98-68-02-C4

客户端2

10.208.208.50

10.208.208.62

255.255.255.240

54-89-98-7E-34-AE

百度服务器

172.16.208.41

172.16.208.46

255.255.255.248

54-89-98-24-0D-2B

域名服务器

172.16.208.42

172.16.208.46

255.255.255.248

54-89-98-E7-44-19

4实验过程及结果

4.1 访问条件描述

        本实验所设定的假设条件为:客户端1刚刚开机,其内部的HttpClient服务还未获取到百度服务器的网址。客户端2开机之前,运用命令行中的ping命令来判断与网络2和网络3中的设备是否相连。交换机获取其交换表。百度服务器中的HttpServer服务中查询并获取index.html文件,获取百度服务器的网站。域名服务器中的DNSServer服务增加主机的域名和其对应的IP地址。

4.2 访问过程描述

4.2.1 设备参数配置

        在本次运用eNSP软件进行计算机网络综合实验时,对于网络1中的客户端1,采用10.208.208.49作为它的本机地址,其网关为10.208.208.62,子网掩码由计算可知为255.255.255.240。在其日志信息显示“设备启动”的字样的时候就代表客户端1可以正常进行使用。

        在本次运用eNSP软件进行计算机网络综合实验时,对于网络1中的客户端2,采用10.208.208.50作为它的本机地址,其网关为10.208.208.62,子网掩码由计算可知为255.255.255.240。在其命令行服务中使用ping命令服务,查找网络3的几个IP地址,若出现如图4-1所示:   

   

                                                          图4-1

则表示客户端2可以正常进行使用,且对于网络2和网络3中的每一个设备的IP地址进行 ping 命令服务,如果都出现如图类似的情况,表明在本次实验使用的拓扑图中,每一个设备都处于连接状态。

    在本次运用eNSP软件进行计算机网络综合实验时,对于网络中的百度服务器,采用172.16.208.41作为它的本机地址,其网关为172.16.2108.46,子网掩码由计算可知为255.255.255.248。在百度服务器中的 HttpServer 服务中的文件根目录查找 index.html 文件,并进行启动。运用PING测试,若出现如图4-2所示:

       

                                                                          图4-2 

则表示百度服务器可以正常进行使用。

        在本次运用eNSP软件进行计算机网络综合实验时,对于网络中的域名服务器,采用172.16.208.42作为它的本机地址,其网关为172.16.2108.46,子网掩码由计算可知为255.255.255.248。在域名服务器中的DNSServer服务中增加百度服务器的主机域名和其对应的IP地址,并进行启动。

4.2.2 数据传输部分

1.ARP协议

        为了知晓目的IP地址,在本机使用ARP协议,找到与之对应的MAC地址,并判断该数据的传输是直接交付还是间接交付,判断方法为源主机在进行直接交付或间接交付前,会查找本地的ARP表(用于直接交付)或路由表(用于间接交付),以获取目标主机的MAC地址或下一跳路由器的IP地址。ARP封装在以太网帧当中,在本地网络上广播ARP请求报文,之后收到网络1的网关回复的ARP应答报文。在客户端2的命令行中使用以下命令,若出现如图4-3所示:

      

                                                                       图4-3 

表示在网络中已经找到目的IP地址,并且通过查询目标主机的IP地址获取其对应的MAC地址,以便直接交付数据包。

2.DNS服务

        为了解析百度服务器的域名,使用 DNS 域名解析。DNS解析过程涉及本地域名解析器,根DNS服务器,顶级域DNS服务器和权威DNS服务器之间的交互。在每个阶段,DNS查询会向上一级DNS服务器请求下一级DNS服务器的IP地址,直到最终获得目标域名的IP地址。这个IP地址随后被本地域名解析器缓存,以加速未来的相同域名解析。首先检查本地的DNS缓存,看是否已经缓存了对应的域名解析结果。如果有缓存,直接返回解析结果,否则进行下一步。在这个阶段,分为DNS请求报文和DNS回复报文。

        在DNS请求报文中包含了属于单播帧的以太网帧,源IP地址10.208.208.49,目的IP地址172.16.208.42。源端口49153,目的端口53。封装了UDP报文(DNS的熟知端口号为53),想要查询的问题是域名www.baidu.com的IP地址,并利用首部检验和字段对TCP数据报的数据部分进行检测。在DNS回复报文中包含了属于单播帧的以太网帧,源IP地址172.16.208.42,目的IP地址10.208.208.49。源端口53,目的端口49153。解析出域名www.baidu.com的地址,并利用首部检验和字段对TCP数据报的数据部分进行检测。

        在DNS请求和回复的过程中,DNS服务为了查询百度IP地址,在运输层使用了UDP封装(响应数据包较大时,也可以使用TCP进行传输),并对这些数据进行缓存。消息被封装在IP数据报中在网络层进行传输,IP数据报的参数包括源IP地址,目标IP地址,协议字段、TTL(生存时间)等。在数据链路层传输时,通常使用UDP协议,因此在数据链路层上会封装为UDP数据报。在经过以太网帧头,IP报头和UDP报头分别用于在不同层次进行封装之后,最终将DNS请求和回复传递到目的主机。这样的封装使得DNS消息能够通过网络进行可靠传输。

3.TCP连接的建立与关闭

        在客户端1开始发送数据前,客户端1和百度服务器,域名服务器需要建立TCP连接。这个过程被称为三次握手。客户端向服务器发送一个带有SYN=1的TCP报文,同时选择一个初始序列号。服务器接收到后回复一个带有SYN=1和ACK=1的报文,也选择一个初始序列号,并将确认号设置为客户端的初始序列号+1。最后客户端再发送一个带有ACK=1的报文,同时确认号被设置为服务器的初始序列号+1。这样,TCP连接就建立起来了。

        一旦TCP连接建立,客户端和服务器就可以通过该连接进行数据的可靠传输。TCP使用序列号和确认号来确保数据的有序传输和可靠接收,在这个时间段需要进行流量控制和拥塞控制确保数据的可靠传输。数据被划分为TCP报文段,每个报文段都有一个序列号,接收方通过确认号告知发送方已成功接收数据。如果发送的数据丢失或者接收方未收到,TCP会进行重传。

        当通信结束时,客户端和服务器通过四次挥手来断开TCP连接。客户端发送一个带有FIN=1的报文,服务器接收到后回复一个带有ACK标志的报文,其中的ACK字段的值为客户端最后一个已收到的序列号加1。然后服务器发送一个带有FIN标志的报文,最后客户端回复一个带有ACK标志的报文,其中的ACK字段的值为服务器最后一个已收到的序列号加1。这样,TCP连接就被安全地关闭。

4.HTTP访问过程

        首先客户端1通过向百度服务器发起TCP连接请求,建立与服务器的TCP连接。该请求首先通过域名解析系统将域名解析为对应的IP地址。随后,浏览器通过TCP协议与目标服务器建立连接。一旦连接建立,浏览器向服务器发送HTTP请求,该请求包括 GET请求报文,如图4-4所示:                                ​​​​​​​        

                                                                   图4-4

POST请求体,请求的资源路径,HTTP版本等信息。服务器接收到HTTP请求后,会根据请求中的信息进行相应的处理,通过动态生成内容、查询数据库、执行业务逻辑等方式处理并生成HTTP响应报文,如图4-5 所示:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                                                      图4-5

服务器通过TCP连接将响应发送回客户端1。客户端1接收到服务器的HTTP响应后,会解析响应的内容,并根据需要进行后续的处理(后续部分属于Web前端技术)。当HTTP事务完成后,客户端1和百度服务器之间的TCP连接可以选择关闭。需要注意的是,HTTP/1.1默认采用持久连接(在一个TCP连接上可以传输多个HTTP请求和响应),这样可以减少连接的建立和断开的开销,提高性能。

5.数据传输

        在所有设备成功启动之后,在百度服务器的HttpServer服务的文件根目录查找并获取index.html文件,并对此服务点击启动。与此同时,在域名服务器的DNSServer服务中启动服务,确保主机域名和其IP地址能够正常匹配。在客户端1开始发送数据前,客户端1和百度服务器,域名服务器需要建立TCP连接。在做好这些准备工作之后,表示着可以开始数据的传输。在客户端1的HttpClient服务中输入百度服务器的域名,在其下方出现如图4-6所示:

                                                          

                                                                          - 

表示客户端1开始进行数据传输的初始阶段。

        在数据到达集线器之后,对集线器周围三个接口进行抓包,且数据帧同时传输到了客户端2上(在客户端2中使用虚拟局域网技术,将网络划分为不同的逻辑段,只有在同一VLAN中的设备才能收到彼此的广播消息,只需要使客户端1和客户端2不在同一VLAN中就可以减少广播范围)。在抓包之后捕获到的信息中,包含了以太网数据帧的源IP地址10.208.208.49,目的IP地址为172.16.208.41,源MAC地址54-89-98-68-02-C4。为由于集线器会在物理层对收到的数据帧广播到所有连接的端口上,所以目标MAC地址为广播地址。当数据到达数据链路层的时候,集线器仍然会广播数据。每个设备都会检查数据帧的目标MAC地址,只有与目标MAC地址匹配的设备才会继续处理数据。

        当数据的目标设备不在同一个网络中时,路由器R1会响应客户端1广播的ARP请求,将其手动配置的MAC地址发送给客户端1。数据封装成数据包通过集线器传输到路由器R1。路由器R1收到数据包后,在网络层操作,根据目标IP地址的路由表信息确定数据的下一跳路径,然后重新封装数据包并转发到下一跳。经过查询,路由器R1的下一跳为R2,当数据到达路由器R2时,路由器R2解开封装数据,查看目标地址。一旦路由器R2决定了下一跳,数据包就被发送到与所选接口相连的交换机。交换机接收到数据包后,会检查数据包的目标MAC地址(如果交换机之前没有学习到发送数据包的设备的MAC地址,它会学习该地址,并将其与相应的接口关联,形成交换表)。交换机根据学习到的信息,将数据包直接转发到与目标MAC地址相关联的接口。与此同时,经过HTTP访问,通过DNS解析(域名服务器)将百度的域名www.baidu.com解析为对应的 IP 地址172.16.208.41,MAC地址为54-89-98-24-0D-2B。最终,数据通过这些设备的协同工作,到达了百度服务器。百度服务器接收到请求后,会进行处理并返回相应的数据。

  百度服务器处理并返回数据的过程经历了多个关键步骤。首先,服务器接收来自客户端的HTTP请求,其中包含了用户的需求。接着,服务器进行请求处理,解析HTTP请求头,提取参数,并确定请求的类型和目的。随后,服务器执行相应的业务逻辑。在业务逻辑处理完成后,服务器生成包含HTML,CSS,JavaScript等内容的HTTP响应(该内容属于Web前端技术)。生成的响应随后通过TCP/IP协议分割成数据包,并通过互联网传输回客户端1。一旦客户端1接收到响应,它解析HTML、CSS等内容,并在浏览器中渲染出最终的页面,呈现给用户。整个过程通过这些步骤协同完成,实现了从用户请求到最终页面呈现的流畅交互。

5问题及讨论

1、问题1及讨论

问题:网络设备的配置环节出现了差错。

解决方法:首先检查配置文件是否出错;其次进入设备的命令行界面检查当前配置是否出现不匹配的问题;然后使用命令检查设备是否处于正常工作状态;最后使用Ping命令测试与其他设备的连通性,确保网络通畅。

2、问题2及讨论

问题:IP地址出现冲突。

解决方法:首先检测并确定出现IP地址冲突这个问题的设备;其次检查静态路由配置是否出错;然后针对冲突的设备手动修改IP地址,确保IP地址是唯一的;最后重启相关设备以确保新的IP地址配置生效。

3、问题3及讨论

问题:无法正常抓包。

解决方法:首先确保网络接口是否选择正确;其次检查电脑中是否有其他应用程序会导致冲突,关闭冲突应用;然后尝试重新启动设备再进行抓包;最后检查是否因为长时间的持续抓包可能导致文件过大或性能下降。

                                        第6章 实验体会

在这次实验中,我首先碰到的问题就是在课堂上所学到的理论知识和实践操作有一定的脱节,在这种情况下,可能会导致无法正确理解和应用网络知识,影响实验的效果。而且,在进行网络设备配置的时候,一旦配置出现了错误,就会导致数据包无法正确路由,实验也无法进行下去。

通过这次实验,我理解了计算机网络的基本概念和拓扑结构。通过深入研究OSI 模型和TCP/IP模型,我对网络协议和设备的工作原理有了更深入的理解。使用eNSP 软件搭建虚拟网络实验环境使我能够在实践中学习和掌握网络配置和故障排除的技能。除此之外,这次实验让我认识到理论与实践相结合的重要性。理论知识为我提供了指导,而实践操作则让我真正理解和掌握这些知识。同时,我在搭建虚拟网络实验环境的过程中提高了动手能力,学会了如何配置网络设备和排除网络故障。

结 论

在这次实验中,我首先学习到了关于计算机网络这门课的一些基础知识,学到了如何搭建网络的拓扑结构,为下个学期需要学习的路由与交换技术这门课打下基础。首先,通过对OSI模型和TCP/IP模型的深入了解,让我更加全面的了解了网络的协议,并且有助于我对网络的配置和故障的排除,增强了我的实际动手能力。其次,在了解并学习路由器和交换机的工作原理的同时,让我对网络的运行机制有了更加深刻的理解。除此之外,通过运用eNSP软件,我搭建了一个虚拟网络实验环境,这是一个十分实用的学习平台,有助于我在这个虚拟环境中模拟不同的网络情况,从而更好的理解网络的实际使用情况。最后,在这次实验中,我深刻的理解了动手能力的重要性,如果只学会了理论,没有进行实际操作,那么将一事无成。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐