工作后首次接触网络知识,从抓包工具Wireshark开始。
Wireshark是网络包分析工具。主要作用是尝试捕获网络包,并显示包的尽可能详细的情况。Wireshark是开源网络分析软件。
Wireshark在windows、Linux以及Unix上都可以使用。
Wireshark中比较重要的还有过滤器,Filter分Display Filter、Capture Filter。
Display Filter就在一打开Wireshark的页面,在所抓包的上方。如下图:
如果抓出来的包 Protocol有DNS、ARP、TCP、ICMP等,如要筛选出ICMP包,则在Filter输入框中输入:ICMP,然后Apply,则包的列表中就只显示出ICMP包。
Capture Filter是在Capture——Options中。如下图:
Capture Filter在开始抓包之前先设置需要的Protocol包,有很多包时用这个比较方便。 这边还可以点击Capture Filte按钮,查看不同的协议Capture Filte的不同的表示方法。
下面给出几个Display Filter与Capture Filter书写的区别:
Display Filte Capture Filter
ip.addr==192.168.0.1 host 192.168.0.1
!(ip.addr==192.168.0.1)
UDP.port==53 port 53
http tcp port http
IPV4 ether proto 0x0806
Wireshark可以捕捉多种网络接口类型的包。可点击Capture——Interfaces,弹出所有capture interfaces,选择其中需要捕捉的网络接口 start,则开始抓包。
对于捕获的包要进行分析。如:ping baidu.com,ping用的是ICMP协议,所以所抓的包肯定有ICMP Protocol,然后再分析该包的内容(source、destination、TTL(Time to live)、Type、Code);如果是首次ping baidu,那会进行DNS域名解析,则所抓的包肯定有DNS Protocol。这边的TTL需要掌握,每经过一个路由则减去一。
TTL 可参见 http://www.ezloo.com/2007/05/ping_ttl.html
如果抓出来的包是HTTP协议,则要注意是面向连接的,需要分析其中的3次握手(SYN、ACK)、4次挥手(Fin、Ack)。
TCP三次握手/四次挥手 可参见 http://blog.pfan.cn/xman/44384.html