云昴

【计算机网络】实验二

| 【专业·学习】计算机网络

一、利用ethereal分别对TCP套接字的实现及UDP套接字的实现捕包分析

(一)TCP抓包分析

图是客户端向服务器发送”666”字符串。

①客户端先是发送SKN(同步序列编号)这是TCP链接的第一个包,也就是第一次握手,并进入SYN_SENT状态,等待服务器确认;

②服务器收到客户端的SYN包,发送一个ACK,同时发送自己的SYN,此时服务器进入SYN_RCVD状态;

③客户端接收到服务器发送的SYN+ACK后,进入ESTABLISHED状态,并发送服务器SYN包的确认ACK,服务器接收到客户端ACK后,进入ESTABLISHED状态。

④当客户端和服务器都进入ESTABLISHED状态后,客户端和服务器之间就可以开始双向传递数据了。

图是服务器向客户端发送”666”字符串。

⑤很奇怪没有捕捉到四次挥手

(原因在于程序没有在服务端写 connectionSocket.close();)

⑥很惊喜,出现了四次挥手(挥手之前结果和前面一样)

第一次挥手:主动关闭方发送一个FIN并进入FIN_WAIT1状态

第二次挥手:被动关闭方接收到主动关闭方发送的FIN并发送ACK,此时被动关闭方进入CLOSE_WAIT状态;主动关闭方收到被动关闭方的ACK后,进入FIN_WAIT2状态

第三次挥手:被动关闭方发送一个FIN并进入LAST_ACK状态

第四次挥手:主动关闭方收到被动关闭方发送的FIN并发送ACK,此时主动关闭方进入TIME_WAIT状态,经过2MSL时间后关闭连接;被动关闭方收到主动关闭方的ACK后,关闭连接。

(二)UDP抓包分析

二、利用ethereal分析协议HTTP、FTP和DNS

(1)你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少?

HTTP1.1、HTTP1.1

(2)你的浏览器向服务器指出它能接收何种语言版本的对象?

zh-CN,zh;q=0.9,en-GB;q=0.8,en;q=0.7

(3)你的计算机的IP地址是多少?服务器gaia.cs.umass.edu的IP地址是多少?

10.241.129.100

128.119.245.12

(4)从服务器向你的浏览器返回的状态代码是多少?

200 OK

(5)你从服务器上所获取的HTML文件的最后修改时间是多少?

Mon, 22 Oct 2018 16:14:04 GMT

(6)返回到你的浏览器的内容以供多少字节?

126

(7)分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求报文中,是否有一行是:IF-MODIFIED-SINCE?没有

(8)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?是,如图

(9)分析你的浏览器向服务器发出的第二个”HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么?有,记录页面最后修改时间。

(10)服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。

304 Not Modified是一个HTTP状态代码,当特定文件的缓存副本与服务器保持同步时,该代码将返回给客户端。当诸如浏览器之类的客户端在缓存中存储某些内容时,它还会保留从服务器发送的Last-Modified标头。

(11)你的浏览器一共发出了多少个HTTP GET请求?

(这是校网的锅,TCP Previous segment not captured)

1个

(12)承载这一个HTTP响应报文一共需要多少个data-containing TCP报文段?4个

(13)与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么?

200 OK

(14)你的浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?

3个,128.119.245.12

(15)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。

并行,因为这样以来可以不用每次下载都要建立tcp连接,可以缩短下载的时间

(16)对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)?

401 Unauthorized

(17)当浏览器发出第二个HTTP GET请求时,在HTTP GET报文中包含了哪些新的字段?

Authorization

(18)定位到DNS查询报文和查询响应报文,这两种报文的发送是基于UDP还是基于TCP的?

UDP

(19)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?50998;53

(20)DNS查询报文发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)决定你主机的本地DNS服务器的IP地址。这两个地指相同吗?

208.67.222.222 相同

(21)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含”answers”吗?没有

(22)检查DNS查询响应报文,其中提供了多少个”answers”?每个answers包含哪些内容?

CNAME代表Canonical Name。CNAME记录可用于将一个名称别名为另一个名称。

(23)考虑一下你的主机发送的subsequent(并发)TCP SYN分组, SYN分组的目的IP地址是否与在DNS查询响应报文中提供的某个IP地址相对应?对应 104.20.1.85

(24)打开的WEB页中包含图片,在获取每一个图片之前,你的主机发出新的DNS查询了吗?没有

(25)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?

(26)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?

(27)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含”answers”吗?

(28)检查DNS查询响应报文,其中提供了多少个”answers”?每个answers包含哪些内容?

(29)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?

(30)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含”answers”吗?

(31)检查DNS查询响应报文,其中响应报文提供了哪些MIT名称服务器?响应报文提供这些MIT名称服务器的IP地址了吗?

没有提供这些MIT名称服务器的IP地址。

改为:nslookup www.aiit.or.kr google-public-dns-a.google.com

(32)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?如果不是,这个IP地址相当于什么?

不是,IP相当于指定的DNS服务器

(33)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含”answers”吗?

A,不包含

(34)检查DNS查询响应报文,其中提供了多少个”answers”?每个answers包含哪些内容?

第一个www.aiit.or.kr ip,第二个:www.aiit.or.kr 权威服务器名。

云昴