ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-28 17:34:07  阅读:262  来源: 互联网

标签:TLS DNS ACK 握手 SYN TCP SSL https


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

 DNS解析:

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

 这个时候,也就是我们是通过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是基于UDP报文进行传输的

 

 

 

 TCP建连

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

SYN是同步帧、ACK是确认帧

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

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

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

 

 

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

 

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

 

TLS/SSL握手

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

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

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

 HTTP

 HTTP主要分为请求和响应两个部分,在wireshark中我们可以查看请求对应的响应信息。

 

 

 

 

TCP拆连(四次挥手)

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

FIN:结束、ACK:确认

 

 

 

 

 

 

参考资料:

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

 

标签:TLS,DNS,ACK,握手,SYN,TCP,SSL,https
来源: https://www.cnblogs.com/mumu-lin/p/15606057.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有