一站式学习Wireshark(二):应用Wireshark观察基本网络协议





TCP:


TCP/IP通过三次握手建立一个连接。这一过程中的三种报文是:SYN,SYN/ACK,ACK。


第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始。

如果你找不到第一个SYN报文,选择Edit -> Find Packet菜单选项。选择Display Filter,输入过滤条件:tcp.flags,这时会看到一个flag列表用于选择。选择合适的flag,tcp.flags.syn并且加上==1。点击Find,之后trace中的第一个SYN报文就会高亮出来了。

注意:Find Packet也可以用于搜索十六进制字符,比如恶意软件信号,或搜索字符串,比如抓包文件中的协议命令。


一个快速过滤TCP报文流的方式是在Packet List Panel中右键报文,并且选择Follow TCP Stream。这就创建了一个只显示TCP会话报文的自动过滤条件。

这一步骤会弹出一个会话显示窗口,默认情况下包含TCP会话的ASCII代码,客户端报文用红色表示服务器报文则为蓝色。


窗口类似下图所示,对于读取协议有效载荷非常有帮助,比如HTTP,SMTP,FTP。


更改为十六进制Dump模式查看载荷的十六进制代码,如下图所示:


关闭弹出窗口,Wireshark就只显示所选TCP报文流。现在可以轻松分辨出3次握手信号。

本帖隐藏的内容

注意:这里Wireshark自动为此TCP会话创建了一个显示过滤。本例中:(ip.addr eq 192.168.1.2 and ip.addr eq 209.85.227.19) and (tcp.port eq 80 and tcp.port eq 52336)


SYN报文:

图中显示的5号报文是从客户端发送至服务器端的SYN报文,此报文用于与服务器建立同步,确保客户端和服务器端的通信按次序传输。SYN报文的头部有一个32 bit序列号。底端对话框显示了报文一些有用信息如报文类型,序列号。


SYN/ACK报文:

7号报文是服务器的响应。一旦服务器接收到客户端的SYN报文,就读取报文的序列号并且使用此编号作为响应,也就是说它告知客户机,服务器接收到了SYN报文,通过对原SYN报文序列号加一并且作为响应编号来实现,之后客户端就知道服务器能够接收通信。


ACK报文:

8号报文是客户端对服务器发送的确认报文,告诉服务器客户端接收到了SYN/ACK报文,并且与前一步一样客户端也将序列号加一,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。


ARP & ICMP:


开启Wireshark抓包。打开Windows控制台窗口,使用ping命令行工具查看与相邻机器的连接状况。


停止抓包之后,Wireshark如下图所示。

ARP和ICMP报文相对较难辨认,创建只显示ARP或ICMP的过滤条件。

ARP报文:

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。其功能是:主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。


最初从PC发出的ARP请求确定IP地址192.168.1.1的MAC地址,并从相邻系统收到ARP回复。ARP请求之后,会看到ICMP报文。


ICMP报文:

网络控制消息协定(Internet Control Message Protocol,ICMP)用于TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,令管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。


PC发送echo请求,收到echo回复如上图所示。ping报文被mark成Type 8,回复报文mark成Type 0。


如果多次ping同一系统,在PC上删除ARP cache,使用如下ARP命令之后,会产生一个新的ARP请求。

C:\> ping 192.168.1.1

... ping output ...

C:\> arp –d *


HTTP:


HTTP协议是目前使用最广泛的一种基础协议,这得益于目前很多应用都基于WEB方式,实现容易,软件开发部署也简单,无需额外的客户端,使用浏览器即可使用。这一过程开始于请求服务器传送网络文件。

从上图可见报文中包括一个GET命令,当HTTP发送初始GET命令之后,TCP继续数据传输过程,接下来的链接过程中HTTP会从服务器请求数据并使用TCP将数据传回客户端。传送数据之前,服务器通过发送HTTP OK消息告知客户端请求有效。如果服务器没有将目标发送给客户端的许可,将会返回403 Forbidden。如果服务器找不到客户端所请求的目标,会返回404。


如果没有更多数据,连接可被终止,类似于TCP三次握手信号的SYN和ACK报文,这里发送的是FIN和ACK报文。当服务器结束传送数据,就发送FIN/ACK给客户端,此报文表示结束连接。接下来客户端返回ACK报文并且对FIN/ACK中的序列号加1。这就从服务器端终止了通信。要结束这一过程客户端必须重新对服务器端发起这一过程。必须在客户端和服务器端都发起并确认FIN/ACK过程。


附录:网络协议报文结构与抓包示例


TCP/IP协议栈


以太网帧示例


IP数据报格式


IP报文示例


UDP帧结构


TCP消息结构



TCP报文示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Wireshark Lab: TCP v7.0 是一套用于学习和理解 TCP 协议的实验材料。通过这套实验材料,可以学习 TCP 建立连接的三次握手过程、数据传输过程中的流量控制和拥塞控制、TCP 连接终止的四次挥手过程等内容。同时,也可以通过实验了解 Wireshark 工具的使用方法,Wireshark 是一款流行的网络协议分析工具,可以用于捕获和分析网络数据包。 Wireshark Lab: TCP v7.0 包含一系列的实验,每个实验都配有详细的指导说明和实验要求,可以帮助用户逐步掌握 TCP 协议Wireshark 工具的使用。这套实验材料适合计算机网络和信息安全领域的学生、从业者以及对网络协议感兴趣的人士学习使用。 ### 回答2: 在Wireshark实验室TCP V7.0中,我们继续研究TCP协议。TCP(传输控制协议)是一种在计算机网络中使用的基于连接的协议,常用于互联网协议(IP)套接字。 本实验室中,我们观察了TCP流的详细数据包分析。我们学习了TCP协议中的流控制和拥塞控制机制,以及TCP如何应对网络丢包和重传数据的情况。 在该实验室中,我们使用了基于Linux的虚拟机来模拟一个TCP协议的请求响应场景。我们模拟了从客户端发送HTTP请求,到服务器返回响应的流程。我们使用了Wireshark这个强大的网络协议分析工具来捕获和解析网络数据包,以观察网络流量和分析网络传输。 在观察TCP协议的过程中,我们发现TCP是一个可靠但是较慢的协议。当网络出现问题时,它会花费很多时间来重传数据,从而保证数据完整性。我们也学习了TCP的拥塞控制机制。当网络拥塞时,TCP会自适应地调整传输速率,以避免网络出现更多的拥塞。 总之,Wireshark实验室TCP V7.0是一个非常有用的实验室,它向我们展示了TCP协议的更多细节和机制,使我们深入了解TCP如何在网络中工作。随着更多的网络应用程序在今后的发展中涌现出来,我们相信TCP协议还将继续发挥重要作用。 ### 回答3: Wireshark是一个开源的网络协议分析工具,可以用于抓取网络数据包,并对这些数据包进行分析和解码。Wireshark可以分析不同类型的协议,包括TCP、UDP、HTTP等。 本次实验主要是让我们使用Wireshark工具来分析TCP协议数据包,了解TCP如何建立连接,传输数据以及释放连接等过程。我们使用的是一个HTTP文件下载的例子来说明TCP的工作过程。 在实验中,我们通过Wireshark进行数据抓取和分析,可以看到TCP协议在传输数据时,会通过三次握手建立连接,并且在传输数据过程中进行数据校验和序列号的确认。TCP协议还具有可靠性,即数据包在传输中如果丢失或者出错,TCP会进行重传和数据校验,确保数据的完整性和正确性。同时,在TCP传输完成后,还会进行四次挥手来释放连接。 通过实验,我们进一步了解了TCP协议的工作原理以及在网络通信中的应用,这对我们深入学习应用网络技术具有相当的帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值