在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

1、在浏览器输入一个地址,并回车,我们经历dns解析、tcp建连(三次握手)、ssl握手、http协议交互、tcp拆连(四次挥手)

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 DNS解析:

DNS是将域名转换为IP地址。而我们DNS的服务器IP地址与我们域名对应的IP地址可能不是一个。通过nslookup我们可以查询对应的DNS服务器的IP地址是多少(每个机器使用的DNS服务器可能不一样)

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 这个时候,也就是我们是通过114.114.114.114这个dns resolver服务器去进行域名解析的。而域名解析的过程又是递归查询的(通过root根域名查询是generic domains【.com;.edu;.net等】还是country domains【.de;.fr;.ch等】;再根据二级域名再进行查询)

如图:通过wireshark抓包显示DNS数据,我们也可以看到dns是通过114.114.114.114这个地址进行解析的,而110.242.68.3/110.242.68.4才是百度对应的服务器

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

 

DNS是基于UDP报文进行传输的

 在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

 

 TCP建连

使用TCP前,必须建立连接。三次握手的目的是同步Sequence序列号(ISN)、交换TCP通讯参数

SYN是同步帧、ACK是确认帧

第一次握手:SYN为1,ACK为0

第二次握手:SYN为1,ACK为1

第三次握手:SYN为0,ACK为1

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

 三次握手中的状态包含CLOSED、LISTEN、SYN-SENT、SYN-RECEIVED、ESTABLISHED(状态可以通过netstat命令查看)

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

最开始TCP的状态都是CLOSED,由于server要进行监听所以会有一个LISEN状态,三次握手完成后会进入ESTABLISHED状态

 

TLS/SSL握手

tcl和ssl的作用都有认证、数据加密、安全等功能。https就相当于是http协议与tls/ssl协议的组合

一般来说tls/ssl握手主要client hello、server  hello,server发送公钥证书、server秘钥交换

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

SSL是一个介于HTTP协议与TCP之间的一个可选层

 HTTP

 HTTP主要分为请求和响应两个部分,在wireshark中我们可以查看请求对应的响应信息。在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

 

 

 

TCP拆连(四次挥手)

TCP四次挥手是为了防止数据丢失、与应用层进行交互

FIN:结束、ACK:确认

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

 

在浏览器中输入一个地址,会发生什么呢?(DNS、TCP、SSL/TLS、HTTP)

 

 

 

 

参考资料:

https://time.geekbang.org/course/intro/100026801

https://zhuanlan.zhihu.com/p/102392474?utm_source=wechat_session&utm_medium=social&s_r=0

https://blog.csdn.net/sarafina527/article/details/89333536

https://segmentfault.com/a/1190000002554673

https://www.cnblogs.com/mq0036/p/11187138.html

https://blog.csdn.net/daaikuaichuan/article/details/83475809?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242.1

 

上一篇:读文献——一些专有名词的学习记录


下一篇:Windows 2003 只能打开百度,不能打开其他网页的一个解决方法