文章目录
OSI七层模型 VS. TCP/IP四层模型
- 物理层:负责将数字信号转换为物理信号,如电缆、光缆等,确保数据以适当的方式在传输媒体上传输。
- 数据链路层:将原始比特流分割成帧,并添加地址信息,确保数据在直接连接的设备之间正确传输。
- 网络层:负责在不同的网络之间传输数据,通过路由数据包确保数据到达目标设备。
- 传输层:提供端到端的数据传输服务,确保数据的可靠性、流量控制和错误检测。
- 会话层:管理会话的建立、维护和结束,处理会话层面的错误和同步问题。
- 表示层:负责数据的格式转换、加密和解密,确保应用程序能够正确地解释数据。
- 应用层:为用户提供网络应用服务,如文件传输、电子邮件、网页浏览等。
从输入URL到页面展示发生什么?
- 检查浏览器缓存:浏览器接受到用户请求,检查浏览器缓存中是否有该资源,有则直接返回,没有则进行下一步。
- DNS解析:根据域名进行DNS解析,获取服务器IP地址。
查询顺序:浏览器缓存;本地Host文件;本地DNS解析器;根DNS服务器;顶级域DNS服务器;权威DNS服务器;将收到的IP地址返回浏览器,并缓存在本地。
向本地DNS解析器发出查询请求,若本地DNS中未查询到域名对应IP地址,本地DNS解析器向根DNS服务器发出查询请求,告诉本地DNS解析器向哪个顶级域DNS服务器继续查询,本地DNS解析器向顶级域DNS服务器发出查询请求,顶级域DNS服务器告诉本地DNS服务器向哪个权威DNS服务器继续查询;本地DNS解析器向权威DNS服务器发出查询请求,返回对应IP地址。 - 浏览器与服务器建立TCP连接(三次握手)。
- 浏览器发送请求。
- 服务器接收到请求信息,根据请求生成响应数据,并发回响应
- 浏览器接收响应,解析内容,渲染页面
- 页面加载完成
TCP
首部
- 源端口号:16位字段,用于标识发送方的应用程序端口号,指示了发送方数据来自哪个应用程序。
- 目标端口号:16位字段,用于标识接收方的应用程序端口号,指示了接收方数据应该传递给哪个应用程序。
- 序列号:32位字段,用于对TCP中的数据字节进行编号,实现有序传输和重组。每个TCP报文段的序列号指示了该报文段中第一个数据字节的编号。
- 确认号:32位字段,用于确认对方已经成功接收到数据。当一个主机收到另一端发送的数据时,会发送一个包含