本文档详细记录并分析了使用Wireshark工具进行网络抓包的过程,重点解析了TCP协议中的三次握手和四次挥手过程,适合于深入理解网络通信原理。
TCPIP 协议族主要由 TCP 和 IP 构成,并负责管理计算机间的通信。它分为四个层次:链路层、网络层、运输层以及应用层。
链路层处理与传输媒介的物理接口细节,也被称为数据链路或网络接口层;而网络层则负责在分组在网络中的活动,包括选路等操作。该层级包含了 IP 协议、ICMP 和 IGMP 等协议。
运输层为两台主机上的应用程序提供端到端通信服务,在 TCPIP 中有两个传输协议:TCP 与 UDP。其中 TCP 提供高可靠性的数据通讯保障,并处理分组的分割和重组,确认接收及超时控制等任务;而 UDP 则仅负责把数据报从一台主机发送至另一台主机而不保证其到达性。
应用层则关注特定应用程序细节,如 Telnet、FTP、SMTP 和 SNMP 等协议的应用场景。Wireshark 抓包展示出的层次包括物理帧概况(Frame)、以太网头部信息(Ethernet II)、IP 包头信息(Internet Protocol Version 4)、TCP 数据段头部信息以及应用层数据(例如 HTTP)。
在 TCP 协议中,它将用户的数据封装成报文并发送出去。当收到另一端的确认后,对失序或重复的数据进行处理,并启动一个定时器以确保数据传输可靠性。TCP 的重要特性包括面向连接、点到点通信、提供可靠服务等。
每个 TCP 报文首部包含源和目的端口号(16位)、序列号与确认字段(32位),以及用于控制报文段行为的比特标志,如紧急指针(Urgent)、确认(ACK)、推送(Push)、复位(RST),同步(SYN), 终止(FIN)等。此外还包括窗口大小和检验和计算。
通过 Wireshark 可以观察到 TCP 三次握手过程:首先客户端发送一个带有 SYN 标志的报文,服务端回应包含 ACK 和 SYN 的确认信息,最后由客户端再次响应 ACK 来完成连接建立;而四次挥手则涉及双方分别发出 FIN 请求并相互进行确认(ACK),以此来断开连接。