WireShark抓取数据后(TCP、数据链路层、IP层)UDP层分析

本文详细介绍了如何使用WireShark抓取并分析网络数据包,包括TCP三次握手、四次挥手的过程解析,以及UDP层的数据分析。通过具体实例,深入理解数据链路层、IP层和传输层的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据的获取与分析利用————WireShark抓取数据后(TCP、数据链路层、IP层)UDP层分析

WinShark抓取数据后(TCP、数据链路层、IP层)UDP层分析

1、安装WireShark
2、访问网站主页,并使用工具获取数据包。
在这里插入图片描述

图1. 图中256 及·260为:TCP第一次握手的PDU和HTTP协议向网站请求时的PDU

访问网站放时产生的HTTP协议数据报;
在这里插入图片描述
找到上述HTTP访问过程中的TCP连接过程(三次握手)
在这里插入图片描述
图2 第一次握手时的数据包(图中256-259处可以看到“三次握手”过程)

 客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接

在这里插入图片描述
图3 第二次握手时的数据包

服务器发回确认包, 标志位为 SYN,ACK. 将确认序号设置为客户的I S N加1以.即1

在这里插入图片描述
图4 第三次握手时的数据包

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1,

关闭连接 (四次挥手)
在这里插入图片描述
图5 四次挥手

TCP UDP分析在这里插入图片描述

图6 TCP报文描述

Transmission Control Protocol, Src Port: 80, Dst Port: 56130, Seq: 1, Ack: 524, Len: 0 Source Port: 80 Destination Port: 56130
[Stream index: 40]
数据序号:40

[TCP Segment Len: 0]
#TCP段长度

Sequence number: 1 (relative sequence number)
Sequence number (raw): 3344445676
#报文段中的的第一个数据字节在数据流中的序号;

[Next sequence number: 1 (relative sequence number)]
#下一个数据字节序号

Acknowledgment number: 524 (relative ack number)
Acknowledgment number (raw): 1987028714
#确认序列号包含发送确认的一端所期望收到的下一个序号

0101 … = Header Length: 20 bytes (5)
#头部长度:4位,20字节

Flags: 0x010 (ACK)
#ACK-确认序号有效

Window size value: 123
#TCP窗口尺寸

[Calculated window size: 15744]
[Window size scaling factor: 128]
#校验和:源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性

Checksum: 0x483b [unverified]
[Checksum Status: Unverified]
#检验和

数据链路层UDP
在这里插入图片描述
Frame 601: 54 bytes on wire (432 bits), 54 bytes captured (432 bits) on interface \Device\NPF_{CFDEE561-1FC4-4504-81E7-D68B7D8698B6}, id 0
#601号帧,线路432字节,实际捕获432字节 接口id

Interface id: 0 (\Device\NPF_{CFDEE561-1FC4-4504-81E7-D68B7D8698B6})
#接口id
Interface name: \Device\NPF_{CFDEE561-1FC4-4504-81E7-D68B7D8698B6}
Interface description: WLAN
#接口名 、接口描述
Encapsulation type: Ethernet (1)
#封装类型
Arrival Time: Nov 29, 2019 11:15:52.603491000中国标准时间
#捕获日期和时间

[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1574997352.603491000 seconds
[Time delta from previous captured frame: 0.025257000 seconds]
[Time delta from previous displayed frame: 0.032047000 seconds]
#此包与前一包的时间间隔

[Time since reference or first frame: 7.447963000 seconds]
#此包与第一帧的时间间隔

Frame Number: 601 #帧序号

Frame Length: 54 bytes (432 bits) #帧长度

Capture Length: 554 bytes (432 bits) #捕获长度

[Frame is marked: False] #此帧是否做了标记:否

[Frame is ignored: False] #此帧是否被忽略:否

[Protocols in frame: eth:ehertype:ip:tcp] #帧内封装的协议层次结构

[Coloring Rule Name: HTTP] #着色标记的协议名称

[Coloring Rule String: http || tcp.port == 80|| http2] #着色规则显示的字符串

IP层UDP

在这里插入图片描述

Internet Protocol Version 4, Src: 111.7.68.182, Dst: 192.168.1.135
#IPV4 源地址IP 目标地址IP
0100 … = Version: 4
#IPV版本
… 0101 = Header Length: 20 bytes (5)
#IP数据报 头部长度20字节=5*4
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
。 # DS:区分服务 代码点
Total Length: 40
#总长度 40
Identification: 0x1515 (5397)
#标识 16位
Flags: 0x4000, Don’t fragment
…0 0000 0000 0000 = Fragment offset: 0
Time to live: 50
#生存期TTL
Protocol: TCP (6)
#协议
Header checksum: 0xbdce [validation disabled]
[Header checksum status: Unverified]
#头部校验和
Source: 111.7.68.182
Destination: 192.168.1.135
.# 源地址 目标地址

### 计算机网络实验:捕获分析MAC帧、IP数据报TCP/UDP段以及应用PDU #### 工具准备 为了完成这些实验,通常使用的工具有Wireshark、Windump或Sniffer等抓包工具。安装了TCP/IP协议的Windows系统可以作为实验平台,在此环境中进行各种网络协议数据包捕捉与分析。 #### MAC帧的捕获分析 在以太网中,MAC帧用于在同一物理网络内的设备间传递信息。使用Wireshark启动捕获后,可以通过设置过滤条件来专门查看MAC帧的内容。观察到的字段包括源地址(Source Address)、目的地址(Destination Address),长度(Length)/类型(Type),以及数据载荷(Data Payload)[^1]。 ```bash # Wireshark命令行模式下只显示Ethernet II类型的帧 tshark -Y "eth.type == 0x800" ``` #### IP数据报捕获分析 当涉及到更高次的信息交换时,则需关注IPv4或IPv6版本下的IP数据报。同样地,在Wireshark界面内输入相应的显示过滤器表达式即可筛选出特定类型的流量。重点在于理解头部选项如TTL(Time To Live), Protocol, Source IP address Destination IP address所代表的意义[^2]。 ```bash # 过滤并仅展示IPv4数据包 tshark -Y "ip" ``` #### TCP/UDP段的捕获分析 针对传输的服务质量保障,TCP提供了面向连接且可靠的字节流服务;而UDP则提供无连接不可靠的消息传送功能。两者都封装于IP之上,并各自携带额外的控制信息。例如,TCP首部含有序列号(Seq No.)、确认应答(Acknowledgment Number)等关键属性支持其可靠性机制;相比之下,UDP更为简洁,主要由端口号(Port Numbers)构成基本特征[^4]。 ```python import dpkt def analyze_tcp_udp(pcap_file): with open(pcpa_file,'rb') as f: pcap = dpkt.pcap.Reader(f) for ts,buf in pcap: eth=dpkt.ethernet.Ethernet(buf) ip=getattr(eth,'data',None) tcp_or_udp=getattr(ip,'data',None) if isinstance(tcp_or_udp,(dpkt.tcp.TCP)): print('TCP Segment:') print(f'Source Port:{tcp_or_udp.sport}') print(f'Dest Port:{tcp_or_udp.dport}') elif isinstance(tcp_or_udp,(dpkt.udp.UDP)): print('UDP Datagram:') print(f'Source Port:{tcp_or_udp.sport}') print(f'Dest Port:{tcp_or_udp.dport}') analyze_tcp_udp('example.pcap') ``` #### 应用PDU的捕获分析 最后到达的是应用程序产生的有效负载——即所谓的Protocol Data Unit (PDU)。根据不同应用场景,可能涉及HTTP请求响应消息体、DNS查询回复记录或是SMTP邮件内容等形式多样的具体实例。借助Wireshark内置解码能力或其他辅助插件能够帮助解析复杂的应用级交互细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值