Network
网络模型层
OSI七层模型
OSI全称为Open System Interconnection Model,即开放式系统互联模型,本质是一个网络机制的模型。
- 物理层:物理层负责通过网络进行数据的物理传输,包括电缆、光纤等之类的物理硬件。
- 数据链路层:从物理层里渗透到软件层的机制,负责检错纠错、成帧和寻址,确保数据从网络上的一个节点可靠地传输到另一个节点,如以太网、WiFi等,类比于电脑的一些驱动(网卡驱动、声卡驱动等),连接硬件的东西。
- 网络层:网络层负责在网络上传输数据包,还处理逻辑寻址,这允许不同网络上的节点相互通信,常见的网络层协议有IP、ARP、ICMP、IGMP等。
- 传输层:传输层负责在应用程序之间提供可靠的数据传输,规定了传输层协议,即网络在传输数据时应该使用什么样的方式进行连接、传输等,常见的传输层协议有TCP、UDP。
- 会话层:它建立连接的一个组件,负责管理两个应用程序之间的对话,处理同步、检查点和身份验证等事项。
- 表示层:建立会话的关系,负责格式化数据以进行传输和呈现,处理数据加密、数据压缩和翻译等事项。
- 应用层:应用层是OSI模型的顶层,它为应用程序提供网络服务,包括电子邮件、文件传输和Web浏览等。传输层协议只规定数据如何传输,而应用层协议制定了一套统一的标准,如传输的时候需要带什么信息、要记录一些什么的数据等。常见的应用层协议有HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3等,HTTP是基于TCP/IP的。
TCP/IP四层模型
- 链路层(网络接口层):物理层和数据链路层的结合。
- 网络层:IP寻址。
- 传输层:TCP、UDP。
- 应用层:会话层、表示层、应用层的结合。
TCP协议
Transmission Control Protocol,一种面向连接的、可靠的、基于字节流的传输控制协议。
- 面向连接,三次握手,四次挥手。
- 字节流可靠传输(二进制)。
- 使用网络层IP协议,寻址时遵循IP协议。
- 向HTTP、FTP等协议提供通信支持。
- 易粘包(Nagle算法)。
三次挥手
四次挥手
基于TCP连接的协议
网路协议是对两台计算机进行通信制定的规则。
- 如何连接。
- 如何通信。
HTTP以TCP/IP的方式连接,客户端发起请求,服务端响应回给客户端。
HTTP协议
Hypertext Transfer Protocol超文本传输协议,是用于规定浏览器和服务器通信的方式。
- 基于TCP/IP连接。
- 端口默认为
80。 - 请求与响应。
- 请求方法有
GET、POST、PUT等。 - 请求头信息。
- 1.1版本开始支持长连接。
- 无传输状态。
HTTP/2
- HTTP/1.1是通过纯文本传输请求和响应消息,而HTTP/2是通过二进制编码封装请求和响应消息。
- 多路复用。多个请求可以在同一个连接上进行并行处理,不需要为每个请求建立单独的连接,减少了连接建立和拆除的开销。
HTTP/1.1与HTTP/2请求一个HTML页面的过程对比
- 头部数据压缩。对头部信息进行
encoder编码压缩,并且创建双端缓存表,缓存已接收到的头部信息,减少了重复传输的信息。
头部数据压缩过程
- 服务端主动推送。对HTML代码进行分析,提前推送HTML中所需要服务端返回的资源。