计算机网络实验
验证性实验
ipconfig/all
windows系统上用于控制网络连接的命令行工具,用于显示当前网络配置。
实作一:
使用该命令查看网络配置:
进行实验时,网络环境为wifi,故应关注无线局域网适配器 WLAN
一栏
实作二:
由于仅有一台计算机,所以改为查看手机网络配置。可发现,其网关(手机上显示为路由器)地址相同,子网掩码相同,故两者处于同一子网。
ping
实作一
- TTL(Time To Live),指IP包被丢弃前允许通过的最大网段数。图中64表示可以进行64次转发。
- 时间,指延迟时间。
- 字节,指返回的数据包大小。
问题:ping同一子网的设备延迟比ping处于百里外的服务器更高?
实作二
TroubleShooting
1)假设不能ping通某与自身网络连接的某计算机,可能原因有自身计算机软硬件存在问题,或者网络出口处的交换机出现问题,若确实硬件方面没问题,那么还有可能是对方防火墙设置问题。
2)对于能够ping通IP地址,但是无法通过域名ping通对方,那么可以确定问题出现在域名方面,有可能是域名解析出现了问题,首先清空DNS缓存,而后再ping,若仍无法解决则需进一步联系域名提供商。
tracert
实作一
仅有一跳,经查阅资料,原因可能为所使用的路由器不对tracert数据包进行解析,所以中间的跳数都看不到。
通过使用手机热点进行实验,但是结果仍旧仅有一跳,此问题暂时没有解决。
更新:问题原因在于clash代理,退出程序后tracert
命令恢复正常。
实作二
问题一:tracert的原理在于发送TTL为1的回应数据包,随后将TTL递增, 从回响的数据包中确定路由节点。
问题二:第一跳是相同的原因在于当数据包发出后,会经由网关转发,所以第一跳一般都是网关,前几个节点是相同的原因可能在于其是连接到其他路由器的最近节点,所以一般不会变化。
问题三:显示*号是因为该数据包未返回,可能是因为某些路由器丢弃了数据包或者对数据包不进行应答。
ARP
实作一
执行arp -d *
后
执行ping 192,168.1.3
在ping 192.168.1.3 前,自身缓存中没有其记录,所以在执行ping命令收到响应后,主机会将其地址记录下来。
实作二
实作三
问题1:权限不足,使用PowerShell进行再次尝试
问题2:缓存网关信息因为大多数的网络活动都需要经过网关,所以会将其缓存起来,方便使用。
问题3:将arp信息设为静态可以防止arp欺骗,增加安全性,但是缺点在于难以进行维护,当地址发生改变时会发生错误。
DHCP
实作一
执行ipconfig/release
执行ipconfig/renew
DHCP工作原理
为了动态获取并使用一个合法的IP地址,需要经历以下几个阶段:
发现阶段:即 DHCP 客户端寻找 DHCP 服务器的阶段。
提供阶段:即 DHCP 服务器提供 IP 地址的阶段。
选择阶段:即 DHCP客户端选择某台 DHCP 服务器提供的 IP 地址的阶段。
确认阶段:即 DHCP 服务器确认所提供的 IP 地址的阶段。
问题一:如果没有释放成功,可以使用PowerShell进行再次尝试。
问题二:设置169.254.x.x的IP是因为windows防止主机脱网所以为网卡保留的IP。
问题三:静态分配IP可以在局域网内通过IP访问其他终端,更加方便。
netstat
实作一
实作二
DNS
实作一
实作二
实作三
cache
实作一
实作二
可明显看到加载项变多了,加载时间变长了。
Wireshark实验
数据链路层
实作一 熟悉 Ethernet 帧结构
使用 Wireshark 任意进行抓包
WireShark展现帧中没有展示校验帧的原因在于校验是在硬件中完成的,因此没有显示。
实作二 了解子网内/外通信时的 MAC 地址
ping 192.168.1.3
由于首选IPv6,所以使用icmpv6进行过滤,发出帧的目的mac:d0:f9:9b:01:cf:2f。
返回帧源mac:d0:f9:9b:01:cf:2f。此mac为我的手机mac。
2.ping qige.io
问题:访问相同子网内的终端,不需要网关转发,所以目的mac就是本机,当访问非同子网内的终端时,则需要网关转发,且接受数据也需要先通过网关。
实作三 掌握ARP解析过程
1.执行arp -d *
2.执行ping 192.168.1.4
3执行arp -d *
4执行ping qige.io
问题:在进行访问时,若时本子网的IP,则首先在ARP缓存中寻找,若没有就发送广播,所在子网中寻找;若需访问非子网内的IP,则会转发给网关。
网络层
实作一 熟悉IP包结构
版本:IPV4,头部长度:20bytes,存活时间:52
IP头部有头部长度字段和总长字段是为了方便路由器和主机处理数据包,头部长度方便找到数据部分,总长度方便确定数据包边界
实作二 IP 包的分段与重组
传输层
实作一 熟悉 TCP 和 UDP 段结构
TCP
UDP
这两者中的源端口号和目的端口号主要功能在于确定数据去向和来向的标识,仅有知道信息要给谁,是谁给的,才能建立起对话。
实作二 分析TCP建立和释放连接
随意找到一个tcp连接建立过程
第一次握手,SYN=1,ACK=0
第二次握手,SYN=1,ACK=1
第三次握手,SYN=0,ACK=1
随意找到一个TCP释放过程
第一次挥手:80>56685:FIN=1,ACK=1,Seq=1
第二次挥手:56685>80:ACK=1,Seq=1,Ack=2
第三次挥手:56685>80:FIN=1,ACK=1,
第四次挥手:80>56685:ACK=1,Seq=2,Ack=2
问题一:通过不同的端口可以同时建立多个连接,通过多个连接可以同时加载数据,可以提高数据的加载速度。
问题二:仅有三次挥手的原因是服务端将第二次和第三次合并成为了一次。
应用层
实作一 了解DNS解析
抓获数据包
DNS服务器返回结果。
若对同一个站点发出的DNS解析请求不止一个,可能原因是请求的DNS服务器可能不知道该网站的ip地址,需要向更高的DNS服务器发出请求。
实作二 了解HTTP的请求和应答
访问网站,进行抓包
GET命令
HTTP常见应答码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
使用304应答前提是浏览器之前访问过该网站,存有相关数据,让浏览器使用本地缓存可以避免网络传输,使得加载更快。
Cisco Packet Tracer 实验
直接连接两台PC构建LAN
搭建网络
设置IP,一台设为192.168.1.2,一台设为192.168.1.3
执行ping
用交换机构建LAN
构建网络
PC2ping
PC3,PC4,PC5
PC3通,PC4,PC5不通
PC5ping
PC2,PC3,PC4
PC4通,PC2,PC3不通,因为PC2,PC3和PC4,PC5处于不同的子网,仅有处于相同子网的终端才能相互通信。
将终端子网掩码都更改为255.255.0.0
而后再ping
全部皆可ping通,因为更改子网掩码后,全部终端皆属于同一子网。
使用二层交换机连接网络时,不需要设置网关,但是当划分了VLAN,并配置了相关VLAN接口时,才需要进一步进行配置网关。
集线器与交换机的区别在于,其在接受到信息时,会将信息直接转发为全部端口,而交换机会根据信息信息的目的地址进行针对性转发。
交换机接口地址列表
使用PC2ping
PC3和
再次查看MAC Table
多出了两条记录,分别是两个终端所对应的物理地址及端口。
生成树协议
构建网络
此时会发现,由于网络间有回路,会造成广播风暴,但是交换机中的STP协议能够避免广播风暴,并对多余的线路进行自动阻塞,此时就已属于达到了自动阻塞状态。
路由器初步配置
搭建网络
分配IP及网络号