32-第3章 数据链路层--抓包分析数据帧格式-OSI一图了然-小结
OSI理论模型 |
|||||||
层级 |
名称 |
事物举例 |
功能 |
数据单位 |
别名 |
数据组成 |
协议举例 |
7 |
应用层 |
QQ、OA |
网络通信 |
上层数据 |
|
上层数据 |
HTTP/FTP/DNS |
6 |
表示层 |
web数据压缩、https加密 |
压缩、加密 |
上层数据 |
|
上层数据 |
|
5 |
会话层 |
端口号建立连接、释放连接 |
区分通信不混淆 |
上层数据 |
|
上层数据 |
|
4 |
传输层 |
TCP、UDP |
可靠传输、流量控制、不可靠传输 |
数据段 |
|
TCP头+上层数据 |
TCP/UDP |
3 |
网络层 |
IPv4、IPv6、路由器 |
选择最佳路径、规划IP(VLAN) |
数据包 |
IP层 |
IP头+TCP头+上层数据 |
ARP/IP/ICMP/IGMP |
2 |
数据链路层 |
交换机 |
帧的开始和结束、透明传输、检查错误 |
数据帧 |
MAC层 |
MAC头+IP头+TCP头+上层数据 +FCS校验 |
Ethernet/ATM/Frame Relay |
1 |
物理层 |
电话线、光纤、WiFi、电压、波形 |
接口标准、电器标准 |
bit流 |
|
同步8字节+bit流化的:MAC头+IP头+TCP头+上层数据 +FCS校验 |
MAC头,主要携带mac地址信息。
IP头,主要携带IP地址信息。
TCP头,主要携带端口port信息。
一图了然:
数据帧的最小长度必须有64个字节,如果没有就凑齐64个。否则就会被网络设备丢弃。
抓包软件wireshark的使用。选择要抓包的网卡:本地连接2
wireshark过滤语法
https://blog.csdn.net/wojiaopanpan/article/details/69944970
1.过滤IP,如来源IP或者目标IP等于某个IP
例子:
ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107
或者
ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP
2.过滤端口
例子:
tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.port eq 2722
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80
udp.port eq 15000
过滤端口范围
tcp.port >= 1 and tcp.port <= 80
3.过滤协议
例子:
tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
oicq
bootp
等等
排除arp包,如!arp 或者 not arp
4.过滤MAC
太以网头过滤
eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源mac
eth.dst==A0:00:00:04:C5:84
eth.dst==A0-00-00-04-C5-84
eth.addr eq A0:00:00:04:C5:84 // 过滤来源MAC和目标MAC都等于A0:00:00:04:C5:84的
less than 小于 < lt
小于等于 le
等于 eq
大于 gt
大于等于 ge
不等 ne
5.包长度过滤
例子:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后
eth —> ip or arp —> tcp or udp —> data
6.http模式过滤
例子:
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
// GET包
http.request.method == “GET” && http contains “Host: “
http.request.method == “GET” && http contains “User-Agent: “
// POST包
http.request.method == “POST” && http contains “Host: “
http.request.method == “POST” && http contains “User-Agent: “
// 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: “
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “
一定包含如下
Content-Type:
7.TCP参数过滤
tcp.flags 显示包含TCP标志的封包。
tcp.flags.syn == 0x02 显示包含TCP SYN标志的封包。
tcp.window_size == 0 && tcp.flags.reset != 1
wireshark视频教程
http://edu.51cto.com/center/course/lesson/index?id=62733
追踪数据流:将TCP、UDP、SSL等数据流进行重组并完整呈现出来。