网络抓包工具Wireshark与tcpdump介绍

文章目录

  • 1.网络协议介绍
  • 2.Wireshark工具介绍
    • 2.1 Wireshark的使用
  • 3.tcpdump工具介绍
    • 3.1 tcpdump的使用
    • 3.2 tcpdump的源码与编译

1.网络协议介绍

在互联网的世界中,网络协议将所有的设备接入到一个网络,才有了我们的信息共享,大数据时代。
开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架
DoD模型是OSI模型(开放系统互连参考模型)两者的设计和概念相似,且对应的功能也相似。DoD模型相当于一个OSI模型的精简版
网络抓包工具Wireshark与tcpdump介绍_第1张图片

如何学习网络协议,在通信协议的调试中,绕不开使用抓包工具进行分析报文;常用的抓包工具有Windows下的Wireshark工具、Linux下的tcpdump工具。
在此我们采用Window实体机加Linux虚拟机进行抓包分析ping协议,可使用同样的方法来分析其他协议;

2.Wireshark工具介绍

Wireshark的安装网上介绍很多,在此不做介绍;
Wireshark的界面比较简单,使用也比较简单,选择对应的网卡便可以进行网络报文抓取;
网络抓包工具Wireshark与tcpdump介绍_第2张图片

2.1 Wireshark的使用

使用ping协议在实体机ping虚拟机,此为从windows下抓包的情况,选择对应的网卡即可以开启抓包,上方可以进行条件筛选,比如本次筛选目的与源ip地址。
实体机IP:192.168.153.1
Linux虚拟机IP:192.168.153.130
网络抓包工具Wireshark与tcpdump介绍_第3张图片
选取对应的报文在wireshark中会显示对应的解析情况,可以清晰的看见,ping是基于ICMP协议进行实现。
网络抓包工具Wireshark与tcpdump介绍_第4张图片

3.tcpdump工具介绍

tcpdump可以抓取为pcap文件,使用wireshwk打开分析,与windows下的分析类似;

tcpdump --help
tcpdump version 4.9.3
libpcap version 1.7.4
OpenSSL 1.0.2g  1 Mar 2016
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
                [ -Q in|out|inout ]
                [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
                [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
                [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
                [ -Z user ] [ expression ]

3.1 tcpdump的使用

tcpdump为linux下的抓包工具,linux平台很难找到合适到可视化抓包工具,tcpdump+Wireshark很好的解决了这个问题,使用tcpdump抓取pcap文件,使用Wireshark工具进行分析。
抓取指定网卡的报文至指定文件,指令如下:
tcpdump -i eth0 -w tcpdump.pcap
会生成tcpdump.pcap文件,使用wireshark进行打开,分析与windows下的抓包类似
在这里插入图片描述

3.2 tcpdump的源码与编译

一般情况下,针对嵌入式设备,因为资源紧张,可能不会内嵌tcpdump工具,因此需要我们自行编译tcpdump工具。tcpdump为开源库,下载地址https://www.tcpdump.org/,可以使用交叉编译编译指定平台。

//tcpdump目录
libpcap-1.8.1  libpcap-1.8.1.tar.gz  tcpdump-4.99.1  tcpdump-4.99.1.tar.gz

使用交叉编译链aarch64-none-linux-gnu-gcc
1.编译libpcap

cd libpcap-1.8.1
./configure --prefix=$PWD/output --host=aarch64-none-linux-gnu --with-pcap=linux
make
make install

生成文件在output目录下
2.编译tcpdump

cd tcpdump-4.99.1
./configure --host=aarch64-none-linux-gnu --with-pcap=linux
make

生成文件在本目录下tcpdump执行文件,可以在ARM64平台执行,分析方法是类似的。

//readelf -a tcpdump |less
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           AArch64
  Version:                           0x1
  Entry point address:               0x404400
  Start of program headers:          64 (bytes into file)
  Start of section headers:          6985056 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         37
  Section header string table index: 36

你可能感兴趣的:(网络)