zoukankan      html  css  js  c++  java
  • 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等数据流进行重组并完整呈现出来。

  • 相关阅读:
    maven项目自动创建src/main/resources等四个资源文件夹
    @Async异步注解与SpringBoot结合使用
    java.util.concurrent包下并发锁的特点与适用场景
    java.util.concurrent包下集合类的特点与适用场景
    springMvc接收ajax数组参数,以及jquery复选框选中、反选、全选、全不选
    MySql 的SQL执行计划查看,判断是否走索引
    windows server系统查看tomcat版本
    物化视图SQL
    element-ui的不稳定性
    ActiveMQ-5.15.2下载和启动(windows)
  • 原文地址:https://www.cnblogs.com/andy9468/p/10120805.html
Copyright © 2011-2022 走看看