wireshark&&tcpdump的相关知识

这个内容的初衷是有一次电话面试,别人问我ping的相关知识。

我: “tcp/ip协议簇,smtp协议,ping的网络攻击(官方叫做泛洪攻击)”,

错误点在于 ping是基于icmp的。

同时,tracert或者 linux下的traceroute也是基于icmp的

于是我下决心针对计算机网络的相关知识查缺补漏



实验环境是一个vmware(网络适配器NAT模式 192.168.154.133)与真机(192.168.154.1),
vmware开了一个http的web服务 ,在真机上 curl / ping这两个操作
1.物理层对应的 wireshark的内容是 Frame   能看到 74bytes on wire(592bits) 这样的内容,
	可见,它是 直接封装 0/1 这样的 bit的
2.数据链路层  Ethernet II   其中还包括以太网头部信息
	封装 src/dst   分别是 Source 、Destination,
	点开后分别都是 Address  LG bit  IG bit 这样的内容
	LG->Global unique address  IG->Individual address 
3. 接下来的协议有 ARP/IPV4/IPV6 这三个协议(在第三层),arp就只有三层
	其中 arp (address resolution protocol) 的 长度是 42,
	第二层Ethernet II 层的destination是Broadcast,也即 ff:ff:ff:ff:ff:ff 
	info是 Who has 192.168.154.2?  Tell 192.168.154.1
4.第四层有 TCP  UDP IGMP(Internet Group Management Protocol) 
	和 ICMPv6(Internet Control Message v6) ICMP(没有出现v6) 
	TCP -> Transmission Control Protocol  UDP -> User Datagram Protocol
	其中 IGMP/ICMP/ICMPv6 仅仅只有这四层
5.第五层 ,协议太多啦,
	有从没见过的基于UDP的 Dynamic Host Configuration Protocol (DHCP)
	(DHCP) 还分为ASK 和 Request 也是仅有5层
	也有NetBIOS Datagram Service   和  Multicast Domain Name System (query)  
	Simple Service Discovery Protocol  这几个仅有5层
	还有最常见的 HTTP的get请求(仅有5层)
	Hypertext Transfer Protocol http的响应的第五层是[2 Reassembled TCP segments] 
	这是重新汇编TCP段的意思吗?
	然后是Hypertext Transfer Protocol ,
	最后是 Line-based text data:text/html 的html内容

http请求的过程(原来web开发经常面试问到的),
wireshark需要点击头部左边的No.栏或Time栏进行排序,
排序之后可以根据时间推断出整个请求响应的过程(某段时间前后均为arp协议)
其中包括(.1代表192.168.154.1) .133代表vmware的ip地址:
 (1) .1 - .133  SYN               source port: 49716  destination port:8000   
 (2) .133 - .1  SYN ACK           src port: 8000  dst port:49716
 (3)  .1 - .133 ACK
 (4)  .1 - .133 HTTP   GET /index.html HTTP/1.1
 (5)  .133 - .1 ACK
 (6)  .133 - .1 PSH ACK 
 (7)  .133 - .1 HTTP  HTTP/1.0 200 OK (text/html)
 (8)   .1  - .133 ACK
 (9)   .1  - .133 FIN ACK
 (10)  .133 - .1 ACK
 三次握手后发送请求接收响应 然后是4次挥手,而实际情况是 “还多发了一次请求"



实验保存的文件在:


txt版本


pcapng wireshark 默认版本


能用tcpdump打开的pcap版本