# 互联网模型
# OSI 模型
TIP
开放式系统互联模型(Open System Interconnection Model,缩写:OSI;简称为 OSI 模型)。
第七层为最靠近用户的一层。
以发送请求为例。
# 构建请求行
# 查找强缓存
# DNS 解析(基于 UDP)
查询路径:本地缓存,本地域名服务器,根域名服务器,顶级域名服务器,权威域名服务器
查询方式:迭代查询/递归查询
# 第七层 应用层
规定数据格式,应用发送 HTTP 请求。
# 第六层 表达层
# 第五层 会话层
SSL
# 第四层 传输层
TCP 属于这一层。主要用于建立端口与端口之间的联系。
HTTP 发送的报文,经过 TCP 切割成段
的小数据块,然后封装到 IP 分组中。
每个 IP 分组都包含了:
- IP 分组首部:包含了源、目的地的 IP 地址,长度和其他标记
- TCP 首部:包含端口号,TCP 控制标记等信息
- TCP 数据块
TCP 是通过四个值来确保数据传输、到达的准确性:
源IP、源端口、目的地IP、目的地端口
建立连接前,会进行三次握手。
TIP
ACK(Acknowledge character)确认字符。 SYN 同步序列编号(Synchronize Sequence Numbers),是 TCP/IP 建立连接时使用的握手信号。 FIN 表示关闭连接。
三次握手:确认双方的收、发数据的能力正常。
- 客户端发送网络包,服务端接收。服务端知道了客户端的发送能力正常。 发送了 SYN,端口等信息,进入到 SYN_SEND 状态。
- 服务端发送网络包,客户端接收。客户端知道服务端的接收、发送能力正常。 发送了 ACK+SYN 信息,进入到 SYN_RCVD 状态。
- 客户端发送网络包,服务端接收。服务端确认客户端的接收和发送能力正常。 握手完成,双方进入到 ESTABLISHED 状态。
四次挥手:任何一方都可以发送
- A 发出主动关闭的通知(不再发送数据,只能接收)
- B 关闭接收通道
- B 发送没数据发送的通知
- A 收到讯息,关闭
# 第三层 网络层
IP 协议属于这一层。
链路层以广播的方式发送数据,效率较低,如果两台设备不在同一网络,那接收方是收不到任何讯息的。网络层定义了设备的网络地址,网络地址+MAC 地址,能够更好的找到数据的接收方。
三层路由
,工作在网络层
# 第二层 数据链路层
确定信号(0 和 1 组成)的分组方式。
一组电信号构成一个数据包(帧),每个数据包分成两个部分,标头和数据,标头对请求进行描述,发送方,接收方,数据类型等,数据就是发送的具体内容。
二层转发
,在链路层,检查数据的帧信息,拿到 MAC 地址,进行转发和广播。
TIP
标头中的发送方接收方的信息,是通过网卡获取。
入网设备,都有网卡的接口,数据是从一个网卡到另一个网卡,网卡的地址就是数据发送和接收的地址,这个就是 MAC 地址。
有了 MAC 地址,然后通过广播的方式,向本网络的设备发送数据,由其他设备判断自己是接收方,效率可想而知。
# 第一层 物理层(实体层)
硬件相关设施,电压,线缆,网卡等。