因为网络状态、协议相关的因素,大的packet在网络中进行传输的时候不可避免的要被进行分组切片,当到达目的地的时候再进行重组之后传给上层进行处理。其中这重组的过程是个关键,特别是在要自己进行抓包嗅探、分析的时候。
下面先给出几个参考链接,有时间了(准确的说应该是我弄懂了`(*∩_∩*)′)之后,我再来好好写写这方面的经验:
1.先看一个用Wireshark进行抓包的实际情况
2.其中的“TCP segment of a reassembled PDU”是什么意思?
wireshark里的“TCP segment of a reassembled PDU”
总而言之一句话:由TCP的MSS(Maximum Segment Size,最大报文段长度)决定一个大的报文在底层传输时需要进行分片处理。
那在收到一个报文后如何确定它是一个”TCP segment”?如果有几个报文的ACK序号都一样,并且这些报文的Sequence Number都不一样,并且后一个Sequence Number为前一个Sequence Number加上前一个报文大小再加上1的话,肯定是TCP segment了,对于没有ACK标志时,则无法判断。
3.相关说明/讨论
Packet splitting and reassembly
tcpip – Why a single(?) TCP packet gets split to multiple PDU units here? – Super User
TCP_Reassembly – The Wireshark Wiki
http://www.sans.org/reading-room/whitepapers/detection/ip-fragment-reassembly-scapy-33969
4.待续
……
《 “数据包重组相关知识” 》 有 2 条评论
Packet Analyzer
https://github.com/dripcap/dripcap
Monitors the network and applications by sniffing packets
https://github.com/elastic/beats/tree/master/packetbeat
peacketbeat修改版 ,包含 beats
https://github.com/ysrc/packetbeatit
Moloch is an open source, large scale, full packet capturing, indexing, and database system.
https://github.com/aol/moloch
Provides packet processing capabilities for Go
https://github.com/google/gopacket
用docker+elastic打造属于自己的网络探针
http://blog.nsfocus.net/docker-elastic/
`
1. 安装docker
2. 尝试运行一个CentOS docker容器
3. 安装必要的软件
4. 将运行的容器生成为镜像
5. 将镜像打包
6. 将镜像导入到另外一台需要使用此镜像的机器上
7. 使用探针进行数据分析
7.1 查看访问最多的目的IP
7.2 查看某个特定IP在时间范围内的下行流量趋势情况
7.3 DNS请求的域名分布情况
`