TCP/IP协议配置与网络实用命令

一、 实验环境

在Windows10主机上用wireshark抓取WLAN网络上的数据包

二、 实验结果与分析

a) TCP/IP协议的安装与配置

控制面板>>网络和Internet>>网络和共享中心>>连接>>属性>>点击TCP/IP进行安装

本机通过DCPH协议随机获取IP地址,然后也自动获得DNS服务器地址。

DHCP有三种机制分配IP地址: [2]

  1. 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。 [2]
  2. 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。 [2]
  3. 手工分配方式(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

  1. ping 180.97.125.228
    查看ip

直接向180.97.125.228发送icmp数据包。

  1. 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 包头的类型字段,大致可以分为两大类:
      • 一类是用于诊断的查询消息,也就是「查询报文类型」
      • 另一类是通知出错原因的错误消息,也就是「差错报文类型」

类型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

  1. 查看网络协议的统计结果 netstat -s

  2. 查看连接和侦听端口 netstat -n

可以看到本机的多个端口处于监听状态,如49674、49679等;另外本机与ip 52.139.250.253建立了连接,对该ip进行查询得到如下结果,

LISTENING:侦听来自远方的TCP端口的连接请求.

ESTABLISHED:代表一个打开的连接。

CLOSE-WAIT:等待从本地用户发来的连接中断请求

  1. 查看TCP 协议的连接netstat -p tcp
  1. 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.

感谢阅读!

相关推荐
BingoGo19 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack20 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑