计算机网络实验

验证性实验

ipconfig

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

tips: 直接使用ipconfig会显示简略的网络连接配置信息,加上参数(/all)可以显示详细信息。同时还有其他的参数可以通过ipconfig /?来查看使用方法。

实作一: 查看自己的网络配置

ipconfig /all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : DESKTOP-R4VFJEQ
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否
 无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Realtek 8822CE Wireless LAN 802.11ac PCI-E NIC
   物理地址. . . . . . . . . . . . . : 5C-3A-45-C2-61-CD
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::81bb:1f56:ced3:351%6(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.0.133(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2022年12月17日 10:05:17
   租约过期的时间  . . . . . . . . . : 2022年12月18日 10:05:17
   默认网关. . . . . . . . . . . . . : 192.168.0.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.0.1
   DHCPv6 IAID . . . . . . . . . . . : 73153093
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-29-DB-73-31-5C-3A-45-C2-61-CD
   DNS 服务器  . . . . . . . . . . . : 192.168.0.1
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用
  • 主机名:本机的hostname,主机名指得是网络上设备的名称,主机名即计算机名。

  • 主DNS后缀:默认是没有的,也就是本地解析,也就是说DNS后缀是用来解析主机名用的。

  • 连接特定的DNS后缀:网卡对应的DNS服务器帮助解析IP。本地的连接没有DNS服务器则空。

  • 描述:网卡的品牌型号。

  • 物理地址:以太网适配器(网卡)的物理地址。

  • DHCP已启用:DHCP是动态分配IP的协议,IP自动获取时会启用。

  • 自动配置已启用:同上。

  • 本地链接 IPv6 地址:IPv6表示法的IP地址%后面的14是网络号的个数。

  • IPv4 地址:本地在局域网内的IP地址

  • 子网掩码:化成二进制,前面是1的表示为网络号,后面为0的表示为主机号。

  • 获得租约的时间:此IP地址的开始使用时间。

  • 租约过期的时间:此IP地址的到期时间。

  • 默认网关:默认网关IP地址,意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。也就是路由器的地址。

  • DHCP服务器:DHCP服务器地址,提供DHCP服务的电脑的IP地址。

  • DHCPv6 IAID:身份关联标识符。

  • DHCPv6 客户端 DUID:DHCP 唯一标识符 。

  • TCPIP 上的 NetBIOS:当安装TCP/IP协议时,NetBIOS
    也被Windows作为默认设置载入,我们的计算机也具有了NetBIOS本身的开放性。

对于本机来说,本机在2022年12月17日 10:05:17被分配使用网络号为192.168.0.0中的IPv4地址为192.168.0.133通过默认网关192.168.0.1进行网络活动。

实作二: 比较自己与其他计算机网络配置异同

ipconfig /all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : 3b32
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否
   
以太网适配器 本地连接 3:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Reealtek PCIe GBE Family Controller #3
   物理地址. . . . . . . . . . . . . : C0-3F-D5-5E-2E-B6
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::24b9:cc8:3d77:8203%14(首选)
   IPv4 地址 . . . . . . . . . . . . : 10.1.201.79(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.128
   默认网关. . . . . . . . . . . . . : 10.1.201.1
   DHCPv6 IAID . . . . . . . . . . . : 297811925
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-27-24-00-1B-C9-3F-D5-5E-0A-0B
   
   DNS 服务器  . . . . . . . . . . . : 202.202.240.33
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

即对于学校的电脑来说,主机3b21处于网络号为10.1.201.0中IPv4地址10.1.201.79通过网关10.1.201.1进行网络活动,他是使用202.202.240.33学校的DNS服务器进行解析URL的。

是同一子网吗?

我和学校的电脑目前并不处于同一子网中,通过我们两台主机网络号的不同,可以明确看出我们并不处于同一子网下。

本机网络号:192.168.0.0
学校电脑网络号:10.1.201.0

ping

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。

tips : 同样可以使用ping /?进行使用帮助,后文不再进行阐述。

实作一: 简单ping使用

ping www.cqjtu.edu.cn

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:
来自 218.70.34.236 的回复: 字节=32 时间=59ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=54ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=54ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=58ms TTL=50

218.70.34.236 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 54ms,最长 = 59ms,平均 = 56ms
  • ping命令会自动根据DNS解析到对应的IP地址,也就是说使用URL和IP地址同等作用。

  • 默认会发送四个ICMP的数据包进行探测网络情况。

  • 其中的时间表明数据包发送往返行程的时间,综合四个包将对其进行计算。

  • TTL原本是协议原本希望使用过期时间,但是实际使用中是反馈的去到该IP已经历跳数。

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

>ping/?

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
            [-4] [-6] target_name

选项:
    -t             Ping 指定的主机,直到停止。
                   若要查看统计信息并继续操作,请键入 Ctrl+Break;
                   若要停止,请键入 Ctrl+C。
    -a             将地址解析为主机名。
    -n count       要发送的回显请求数。
    -l size        发送缓冲区大小。
    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)-i TTL         生存时间。
    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
                   对 IP 标头中的服务类型字段没有任何
                   影响)-r count       记录计数跃点的路由(仅适用于 IPv4)-s count       计数跃点的时间戳(仅适用于 IPv4)-j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)-k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)-w timeout     等待每次回复的超时时间(毫秒)-R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
                   根据 RFC 5095,已弃用此路由标头。
                   如果使用此标头,某些系统可能丢弃
                   回显请求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔离舱标识符。
    -p             Ping Hyper-V 网络虚拟化提供程序地址。
    -4             强制使用 IPv4。
    -6             强制使用 IPv6。

  • -t 持续不断ping主机,直到使用中止或统计。
ping -t www.cqjtu.edu.cn

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:
来自 218.70.34.236 的回复: 字节=32 时间=55ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=52ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=53ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=61ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=53ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=56ms TTL=50

218.70.34.236 的 Ping 统计信息:
    数据包: 已发送 = 6,已接收 = 6,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 52ms,最长 = 61ms,平均 = 55ms
Control-C
^C
  • -a 该参数需要对应的DNS支持该服务,其会将ping的ip主机名进行返回。
ping -a 218.70.34.236

正在 Ping 218.70.34.236 具有 32 字节的数据:
来自 218.70.34.236 的回复: 字节=32 时间=53ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=52ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=74ms TTL=50
来自 218.70.34.236 的回复: 字节=32 时间=55ms TTL=50

218.70.34.236 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 52ms,最长 = 74ms,平均 = 58ms

其中的 正在 Ping www.cqjtu.edu.cn 即为解析结果。

  • -n 可以设定要发送的回显请求数

  • -l 可以设定要发送的缓冲区大小

ping www.cqjtu.edu.cn -n 5 -l 64

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 64 字节的数据:
来自 218.70.34.236 的回复: 字节=64 时间=58ms TTL=50
来自 218.70.34.236 的回复: 字节=64 时间=53ms TTL=50
来自 218.70.34.236 的回复: 字节=64 时间=53ms TTL=50
来自 218.70.34.236 的回复: 字节=64 时间=54ms TTL=50
来自 218.70.34.236 的回复: 字节=64 时间=53ms TTL=50

218.70.34.236 的 Ping 统计信息:
    数据包: 已发送 = 5,已接收 = 5,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 53ms,最长 = 58ms,平均 = 54ms

可以看到,其中传输的字节变为了64,而包数也发了5个。

利用Ping命令进行网路排查

  1. 测试本机网络软件硬件工作状态,ping 127.0.0.1,若不正常返回,则问题在本机,检查本机 TCP/IP 配置即网卡状态等。
  2. 测试本子网内部工作状态,ping 本子网另一主机ip,若不正常返回,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等。
  3. 测试本子网出口工作状态,ping 本子网网关ip,若不正常返回,找网管麻烦。
    测试目的IP连通状态,ping 目的ip,若不正常返回,找目的IP负责人麻烦。

tracert

TRACERT,即路由追踪,该命令行程序可用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。

tracert /?

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
               [-R] [-S srcaddr] [-4] [-6] target_name

选项:
    -d                 不将地址解析成主机名。
    -h maximum_hops    搜索目标的最大跃点数。
    -j host-list       与主机列表一起的松散源路由(仅适用于 IPv4)-w timeout         等待每个回复的超时时间(以毫秒为单位)-R                 跟踪往返行程路径(仅适用于 IPv6)-S srcaddr         要使用的源地址(仅适用于 IPv6)-4                 强制使用 IPv4。
    -6                 强制使用 IPv6。
tracert www.cqjtu.edu.cn

通过最多 30 个跃点跟踪
到 www.cqjtu.edu.cn [218.70.34.236] 的路由:

  1     9 ms     3 ms     5 ms  192.168.0.1
  2    10 ms     8 ms     4 ms  10.242.0.1
  3    10 ms     8 ms     8 ms  10.11.23.117
  4    19 ms    17 ms    18 ms  10.11.23.81
  5     *        *        *     请求超时。
  6     *        *       17 ms  36.102.3.1
  7    17 ms    17 ms    17 ms  123.178.211.205
  8    18 ms    15 ms    16 ms  219.148.173.169
  9    34 ms    39 ms    33 ms  202.97.38.125
 10     *       48 ms    46 ms  202.97.20.102
 11     *       55 ms     *     222.176.9.186
 12    55 ms    57 ms   171 ms  222.176.89.34
 13    43 ms    44 ms    43 ms  222.177.128.234
 14    54 ms    53 ms    54 ms  218.70.34.236

跟踪完成。

参数学习

  • -d 追踪到的节点仅显示IP,不解析为主机名
  • -h 最大跃点数,即最多追踪几步
tracert -h 5 www.cqjtu.edu.cn

通过最多 5 个跃点跟踪
到 www.cqjtu.edu.cn [218.70.34.236] 的路由:

  1     5 ms     2 ms     2 ms  192.168.0.1
  2     8 ms    10 ms     9 ms  10.242.0.1
  3    48 ms     5 ms     6 ms  10.11.23.117
  4    19 ms    19 ms    15 ms  10.11.23.81
  5     *        *        *     请求超时。

跟踪完成。
  • -w -4 -6 参数与ping命令中的同等使用方法。

实作一: 追踪分析

tracert -h 64 www.baidu.com

通过最多 64 个跃点跟踪
到 www.a.shifen.com [182.61.200.7] 的路由:

  1     3 ms     5 ms     3 ms  192.168.0.1
  2     7 ms     9 ms     9 ms  10.242.0.1
  3    15 ms     8 ms     8 ms  10.11.23.125
  4    23 ms    22 ms    22 ms  10.11.23.85
  5     *        *        *     请求超时。
  6     *        *        *     请求超时。
  7    33 ms    32 ms    48 ms  103.205.137.185
  8    23 ms    22 ms    26 ms  103.205.137.42
  9    31 ms    31 ms    31 ms  182.61.255.40
 10     *       30 ms    28 ms  182.61.254.179
 11     *        *        *     请求超时。
 12     *        *        *     请求超时。
 13     *        *        *     请求超时。
 14     *        *        *     请求超时。
 15    23 ms    23 ms    23 ms  182.61.200.7

跟踪完成。

每步返回结果中,第一个数字表示第几个跃点,后面三个时间表示发送了三个ICMP包分别的往返时间,最后是本步主机名[IP],但是其中部分数据会含有号,有号的都代表访问超时,但是其中又有两种情况。

一种是所有时间全部为*号,对应的主机名[IP]显示请求超时,此时一般是对应主机并不允许ICMP回显,就跟之前无法Ping通一个道理。

另一种情况是因为确实数据返回比较缓慢,可以看到三个时间是存在不为*号的,后面的主机名[IP]也是正常现实的。

实作二:分析全球ISP到qige.io线路状态

在这里插入图片描述
据此可以分析出qige.io的ip地址,各个ISP地区、名称、丢包率、发送测试包数量、最后返回的包往返行程的估计时间、平均时间、最好时间等等。

问题一:该命令的追踪方法其实很简单,通过发送不同TTL根据返回信息进行追踪,比如首先发送TTL为1的包,这样他就会返回第一步到达的网关信息。以此类推,逐步到达需要访问的点。

问题二:前几条基本时从本机连接到互联网上必须有的操作,出网关,上ISP等等。

问题三:其中部分数据会含有号,有号的都代表访问超时,两种不同的情况可以见上文分析。

ARP

ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定 IP 地址,查找并得到其对应的 MAC地址的协议。主要用于局域网内不知道目的IP地址的MAC地址时。

实作一: arp缓存

arp -a 该命令可以查看当前的arp缓存

在这里插入图片描述

可以看到当前的arp已经对部分ip地址有缓存,包括本机的全局广播和网关等。

arp -d * //该命令可以删除所有的arp缓存
在我们使用ping命令去访问一个IP地址时,首先我们会查看缓存中是否具有该IP的MAC地址,只有知道了MAC地址我们的请求才能通过数据链路层正确发送出去,如果没有,将立即调用arp协议,发送arp包出去,在局域网内进行广播,询问谁是目的IP,然后根据回应自动存储相应地址到本地缓存。

实作二:帮助命令

在这里插入图片描述
可以看到,其中有我们刚刚使用了的arp -a查看所有ARP缓存命令,同时我们也可以对其中的静态项手动添加,而动态项则基本是自动添加上去的,经典的就是我们的网关。

DHCP

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

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

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

实作一:尝试DHCP过程

  1. 释放:ipconfig/release
    在这里插入图片描述
    IP地址,子网掩码,默认网关,都消失了。

netstat

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

实作一:端口服务

C:\Windows\System32\drivers\etc中service文件
在这里插入图片描述
其中可以看到我们熟知的一些服务对应端口,比如:

* ftp 对应tcp 21端口
* ssh 对应tcp 22端口
* http 对应tcp 80端口
* https对应tcp/udp 443端口
* ...

实作二:查看计算机当前的网络连接状况

在这里插入图片描述
“-a"选项意在显示所有连接,当不附加”-n"选项时,它显示的是本地计算机的netbios名字+端口号。而加了"-n"选项后,它显示的是本地IP地址+端口号。

DNS

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

实作一:查看本机hosts

C:\WINDOWS\system32\drivers\etc\hosts 文件查看

在这里插入图片描述

可以看到我们可以使用本地映射,来访问一些被DNS污染的网址。比如github.com

实作二:查看所有缓存并清除

ipconfig /displaydns 查看所有dns缓存
在这里插入图片描述

ipconfig /flushdns 清除所有dns缓存

发现其中,我已经写进hosts的记录还在
在这里插入图片描述

实作三:nslookup

nslookup qige.io
服务器:  UnKnown
Address:  192.168.0.1

非权威应答:
名称:    qige.io
Addresses:  2606:4700:3032::ac43:8f35
          2606:4700:3033::6815:272e
          104.21.39.46
          172.67.143.53
>nslookup qige.io 8.8.8.8
服务器:  dns.google
Address:  8.8.8.8

非权威应答:
名称:    qige.io
Addresses:  2606:4700:3033::6815:272e
          2606:4700:3032::ac43:8f35
          172.67.143.53
          104.21.39.46

我们可以通过自己修改hosts来过滤广告,基础原理其实就是在文件中添加该广告链接,并且指定一个ip地址(通常为本机地址),因为hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的ip地址,从而使该链接失效。

cache

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

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

实作一:网页cache

内存缓存和磁盘缓存,基本上这个网页的所有资源我都已经在cache缓存了。

实作二:禁用cache

禁用缓存后,从大小可以看出全部从网络请求,较慢。
在这里插入图片描述

Wireshark 实验

数据链路层

实作一: Ethernet帧结构

在这里插入图片描述
双击任意一个包,即可弹出详细信息界面,在这里选择数据链路层的Ethernet帧,下方即可展开该帧结构,包括目的MAC,源MAC、类型,下方还会高亮对应的数据字节。甚至还会根据MAC地址特点分析出设备厂家等。

实作二:子网内/外通信时MAC地址

在这里插入图片描述

实作三:掌握ARP解析过程

当我在ping 192.168.1.18的时候,会发出一个arp广播,

询问谁有192.168.1.18(目的ip),请告诉192.168.1.0(本机ip)
在这里插入图片描述
目的mac都是f,即广播
在这里插入图片描述

网络层

实作一:IP包结构

在这里插入图片描述

实作二:ip包的分段与重组

tips:利用ping命令的-l指令即可改变要发送的数据长度

ping 202.202.240.16 -l 2000

正在 Ping 202.202.240.16 具有 2000 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

202.202.240.16 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失)

在这里插入图片描述

实作三:考察TTL时间

使用tracert www.baidu.com进行追踪,可以看到每次发送的ttl都是逐一增加的,每个都发三次,刚好与其结果对应。
在这里插入图片描述

tracert www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [182.61.200.7] 的路由:

  1     5 ms     6 ms    33 ms  192.168.0.1
  2     7 ms    10 ms     9 ms  10.242.0.1
  3     8 ms     8 ms     8 ms  10.11.23.125
  4    27 ms    41 ms    23 ms  10.11.23.85
  5     *        *        *     请求超时。
  6     *        *        *     请求超时。
  7    36 ms    30 ms    30 ms  103.205.137.185
  8    22 ms    27 ms    26 ms  103.205.137.42
  9    30 ms    30 ms    30 ms  182.61.255.40
 10     *       32 ms    28 ms  182.61.254.179
 11     *        *        *     请求超时。
 12     *        *        *     请求超时。
 13     *        *        *     请求超时。
 14     *        *        *     请求超时。
 15    29 ms    24 ms    24 ms  182.61.200.7

跟踪完成。

传输层

实作一:熟悉TCP与UPD段结构

  1. 熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
    在这里插入图片描述
  2. 熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
    在这里插入图片描述

实作二:分析TCP建立与释放连接

  1. 打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。
    在这里插入图片描述

第一次握手,SYN为1,ACK为0

在这里插入图片描述

第二次握手,SYN为1,ACK为1

在这里插入图片描述

第三次握手,SYN为0,ACK为1

在这里插入图片描述
SYN 同步序列号,用来发起一个TCP连接

  1. 四次挥手释放连接的包
    在这里插入图片描述

第一次挥手,FIN为1,ACK为1

在这里插入图片描述

第二次挥手,ACK为1

在这里插入图片描述

第三次握手,FIN为1,ACK为1

在这里插入图片描述

第四次握手,ACK

在这里插入图片描述
TCP断开连接是通过发送FIN报文,来告诉对方数据已经发送完毕,可以释放连接了。

应用层

实作一:DNS解析

  1. 先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

>nslookup qige.io
服务器:  UnKnown
Address:  192.168.0.1

非权威应答:
名称:    qige.io
Addresses:  2606:4700:3032::ac43:8f35
          2606:4700:3033::6815:272e
          104.21.39.46
          172.67.143.53
  • 当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,
    在这里插入图片描述
  • DNS 服务器的 53 号端口返回了结果。
    在这里插入图片描述

QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文
opcode:定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
AA:授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
TC:截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
RD:递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
RA:允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询
zero,这3位未用,必须设置为0
rcode:4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)

实作二:HTTP请求和应答

  1. 打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。

选择qige.io使用的是https,使用http过滤已经无法抓取信息,换了个url进行抓取。
在这里插入图片描述
其中获取资源,大部分用的get

  1. HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
    在这里插入图片描述
  2. 请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。
    在这里插入图片描述
    其中还有更多的应答代码:

1开头 基本是消息响应
2开头 基本是成功响应,200——OK
3开头 基本是重定向,即文件换位置了,比如304——Not Modified没有修改,在缓存中有
4开头 基本就是客户端错误了,比如404——Not Found,403——Forbidden
5开头 基本是服务段错误了,比如502——Bad Gateway

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值