【计算机网络】实验二
一、利用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 权威服务器名。