计算机网络实验报告(验证性实验)


实验报告

一、验证性实验

ipconfig

✍ ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all 参数)。

实作一

使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。

在这里插入图片描述

在这里插入图片描述

实作二

使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。

在这里插入图片描述

不同:IPv4 地址的最后一位不一样
物理地址;
本地连接 IPv6 地址。
相同:子网掩码、默认网关

在这里插入图片描述

✎ 问题
你的计算机和旁边的计算机是否处于同一子网,为什么?
子网掩码和网关是一样的,处于同一子网,因为我们都连着校园网

ping

✍ PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

实作一

要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。
请掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。
ping www.cqjtu.edu.cn
在这里插入图片描述
ping 172.19.1.2
在这里插入图片描述

TTL:指数据包被路由器丢弃之前所允许通过的网段数量
时间:指得到对方回应的时间

实作二

使用 ping/? 命令了解该命令的各种选项并实际使用。

在这里插入图片描述
TroubleShooting——
假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?
答:可能的原因是对方的计算机设置了防火墙,让对方把防火墙关掉即可

tracert

✍ TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。

实作一

要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。

在这里插入图片描述

实作二

ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io 的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解。
在这里插入图片描述

✎ 问题一
tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark 实验进行验证。

通过向目标发送不同IP生存时间 (TTL) 值的“Internet控制消息协议(ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。 Tracert 先发送 TTL 为 1的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

✎ 问题二
在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?

因为我们学校采用的是星型拓扑结构,前几跳都是要从我们的计算机到达学校里的交换机网关,在进入别的网关中

✎ 问题三
在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?

是因为请求没有得到那个节点的回应

ARP

✍ ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。

实作一

运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。

在这里插入图片描述

然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存
在这里插入图片描述

实作二

请使用 arp /? 命令了解该命令的各种选项。

在这里插入图片描述

实作三:

一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。

假设当前网关的 IP 地址是 192.168.0.1,MAC 地址是 5c-d9-98-f1-89-64,请使用 arp -s 192.168.0.1 5c-d9-98-f1-89-64 命令设置其为静态类型的。
在这里插入图片描述
这里出现了一些问题
如何解决呢?
运行arp-d*需要用管理员身份运行,进入windows\system32文件夹找到cmd.exe,右键“以管理员身份运行”,这样打开cmd程序就能运行arp-d命令了。但是这样还是不能运行arp-s进行静态mac绑定,大概是win7禁用了这个命令,需要用netsh命令。

DHCP

✍ DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

用于内部网或网络服务供应商自动分配 IP 地址给用户
用于内部网管理员对所有电脑作中央管理

简单的说,DHCP 可以让计算机自动获取/释放网络配置。

实作一

一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。
在这里插入图片描述

在这里插入图片描述

工作过程
在这里插入图片描述
DHCP 原理
什么是DHCP 客户端

DHCP客户端一般来说是局域网中独立的PC主机。 DHCP客户端发出的DHCP DISCOVER包是DHCP协议的开始。 延续租期、发现、释放IP地址等大多数DHCP中的行为都是由DHCP客户端主动发起。

在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
1.ip会发生冲突
2.便于区分

netstat

✍ 无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。

netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

实作一

Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。
在这里插入图片描述

实作二

使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考上面链接 4 和 5 。
在这里插入图片描述

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
netstat [选项]
-a或–all:显示所有连线中的Socket;
-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-c或–continuous:持续列出网络状态;
-C或–cache:显示路由器配置的快取信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-h或–help:在线帮助;
-i或–interfaces:显示网络界面信息表单;
-l或–listening:显示监控中的服务器的Socket;
-M或–masquerade:显示伪装的网络连线;
-n或–numeric:直接使用ip地址,而不通过域名服务器;
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定”-A unix”参数相同;
–ip或–inet:此参数的效果和指定”-A inet”参数相同。

DNS

✍ DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。

实作一

Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。
在这里插入图片描述

实作二

解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。

查看
在这里插入图片描述
清除在这里插入图片描述

实作三

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。
在这里插入图片描述

cache

✍ cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。

浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

实作一

打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。
在这里插入图片描述

实作二

接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。

在这里插入图片描述

总结

本部分共有 8 个实验,带着我验证了ipconfig,ping,tracert,ARP等命令的使用,通过本次实验,我明白了这些命令的含义与基本用法,实验不像课本知识那么晦涩难懂,这次实验使我受益颇深,我从只是看懂计算机网络的一部分变成了触碰到计算机网络的体系,感受是不一样的,对大的结构又有了更深一步的把握。希望在下一次实验中能学到更多。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验的主要目的是通过RDT(reliable data transfer,可靠数据传输)协议来实现在不可靠的网络通信中的可靠数据传输。 实验方法及实现过程如下: 1. 实验环境搭建: 使用Python编程语言作为实现RDT协议的工具,基于UDP协议模拟不可靠网络通信,采用socket库进行网络通信的实现。 2. 实验内容: 首先定义一个模拟网络模块模块,模拟网络环境下的数据传输。实现过程将生成丢失、延迟、乱序等网络环境下常见的问题,对数据传输产生干扰,验证RDT协议的可靠。 接着定义RDT协议,该协议主要由发送端和接收端两部分组成。实现过程中,为了加强数据传输的可靠,采用了校验和和序列号的方式进行处理,具体过程如下: 发送端: - 将数据分为若干个等大的数据包,每个数据包都附带一个序列号和校验和; - 发送数据包到接收端; - 等待接收端返回确认信息(ACK); - 如果在规定时间内未收到确认信息,则发送端将对数据包进行重新发送。 接收端: - 接收数据包,并对数据包的校验和进行检验,如果检验通过则进行下一步处理; - 如果数据包的序列号和上次收到的序列号相同,则确认该数据包,并发送确认信息(ACK); - 如果数据包的序列号和上次收到的序列号不同,不予确认,等待下次接收。 最后,利用测试程序,对所实现的RDT协议进行测试和验证。 3. 实验结果和分析: 通过对实验结果的分析,我们可以发现,在不可靠网络环境下,采用RDT协议进行数据传输,数据传输的可靠大大提高。本实验中,我们成功模拟了网络环境下的各种问题,并且能够对数据传输进行可靠的确认和传输,验证了RDT协议的可靠。 4. 实验总结: 本次实验通过对RDT协议的实现和验证,让我们更深入地了解了在不可靠网络环境下,通过可靠的数据确认和传输,保证数据传输的完整和可靠的重要。在今后的网络通信中,RDT协议可以为我们提供更加稳定、可靠的数据传输保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值