计算机网络实验

计算机网络实验报告

本计算机网络实验由验证性、Wireshark 和 Cisco Packet Tracer 实验等三个部分组成

实验一 验证性实验

Part1 ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它主要用来显示当前 TCP/IP 网络配置值并刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。 在没有参数的情况下使用, ipconfig 显示 Internet 协议版本 4 (IPv4) 以及所有适配器的 IPv6 地址、子网掩码和默认网关。

实作一

使用 ipconfig/all 查看自己的计算机网络配置
请添加图片描述
请添加图片描述

IP:192.168.0.193

Subnet Mask:255.255.255.0

Gateway:192.168.0.1

实作二

旁边的计算机网络配置
请添加图片描述
IP:192.168.1.94
Subnet Mask:255.255.255.0
Gateway:192.168.1.254

**相同之处:**子网掩码相同都是255.255.255.0

问题
你的计算机和旁边的计算机是否处于同一子网,为什么?

回答
我的计算机和旁边的计算机不处于同一子网,因为我的计算机IP地址网络号为192.168.0.x,旁边的计算机IP地址网络号为192.168.1.x,属于不同的内部地址,因此不在同一子网

Part2 ping

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

实作一

ping qige.io 测试本机到 qige.io 的连通性
请添加图片描述
TTL: Time to Live 生命周期,生存时间
时间:指往返时间

实作二

使用 ping/?
请添加图片描述
例如,使用 ping -a :
请添加图片描述
可以知道地址为 192.168.0.193 的主机名为 LAPTOP-6P5NTIHG

问题
假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?

回答

  • 可能原因:可以检查域名解析是否正确看是否过时,是否存在错误的域名解析或是未进行域名解析,导致域名无法访问
  • 验证和解决:
    1. 使用nslookup命令查看dns是否配置,未配置设置下dns,使用8.8.8.8或114.114.114.114或其他。
    2. 使用ipconfig /flushdns 刷新dns缓存。

Part3 tracert

TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

实作一

tracert www.baidu.com 访问 www.baidu.com 查看本机到百度服务器之间的路径
请添加图片描述
在我使用的宽带上,经过了18个路由节点到达百度的服务器。使用 http://ip.cn 可查看节点位置,如:
211.139.50.204 :中国 重庆 重庆市 移动
221.183.72.9 :中国 移动
39.156.67.93 :中国 北京 北京市 移动

实作二

使用浏览器访问 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 实用程序中看不到。

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

回答二
从本机访问外网ip需要经过网关还有几个固定的路由,它们是本机到通信子网的必经之路

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

回答三
返回消息是超时,这表示这个路由节点和当前我们使用的宽带是无法联通的

Part4 ARP

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

实作一

使用 arp -a 命令查看arp缓存:
请添加图片描述
使用 arp -d * 删除全部缓存:
请添加图片描述
主机与外网的联系不能缺少网关信息,且要保证组播能顺利进行,所以进行清除缓存后只剩下网关 192.168.0.1 和 IGMP V3协议的组播地址 224.0.0.22

实作二

使用 arp /? 命令
请添加图片描述

实作三

使用 arp -s 命令将网关设置为静态类型
请添加图片描述

问题一
你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?

回答一
进入管理员模式,输入netsh i i show in 先找出当前的网关idx号。
然后运行netsh -c i i add neighbors idx ip地址 物理地址

问题二
为何缓存中常常有网关的信息?我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?

回答二
缓存中是主机曾经访问过的记录,访问其他地址需要网关信息,因此缓存中会存在网关的信息。
优点:管理方便且可以有效防止局域网中的ARP欺骗。这是因为静态ARP不会被老化,也不会被动态ARP表项覆盖,可以保证网络通信的安全性。
缺点:静态ARP仍然存在病毒攻击的危险。同时如果绑定错误ARP信息,修改麻烦。

Part5 DHCP

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

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

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

实作一

使用 ipconfig 命令了解DHCP工作原理和过程
step1. 使用 ipconfig
请添加图片描述
可以得到 IP:192.168.0.178

step2. 使用 ipconfig/release
请添加图片描述
step3. 使用 ipconfig/renew
请添加图片描述
信息变化: IP:192.168.0.193

问题一
如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?

回答一
因为没有加适配器,网卡或驱动。

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

回答二
因为自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得本身计算机的正确IP地址。
意义:假如某天因 DHCP 服务器问题从而不能获得网络配置,那么我们可以查看同一子网的主机的配置信息来手动进行网络配置,从而使该计算机能够接入 Internet

问题三
经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?

回答三
因为 DHCP 维护的地址池是有限的,那么我可以不停的发出 DHCP 请求,从而导致 DHCP 地址耗尽,然后我自己再运行一个 DHCP 服务器来提供虚假的网络信息,特别是伪造的网关和 DNS 信息。手动配置没有自动请求分配地址的时间延迟网络连接更迅速;每台机器IP固定,更便于网络管理和使用。

Part6 netstat

无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

实作一

查看 C:\WINDOWS\system32\drivers\etc\services 文件计算机端口号分配信息
请添加图片描述

实作二

使用 netstat -an 命令查看计算机当前的网络连接状况
请添加图片描述

Part7 DNS

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

实作一

查看 C:\WINDOWS\system32\drivers\etc\hosts 文件计算机固定的/静态的 DNS 信息
请添加图片描述

实作二

使用 ipconfig /displaydns 命令查看DNS缓存记录
请添加图片描述
使用 ipconfig /flushdns 命令清除所有 DNS 缓存
请添加图片描述

实作三

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。
请添加图片描述

Part8 cache

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

实作一

查看网络浏览器缓存。访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面。
请添加图片描述

实作二

接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。
请添加图片描述

实验二 Wireshark实验

Part1 数据链路层

实作一 熟悉 Ethernet 帧结构

使用 Wireshark 任意进行抓包,查看Ethernet帧结构
请添加图片描述
请添加图片描述
目的MAC:zte_2f🇩🇪7b (c8:ea:f8:2f🇩🇪7b)
源MAC:zte_00:00:00 (34:4b:50:00:00:00)
类型:IPv4 (0x0800)
字段:
请添加图片描述

问题
你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

回答

  • 抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,wireshark把8字节的前序和4字节的FCS都给过滤了。
  • wireshark中所显示的报文长度是包含14字节以太类型头,但不计算尾部4字节校验FCS值。
    即wireshark报文长度大小:14(以太类型头)+20(ip头)+(实际数据)
实作二 了解子网内/外通信时的 MA
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值