文章目录
- 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模型的精简版
文章图片
如何学习网络协议,在通信协议的调试中,绕不开使用抓包工具进行分析报文;常用的抓包工具有Windows下的Wireshark工具、Linux下的tcpdump工具。
在此我们采用Window实体机加Linux虚拟机进行抓包分析ping协议,可使用同样的方法来分析其他协议;
2.Wireshark工具介绍 Wireshark的安装网上介绍很多,在此不做介绍;
Wireshark的界面比较简单,使用也比较简单,选择对应的网卡便可以进行网络报文抓取;
文章图片
2.1 Wireshark的使用 使用ping协议在实体机ping虚拟机,此为从windows下抓包的情况,选择对应的网卡即可以开启抓包,上方可以进行条件筛选,比如本次筛选目的与源ip地址。
实体机IP:192.168.153.1
Linux虚拟机IP:192.168.153.130
文章图片
选取对应的报文在wireshark中会显示对应的解析情况,可以清晰的看见,ping是基于ICMP协议进行实现。
文章图片
3.tcpdump工具介绍 tcpdump可以抓取为pcap文件,使用wireshwk打开分析,与windows下的分析类似;
tcpdump --help
tcpdump version 4.9.3
libpcap version 1.7.4
OpenSSL 1.0.2g1 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.1libpcap-1.8.1.tar.gztcpdump-4.99.1tcpdump-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
推荐阅读
- 网络|Linux网络抓包分析工具
- 网络|网络流行简笔画图片大全,互联网图标简笔画
- Git|Git入门教程(二、安装Git)
- #|Python网络编程之TCP编程
- 计算机网络|[计算机网络]套接字编程
- 云原生|【云原生|Docker系列3】Docker网络模式详解
- 政企组织为什么更需要私有化的IM即时通讯平台()
- 网络|Linux网络——DNS域名解析服务(正向解析实验)
- Linux|Linux网络 DNS域名解析服务