实验一、拓扑结构探测
图 1-1 tracert公网域名探测拓扑结构 访问百度(www.baidu.com)的路径是:本机—本主机网关—未知节点—192.168.253.1(私有地址)-- 192.168.200.19(私有地址)—153.36.1.121 (共有地址)— 221.6.209.194 — 221.6.209.193 — 122.194.150.54 — 112.85.230.109 — 未知节点 — 110.242.66.162 — 221.194.45.134 — 未知节点 — 未知节点 — 未知节点 — 未知节点 — 110.242.68.4 访问网易新闻(news.163.com)的路径是:本机—本机网关 – 未知节点-- 192.168.253.1(私有地址)-- 192.168.200.19(私有地址)—153.36.1.121 (公有地址)— 221.6.209.194 — 221.6.209.193 – 未知节点 – 112.85.229.174 – 未知节点 – 219.85.50.4 访问腾讯(www.tencent.com)的路径是:本机—本机网关 – 未知节点-- 192.168.253.1(私有地址)-- 192.168.200.19(私有地址)—153.36.1.121 (公有地址)-- 221.6.208.201 – 221.6.209.197 – 112.85.230.137 – 58.241.208.158 – 221.6.232.190 –221.6.234.158 – 122.192.127.61 前面的私有地址为路由器连接的内部网络。第一个共有地址即为接入互联网的路由器,因此本机访问互联网的路径是:本机—本机网关 – 未知节点-- 192.168.253.1(私有地址)-- 192.168.200.19(私有地址)—153.36.1.121 (公有地址)
实验二、不同情形下抓包分析
http请求
图2-1-1 http物理层数据包分析 由以上结果可以看出,http物理层数据包可以看到接口id(0),数据包到达时间(2021-7-1 19:18:31.888…)、封装类型(Ehernet)、数据包长度(2614 bytes)、丢包情况(接收2614 bytes,无丢包)等信息。 图2-1-2 http数据链路层数据包分析 由以上结果可知,从此数据包可获得目的地址(本机mac地址,六字节)、源地址(47.110.174.216主机的mac地址,六个字节)、类型(六个字节)等信息 图2-1-3 http网际层数据包 由以上结果可知,网际层数据包包含了版本(ipv4,4位),首部长度(20byte,4位),区分服务(0x00,8位),总长(2600字节,32位),标识(0x40,16位),标志(4位),片偏移(0,12位),生存时间(50,8位),协议(TCP6,8位),首部检验和(0x835,32位),源地址(47.110.174.216,服务器IP,32位),目的地址(192.168.2.232,本机IP地址,32位)等信息 图2-1-4 http 运输层(TCP)报文段 由以上结果可知,TCP报文段可以获取以下信息:源端口(80),目的端口(83350),序号(1281)、确认号(670)、首部长度(20byte),控制位(ACK=1,其他均为0)、窗口大小(15387)、检验和(0x0000)、紧急指针(0)、数据部分(2560byte) http报文段 由以上结果可知,方法(GET)、URL(/www/v3/css/news.css?v=7.7)、版本(HTTP/1.1)、回车。首部行包括:Host: file.thepaper.cn ; Connection: keep-alive; User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.59 等
Email
Email物理层数据包 由以上结果可以看出,http物理层数据包可以看到接口id(0),数据包到达时间(Jul 1, 2021 21:39:44.047247000 中国标准时间)、封装类型(Ehernet)、数据包长度(117 bytes)、丢包情况(接收117 bytes,无丢包)等信息。 Email数据链路层数据包 以上结果可知,从此数据包可获得目的地址(本机mac地址,六字节)、源地址(58.251.106.181主机的mac地址,六个字节)、类型(六个字节)等信息 Email网际层数据包 由以上结果可知,网际层数据包包含了版本(ipv4,4位),首部长度(20byte,4位),区分服务(0x00,8位),总长(103字节,32位),标识(0x40,16位),标志(4位),片偏移(0,12位),生存时间(53,8位),协议(TCP6,8位),首部检验和(0x052,32位),源地址(58.251.106.181,服务器IP,32位),目的地址(192.168.2.232,本机IP地址,32位)等信息 Email运输层(TCP)数据包 由以上结果可知,TCP报文段可以获取以下信息:源端口(25),目的端口(51428),序号(1)、确认号(1)、首部长度(20byte),控制位(ACK=1,PSH=1,其他均为0)、窗口大小(113)、检验和(0x1847)、紧急指针(0)、数据部分(63byte) 图2-2-5 Email应用层(SMTP)报文段 由上结果可知,SMTP报文段包含了一些“键-值”格式的信息。这个数据包包含了:返回码(Response code: Service ready <220>),返回参数(Response parameter:newxmesmtplogicsvrszc7.qq.com XMail Esmtp QQ Mail Server.) 我发送的消息 使用base64解码 截取到的TCP流 结论:根据tcp流可以追踪到整个SMTP发送的数据,进而可以得到发送方、接受方、邮件内容等数据。由此可见,如果关闭了客户端SSL加密功能,邮件的内容将得不到充分保护,存在非常大的安全隐患
3. QQ通信
物理层 由以上结果可以看出,物理层数据包可以看到接口id(0),数据包到达时间(Jul 1, 2021 22:44:14.548083000 中国标准时间)、封装类型(Ehernet)、数据包长度(97 bytes)、丢包情况(接收97 bytes,无丢包)等信息。 数据链路层 以上结果可知,从此数据包可获得目的地址(本机mac地址,六字节)、源地址(111.161.108.184主机的mac地址,六个字节)、类型(六个字节)等信息 网际层 由以上结果可知,网际层数据包包含了版本(ipv4,4位),首部长度(20byte,4位),区分服务(0x00,8位),总长(83字节,32位),标识(0xc72c,16位),标志(4位),片偏移(0,12位),生存时间(64,8位),协议(UDP17,8位),首部检验和(0x0000,32位),源地址(192.168.2.232,服务器IP,32位),目的地址(111.161.108.184,本机IP地址,32位)等信息 运输层(UDP协议) 由上述结果可得到以下信息:采用UDP协议,源端口(4004),目的端口(8000),数据报长度(63 bytes),校验和(0xa03a),数据区长度(55bytes) 应用层 以上结果可得到一些信息:Flag(Oicq packet<0x20>)、版本(Version:0x3a1b)、Command:Receive message<23>、Sequence:5686 。可以看到数据部分中有本人账号,和一些其他信息,但是无法解码获取具体信息
4. 迅雷下载
迅雷下载使用的是UDP协议,也有用到TCP协议,前面物理层(数据包长度不一样)、数据链路层(目的地址和源地址都是mac地址,且目的地址是本主机mac地址,版本IPv4)、网际层(Protocol:UDP<17>,目标地址是本主机IP地址,源地址是122.4.120.108)数据包结构一样,但是有些值不一样,这里不再展示,只展示某一帧运输层和应用层数据包的结果 另外,百度网盘下载也是使用UDP协议,但是没有用到TCP协议 迅雷下载运输层(UDP)数据包 由以上结果可得:源端口是30889,目的端口是12345,长度1457 bytes,校验和0x8e61 应用层数据包 由以上结果可知,迅雷下载的数据包部分只包含了数据区部分,是一串数据。
5. Xftp(Linux服务器终端)上传文件抓包实验
Xftp上传文件使用的是SSH协议,运输层是TCP协议,前面物理层(数据包长度不一样)、数据链路层(目的地址和源地址都是mac地址,且目的地址是本主机mac地址,版本IPv4)、网际层(Protocol:TCP<6>,目标地址是本主机IP地址,源地址是121.4.122.112,也就是我的服务器IP)数据包结构一样,但是有些值不一样,这里不再展示,只展示某一帧运输层和应用层数据包的结果。 图2-5-1 SSH协议运输层(TCP)数据包 由以上结果可知,TCP报文段可以获取以下信息:源端口(55215),目的端口(22),序号(1)、确认号(1)、首部长度(20bytes),控制位(ACK=1,PSH=1,其他均为0)、窗口大小(513)、检验和(0xb773)、紧急指针(0)、数据部分(84bytes) 图 2-5-2 SSH协议应用层报文 由以上结果可知,SSH协议应用层报文包含以下信息:数据包长度(Packet Length :00000030,4字节)和数据区部分(Encrypted Packet:一串数据)。且SSH协议传输的数据又经过加密。
实验三、HTTP / TCP 工作过程分析
图 3-1-1 TCP连接的建立和释放(本机54653端口) 图3-1-2 TCP连接的建立和释放(本机64200端口) 图3-1-3 TCP连接的建立和释放(本机52334端口) 本机54653端口建立的连接未发送http请求,但是可以发现其整个TCP连接的过程是,三次握手和三次挥手。 本机52334端口建立的连接发送了多次http请求,整个TCP连接时三次握手,释放时三次挥手。 根据本机52334端口建立的连接可以得到如下示意图: 图3-1-4 TCP连接从建立到释放的整个过程示意图
实验四、TCP滑动窗口实现流量控制
图 4-1 第1814帧TCP数据报 图4-2 第1815帧TCP数据报 图4-3 第1816帧数据报 图4-4第1817帧数据报 我们以本主机(192.168.2.232)为接收方,另一方为发送方。由以上结果可知, 第1814帧是接收方发送的确认报文,标志位ACK=1,序号seq=787,确认号ack=8211,滑动窗口大小Win=131584; 第1815帧是发送方发送的报文(标志位ACK=1,序号,即这次发送的字节流第一个字节的序号,等于上一次发送端发送的确认号seq=8211, 确认号ack=787,窗口大小 window size=30848, TCP报文段长度1400 bytes,得出下一段报文的序号8211+1400=9611); 第1816帧是发送方发送的报文(标志位ACK=1,序号seq=9611, 确认号ack=787,窗口大小 window size=30848, TCP报文段长度1400 bytes,得出下一段报文的序号9611+1400=11011); 第1817帧是接收方发送的确认报文,标志位ACK=1,序号seq=787,确认号ack=11011,也就是下一次发送方要从第11011个字节开始发送数据。滑动窗口大小Win=131584; 可以用以下示意图表示: 图4-5 滑动窗口示意图
实验体会:
本次实验充分利用Wireshark抓包软件,对本主机的网卡进行监听,有助于理解各层内容,具体格式,包含了哪些信息。 在抓取Email报文时,可以截取到整个TCP流数据,提取出关键字,进行解码即可获得本邮件的所有信息,比如收件人,发件人,邮件内容。由此可见网络安全的重要性,假设自己的电脑网卡被他人侦听,那么别人将有可以获取到自己的隐私信息。不过好在,数据在传输之前其实是要进行SSL算法加密的。迅雷、百度网盘下载数据其实是用的UDP协议,这和我们本来设想的“TCP保证可靠传输”是不同的。在使用Xftp服务器终端软件上传文件时,可以抓到SSH协议报文,但是由于报文是经过加密的,我们无法解析。 通过侦听连续的帧,我们可以深入理解TCP建立连接时的三次握手,究竟发送了哪些数据。但是发现了一个问题,我们说TCP释放连接时四次挥手,但是我抓到的包表明:如果没有HTTP发送数据,断开连接时服务器会少发一次确认信号。如果通过HTTP协议发送数据,服务器在断开连接时会发送确认报文,但是在客户端发送FIN结束报文之前。实际获得的数据和课本上讲的其实存在一点区别。
|