访问了一次百度网页,你都经历了什么?https及tcp协议揭秘

打开https://www.baidu.com/ 网页一个简单的动作,都经历了什么?你想探究内部的原理吗?那我们一起去探索吧

1.准备工作

安装好wireshark。Wireshark(前称Ethereal)是一个网络报文分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

2.抓取报文

打开wireshark,并开启监听模式,打开浏览器,输入https://www.baidu.com/ ,等待返回后,关闭浏览器,最后停止wireshark监听,并保存文件。

3.分析报文

3.1 查看百度的地址,cmd命令行nslookup

C:\Users\dell>nslookup www.baidu.com
服务器:  ns-pd.online.sh.cn
Address:  202.96.209.133

非权威应答:
名称:    www.a.shifen.com
Addresses:  115.239.210.27
          115.239.211.112
Aliases:  www.baidu.com

从上面可以知道,先访问的是DNS服务器,上篇文章你所忽略的DNS---DNS实战及深度解读已经详细描述了dns协议的交互过程。本节我们重点查看和百度网站的交互。

3.2 分析报文

从上面可以知道百度有两个IP地址,

115.239.210.27
115.239.211.112

从wireshark抓取的情况看,给我提供服务的是第一个ip地址

115.239.210.27

那么,我就可以根据ip地址在wireshark上进行分析了

(ip.src==172.16.86.71 and ip.dst_host==115.239.210.27) or (ip.src==115.239.210.27 and ip.dst_host==172.16.86.71)

如下图所示:

4624570-fdfc0ed87137649b.png
img

3.3 分析过程

通过上面的报文我们可以看到本地机器(172.16.86.71)与百度先进行了tcp协议的交互,然后TLSv 1.2,然后tcp和TLSv 1.2交互。

3.3.1 tcp的三次握手

4624570-f2ecad9e7c8fba24.png
img

第一次握手报文,从客户端到服务器端

4624570-3f06ac1b5e6cd752.png
img

第二次握手,从服务器端到客户端

4624570-ca94b935153c55b2.png
img

第三次握手,从客户端到服务器端

4624570-07cbd73de9514580.png
img

总结,从上面的分析,可以看出

序号123,124,125是一个握手过程

序号122,126,127是一个握手过程。

3.3.2 https

  • TLS概述:TLS和他的前身SSL,都是提供在计算机网络上安全通信的密码学协议,最常见就是用于HTTPS中,用来保护Web通信的。

  • 发展史:网景公司开发了原始的SSL协议,SSL 1.0因为本身存在着严重的安全问题,所以从未被公开发布。只有SSL 2.0和SSL 3.0是被公开发布和使用的。后来为了对SSL进行标准化,推出了TLS,TLS 1.0就对应着SSL 3.0。TLS后来又有了1.1版本和1.2版本,1.3版本目前还在草案中。现在除了TLS 1.2和TLS 1.3草案之外,所有早期的协议都存在安全性问题,不建议使用。

https交互流程,如下图所示

4624570-10cf5cc28f808341.png
img

第一阶段

1.client hello

4624570-08f3cec5a4b53b33.png
img

tcp响应

4624570-1dde9d55976a3869.png
img

2.服务端

4624570-b1d8c36ed9fa68ba.png
img

3.Change Cipher Spec

4624570-c879c17251293fde.png
img

客户端tcp响应

4624570-bdba0b16357bc155.png
img

4.Encrypted Handshake Message

4624570-5f856880415d05eb.png
img

客户端发送请求

4624570-cdada303988d71ea.png
img

5.传送数据

4624570-9035eb878c622be5.png
img

6.关闭浏览器退出传送数据

4624570-3d746449a7d1edac.png
img

3.3.3 4次挥手

4624570-fff85fca563a519d.png
img

1.第一次挥手

4624570-dad56cf76ff4269c.png
img

2.第二次挥手

4624570-1e38e693fd93681b.png
img

\3. 第三次挥手

4624570-84667508751a86d3.png
img

4.第四次挥手

4624570-74fae07102f3cd25.png
img

总结:第三次挥手和第四次挥手之间seq和ack倒置了。

参考资料

【1】https://segmentfault.com/a/1190000014740303?utm_source=tag-newest

【2】https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650123669&idx=1&sn=55743603e490373474be439cb35430ae&chksm=f36bb0b4c41c39a2cfb36d4e362b932a7dcee682a26b78570050ee5860a14be5e021155a7bfe&scene=27#wechat_redirect

【3】https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247486411&idx=2&sn=18f4245ae36c37ccd8d261114f4a453b&chksm=fa49747acd3efd6cddee211efa6cb695a69776cc780aa41d64096958859307b9e5850edbf574&scene=27#wechat_redirect

访问了一次百度网页,你都经历了什么?https及tcp协议揭秘

4624570-7ad1442474a63a1f.gif
好书推荐、视频分享,与您一起进步
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络协议是在计算机网络中识别、规范和处理通信数据的一种约定。在计算机网络的发展历程中,网络协议也发生了不断的变化和完善。从tcp协议到rpc协议经历了以下几个阶段: 1、TCP/IP协议:是一种计算机网络通信协议,被广泛用于因特网及局域网中。TCP/IP协议是一种分层协议,包括物理层、数据链路层、网络层、传输层和应用层五个层次。 2、UDP协议:是不可靠的数据报协议,与TCP协议不同,它不保证数据传输的可靠性。UDP协议被广泛应用于实时应用程序,如音频、视频、实时对话等。 3、HTTP协议:是一种用于传输超文本的协议,通常用于在Web浏览器和Web服务器之间传输HTML页面。HTTP协议是无状态的,即服务器不会存储客户端的信息,因此每次请求都是独立的。 4、SMTP协议:是一种用于电子邮件的传输协议,是Internet上常用的电子邮件传输协议。SMTP协议基于TCP协议,采用了三次握手的连接建立方式。 5、RPC协议:是一种远程过程调用协议,可以使程序在网络节点间像调用本地程序那样调用远程程序,使分布式应用程序的开发更加方便。RPC协议通常使用TCP或UDP传输协议。 综上所述,从TCP协议到RPC协议,网络协议经历了层次化之后,出现了UDP、HTTP、SMTP等协议,最终趋于分布式的RPC协议。随着互联网应用的广泛普及,网络协议也将不断发展进步,为用户提供更加安全、高效和便捷的服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值