利用Wireshark观察网络报文
Contents
上计算机网络课的时候的实验报告,图很多很多。。。
1.实验内容
- 捕获观察并分析以太帧结构。
- 观察并分析ARP协议的报文
- 捕捉UDP报文并验证其校验和
- 捕捉TCP报文的连接释放–四次握手(注意 TCP Segment Len、Windows size value、Checksum等)
- 捕捉除TCP、UDP之外的4种IP层以上的网络协议(例如HTTP、ICMP、SSDP、QICQ等),并尝试分析
2.实验过程及分析
2.1 捕获观察并分析以太帧结构
从图中可以看出该帧的层次结构,以及帧长、源地址、目的地址、使用协议等简略信息。
在第一项的详情信息中可以观察到帧长、接收时间、协议类型,该项对应的是物理层的信息。
在第二项的详情信息中可以观察到源端、目的地的MAC地址、协议类型,该项对应的是数据链路层的信息。
在第三项的详情信息中可以观察到硬件类型、协议类型、操作类型、目的IP、MAC地址,源IP、MAC地址。
2.2 观察并分析ARP协议的报文
在2.1中捕获的信息即为ARP协议的报文,以下分析其详情信息:
报文前6个字节表示目的地址,该处为广播地址。
之后6个字节为源地址的MAC地址
这两个字节代表使用的协议为ARP
这两个字节代表使用以太网
这两个字节代表版本号
后两个字节是硬件大小和协议大小
这两个字节代表操作为request
源MAC地址
源IP地址
目的MAC地址、IP地址
填充项
2.3 捕捉UDP报文并验证其校验和
** 校验和的计算方法:**按每16位求和得出一个32位的数;如果这个32位的数,高16位不为0,则高16位加低16位再得到一个32位的数;重复第2步直到高16位为0,将低16位取反,得到校验和
对于这个UDP报文,采用上述方法计算校验和,计算结果为7efc,可见结果正确。
2.4 捕捉TCP报文的连接释放
用ftp连接到实验室服务器,再断开连接,可以捕获到TCP协议的4次握手过程
第一次握手:
从服务器发起,未分段,Seq = 7, Ack = 15, Segment len = 0, window size = 227, flags = FIN, ACK,校验和正确。
第二次握手:
从本机发出,Seq = 7, Ack = 16 = 15 + 1, len = 0, window size = 16445, Flags = ACK,校验和错误
第三次握手:
从本机发出,Seq = 7, Ack = 16, len = 0, window size = 16445, Flags = FIN, ACK, 校验和错误
第四次握手:
服务器发回,Seq = 16, Ack = 8 = 7 + 1, len = 0, window size = 227, Flags = ACK, 校验和正确。
以上观察符合断开TCP连接时的4次握手流程。
2.5 捕捉除TCP、UDP之外的4种IP层以上的网络协议
2.5.1 HTTP
随意访问一个网页,可以捕获http协议,可以看到帧结构,从上到下分别对应物理层、数据链路层、网络层、传输层、应用层的信息。
物理层、数据链路层、传输层、网络层与之前所观察的报文类似,这里还可以看到应用层信息:
2.5.2 ICMP
用终端给www.baidu.com传送两个数据包,可以捕获icmp协议的报文,可以观察到发送和回应的过程:
帧结构:
可以在IP层观察到TTL,与在终端观察到的结果相同;在ICMP结构中可以观察到响应时间,与终端的结果比较相近。
2.5.3 DNS
捕获DNS帧,可以观察到其结构,包含了UDP协议:
在DNS层可以观察到query信息:
2.5.4 OICQ
打开QQ客户端,可以捕获到OICQ协议报文,其包含UDP协议,可以观察到OICQ层,包括了版本、命令信息、序列号、QQ号、数据:
Author xymeow
LastMod 2015-12-28