一、 实验环境
在Windows10主机上用wireshark抓取WLAN网络上的数据包
二、 实验结果与分析
a) TCP/IP协议的安装与配置
控制面板>>网络和Internet>>网络和共享中心>>连接>>属性>>点击TCP/IP进行安装
本机通过DCPH协议随机获取IP地址,然后也自动获得DNS服务器地址。
DHCP有三种机制分配IP地址: [2]
- 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。 [2]
- 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。 [2]
- 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
DNS(Domain Name Server,域名服务器)是进行域名和与之相对应的IP地址转换的服务器。DNS中保存了一张域名和与之相对应的IP地址的表,以解析消息的域名。
b) 常用网络命令的使用
i. ipconfig
输入ipconfig
本机的IP地址查看"无线局域网适配器WLAN"部分,IP地址为172.26.212.53,其他的都是虚拟网卡的信息,当不使用网线上网时,本地连接和以太网部分会显示"媒体已断开连接"。
输入ipconfig /all(仅截取无线局域网适配器部分)
由于本机处于校园网内,所以DNS后缀为jnu.edu.cn,根据网上的资料:用户电脑名称上的DNS是用户加入有DNS服务器上的域后电脑自动加上去的,DNS后缀就是现在连接的这个网络的DNS,Intel(R) Dual Band Wireless-AC 7265是本机的无线网卡。
物理地址即MAC地址,DHCP服务器启用并采用自动配置模式。
ii. ping
-
ping 180.97.125.228
查看ip
直接向180.97.125.228发送icmp数据包。
- ping www.oschina.net
fn0wz54v.dayugslb.com是DNS解析的A记录,指向主机ip180.97.125.228(Linux主机dig命令查询)
输入nslookup www.oschina.net
由返回结果可知,ping 域名时,是从校园网的DNS服务器的缓存中获取关于www.oschina.net的域名解析回答的。
在Linux系统主机上使用dig命令跟踪整个解析过程:
可以看到www.oschina.net是 fn0wz54v.dayugslb.com的CNAME记录(别名记录)。
利用wireshark抓包ping过程:
1.向校园网的DNS服务器请求解析,查询www.oschina.net 的 A记录,及主机ip。
DNS服务器192.168.10.8的应答,返回域名fn0wz54v.dayugslb.com及其指向的IP地址(过滤器条件ip.src == 172.26.212.53 || ip.src eq 192.168.10.8):
本机对向fn0wz54v.dayugslb.com发送icmp数据包:
完整过程(过滤条件ip.src == 172.26.212.53 || ip.src eq 192.168.10.8 || ip.src == 180.97.125.228):
总结:
- fn0wz54v.dayugslb.com是通过DNS的A记录解析到IP上,而www.oschina.net是DNS解析的CNAME记录,将被解析到fn0wz54v.dayugslb.com上。
- A记录是把一个域名解析到一个IP地址,而CNAME记录是把域名解析到另外一个域名,而这个域名最终会指向一个A记录,在功能实现在上A记录与CNAME记录没有区别。
- CNAME记录在做IP地址变更时要比A记录方便。CNAME记录允许将多个名字映射到同一台计算机,当有多个域名需要指向同一服务器IP,此时可以将一个域名做A记录指向服务器IP,然后将其他的域名做别名(即:CNAME)到A记录的域名上。当服务器IP地址变更时,只需要更改A记录的那个域名到新IP上,其它做别名的域名会自动更改到新的IP地址上,而不必对每个域名做更改。
- 所以ping域名会比ping ip多一些DNS解析的过程。
- ICMP协议与ping:ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议。ICMP 报文是封装在 IP 包里面,它工作在网络层,是 IP 协议的助手。
- ICMP 包头的类型字段,大致可以分为两大类:
- 一类是用于诊断的查询消息,也就是「查询报文类型」
- 另一类是通知出错原因的错误消息,也就是「差错报文类型」
- ICMP 包头的类型字段,大致可以分为两大类:
类型0和8:回送消息
回送消息用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息,ping 命令就是利用这个消息实现的。
可以向对端主机发送回送请求的消息(ICMP Echo Request Message,类型 8),也可以接收对端主机发回来的回送应答消息(ICMP Echo Reply Message,类型 0)。
wireshark抓包分析
发送的第一个icmp包,类型为8即回送请求包,序号为49
返回应答包:类型为0,即回送应答,序号与所要应答的icmp包的一样。
第二个icmp包,类型一样是8,序号+1
应答包类型为0,序号同样+1:
iii. tracert
tracert -d 125.218.215.224
Tracert -d www.jnu.edu.cn
从左到右的5条信息分别代表了"生存时间"(每途经一个路由器结点自增1)、"三次发送的ICMP包返回时间"(共计3个,单位为毫秒ms)和"途经路由器的IP地址"(如果有主机名,还会包含主机名,加上d参数时不返回主机名)
Tracert的工作原理:
1.从源地址发出一个ICMP请求回显(ICMP Echo Request)数据包到目的地址,并将TTL设置为1;
2.到达路由器时,将TTL减1;
3.当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址:172.26.208.1;
4.当源地址收到该ICMP包时,显示这一跳路由信息;
5.重复1~5,并每次设置TTL加1;
6.直至目标地址收到探测数据包,并返回ICMP回应答复(ICMPEcho Reply);
7.当源地址收到ICMP Echo Reply包时停止tracert。
可以看到每次都默认发送3个icmp包,对应命令行显示结果的三个返回时间,ttl从1开始递增,对应命令行返回的5次跳跃。
iv. netstat
-
查看网络协议的统计结果 netstat -s
-
查看连接和侦听端口 netstat -n
可以看到本机的多个端口处于监听状态,如49674、49679等;另外本机与ip 52.139.250.253建立了连接,对该ip进行查询得到如下结果,
LISTENING:侦听来自远方的TCP端口的连接请求.
ESTABLISHED:代表一个打开的连接。
CLOSE-WAIT:等待从本地用户发来的连接中断请求
- 查看TCP 协议的连接netstat -p tcp
- route
返回结果:
- 第一块是设备上的接口列表,各种适配器的名称,包括虚拟接口
- 第二块是Ipv4路由表
- 第一列是网络目的地址。列出了路由器连接的所有的网段。
- 第二行网络掩码列提供这个网段本身的子网掩码,而不是连接到这个网段的网卡的子网掩码。这基本上能够让路由器确定目的网络的地址类。
- 第三列是网关。一旦路由器确定它要把这个数据包转发到哪一个目的网络,路由器就要查看网关列表。网关表告诉路由器这个数据包应该转发到哪一个IP地址才能达到目的网络。
- 第四列接口列告诉路由器哪一个网卡连接到了合适的目的网络。从技术上说,接口列仅告诉路由器分配给网卡的IP地址。那个网卡把路由器连接到目的网络。然而,路由器很聪明,知道这个地址绑定到哪一个物理网卡。
- 第五列是跃点数。测量本身是一种科学。该值越小的,可信度越高
- 路由表显示"在链路上",表示不需要通过路由器转发,可以直接与其通信的意思。
三、 思考题
a) TCP/IP协议中配置的"网关"的作用是什么?
网关的作用是连通两个不同网络(子网掩码和主机ip相与的结果不同,则处于不同网络,或者说处于不同网段,相与的结果称为网络标识,是一个网络的标识),现代网关多数指的是路由器IP。
b) 用ping检测网络故障点。
a. 网络不可达代码为 0
IP 地址是分为网络号和主机号的,所以当路由器中的路由器表匹配不到接收方 IP 的网络号,就通过 ICMP 协议以网络不可达(Network Unreachable)的原因告知主机。
自从不再有网络分类以后,网络不可达也渐渐不再使用了。
b. 主机不可达代码为 1
当路由表中没有该主机的信息,或者该主机没有连接到网络,那么会通过 ICMP 协议以主机不可达(Host Unreachable)的原因告知主机。
c. 协议不可达代码为 2
当主机使用 TCP 协议访问对端主机时,能找到对端的主机了,可是对端主机的防火墙已经禁止 TCP 协议访问,那么会通过 ICMP 协议以协议不可达的原因告知主机。
d. 端口不可达代码为 3
当主机访问对端主机 8080 端口时,这次能找到对端主机了,防火墙也没有限制,可是发现对端主机没有进程监听 8080 端口,那么会通过 ICMP 协议以端口不可达(Port Unreachable)的原因告知主机。
e. 需要进行分片但设置了不分片位(Fragmentation needed but no frag)代码为 4
发送端主机发送 IP 数据报时,将 IP 首部的分片禁止标志位设置为1。根据这个标志位,途中的路由器遇到超过 MTU 大小的数据包时,不会进行分片,而是直接抛弃。
c) 用ping测试网络连通性时,若返回以下结果:Destination host unreachable(目的主机不可达)。当路由表中没有该主机的信息,或者主机没有连接到网络,那么会通过icmp协议以主机不可达的原因告诉主机。
d) "Time out":往往是因为防火墙对icmp过滤了,比如ping facebook.com;再者就是目标主机不在线,或者路由器端口不允许ping.
感谢阅读!