计算机网络实验4
HTTP分析
HTTP GET/response交互
- 我运行的是http 1.1,服务器的http 1.1
- 接受的语言是中文,英式英语,美式英语和其他英语
- 本机地址是172.20.170.74,目的地址是219.217.226.25
- 首先回复的的状态码是200 OK,后来请求其他文件的时候返回来404 Not Found和302 Found
HTTP 条件GET/response交互
- 加入了IF-MODIFIED-SINCE
- 没有返回文本,可以分析报文得出
- 有,意思是文件最后一次在本地缓存的GMT
- 返回 304 Not Modified 没有直接返回文件
TCP分析
-
接收 IP:128.119.245.12,TCP 接受端口 80
-
源IP :172.20.178.20, TCP发送端口54393
-
SYN : 1 ,Sequence Number (raw): 162382421
报文段中的flag段中SYNSet = 1,标志着设置了SYN
-
SYNACK :0
Acknowledgment Number: 1 (relative ack number)
Acknowledgment number (raw): 162382422,该字段的值是客户端的Sequence Number + 1
flag报文里的ACK:set = 1; -
三次握手如下
-
含有post方法的报文段SEQ = 1
-
Sequence Number: 6188 (relative sequence number)
Sequence Number (raw): 162388609
在4.523037s发送,对应ack在4.806033接收 -
前六个报文长度除第一个是747外,其余的TCP段长度都是1360
-
公示的最小缓冲区是29200
-
没有重发,因为蓝色表示的seq单调递增
-
开始发送时间4.522915,结束时间5.670814 1 Ack=153069,
故吞吐量 = 15309byte/(5.670814-4.522915) = 13336 bps
IP分析
-
我主机的IP地址是172.20.10.177,目的主机IP是182.61.200.6(www.baidu.com)
-
上层协议:Protocol: ICMP (1)
-
IP头20bytes,净载是36bytes,因为总体长度是56bytes,所以净载 = 56-20 = 36
-
没有分片因为DF = 0,MF = 0,说明是最后一个,但是前面没有ICMP报文了
-
必然变化的是 生存时间(TTL)、首部校验和。每经过一跳路由器,TTL值减一;首部校验和是根据首部生成的,TTL字段变化,首部校验和随之也要变化。 可能变化的有 标志、片偏移,数据报总长度
-
目的IP必须保持不变,TTL和checksum必须改变不然会导致拥挤或者接收错误
-
identification是0,TTL是255
-
不变,因为一个路由器发过来的分片报文段的identification应该是一样的,又因为主机到该路由器只有一跳,当ICMP报文发回主机时TTL不-1而是直接取出所以TTL一直为255
-
第一片的DF = 0,MF = 1说明还有分片,该分片的长度是1480
-
分成了三片,前两片的MF = 1,最后一片是0,同时每一个的片偏移量会改变,片长度改变
ARP分析
- ARP协议报文由八个部分组成,一共28字节
其中硬件类型(Hardware type)占两个字节,协议类型(Protocol type)占两个字节,硬件地址长度和协议长度各占一个字节,OP操作占两个字节,MAC地址占六个字节,IP地址占四个字节 - 可以通过看Opcode的类型来判断是request还是reply
- ARP的功能在于将特定的IP地址转换成MAC地址,所以先决条件是已知IP地址,后求MAC地址,所以在查询的MAC帧必定包含IP地址,并以广播的形式在局域网上传播,而应答帧(如果可能产生的话)则必定包含与该IP相关的MAC地址。
抓取UDP数据包
-
是基于UDP的传输
-
Source Address: 172.20.194.243
Destination Address: 39.156.132.123 -
发送的端口号:4011
服务器的端口号:8000 -
格式如图
其中目的端口号和源端口号各占两个字节,长度字段两个字节,校验和两个字节,传输的文件是55字节
-
返回的OICQ报文是确认用的,因为UDP是无连接不可靠的,所以需要这种确认的方式来表示传输正常;可以看出UDP是无连接的,因为发送消息时并没有握手阶段而是直接发送,所以是无连接的
进行DNS分析
- 首先发出两条报文
其中A代表IPv4,AAAA代表IPv6,两次查询的过程应该是相同的 - 事务 ID(Transaction ID):DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该字段的值是相同的。通过它可以区分 DNS 应答报文是对哪个请求进行响应的。
标志(Flags):DNS 报文中的标志字段。
问题计数(Questions):DNS 查询请求的数目。
回答资源记录数(Answers RRs):DNS 响应的数目。
权威名称服务器计数(Authority RRs):权威名称服务器的数目。
附加资源记录数(Additional RRs):额外的记录数目(权威名称服务器对应 IP 地址的数目)。 - Flag里面的Response来标志是查询还是响应,其中0为查询,1为响应