OSI 七层网络模型
OSI :一系列的协议
- 物理层
- 数据链路层
无线LAN、以太网 - 网络层
IP、IPV4、IPV6… - 传输层
TCP、UDP、SCTP - 会话层
- 表示层
- 应用层
DNS、HTTP
TCP/IP 四层模型
- 物理层
- 数据链路层
- 网络层
- 传输层
一个网络请求的过程
- 解析域名。
- 发起 TCP 的 3 次握手。
- 建立 TCP 请求后发起 HTTP 请求。
- 服务器相应 HTTP 请求。
- 浏览器得到 HTML 代码,进行解析和处理 JSON 数据,并请求 HTML 代码中的静态资源(JS、CSS、图片等)。
- 浏览器对页面进行渲染
HTTP
超文本传输协议,是一种无状态的,以请求/应答方式运行的协议。基于TCP/IP协议传输数据。
HTTPS
经由HTTP进行通信,通过SSL或者TLS进行加密处理数据、验证身份、数据完整性保护。
TCP/IP
TCP/IP 是一个协议集合,
TCP 的三次握手
-
- 客户端发送请求到服务端。此时服务端知道自己接收正常、客户端发送正常;
-
- 服务器发给客户端。此时客户端知道自己接受、发送都正常、服务端接收、发送正常
-
- 客户端发给服务端。此时服务端知道自己发送、接收正常、客户端发送接收正常
TCP 的四次挥手
-
- 客户端请求断开
-
- 客户端确认服务端请求断开
-
- 服务端请求断开
-
- 客户端知道自己断开,也知道了服务端请求断开
UDP
用户数据报系协议,发送数据前不需要建立连接,减少了开销和发送数据的时延。UDP 不保证可靠交付,
应用场景:即时通信、在线视频、网络语音电话
UDP、TCP 区别
- TCP 是有连接的,传输数据前需要进行三次握手,会话结束后需要结束连接,UDP 是无连接的
- TCP 保证数据按序发送,提供可靠性,UDP 不保证可靠性,甚至不保证到达
- TCP 是一对一连接,UDP 支持多对多,一对一
- TCP 是面向字节流的服务,UDP面向报文的服务