OSI 七层网络模型
概述
七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。有的人也会将应用层、表示层和会话层合并为应用层,将物理层和数据链路层合并为物理层。每一层都会遵守不同的协议,不同的协议之间通过封装、解封装、加解密等方式进行通信。

物理层
物理层主要是跟物理介质打交道。
物理层的设备包括集线器、中继器、调制解调器、网卡、网桥、交换机等。
物理层的作用是实现比特流的传输,它规定了 0 和 1 的电信号的表示方法、传输距离、传输速率、传输方式、传输媒介等。
数据链路层
数据链路层主要是负责将数据从一台计算机传输到另一台计算机。主要包括建立连接、进行硬件地址寻址、差错校验。
通过将比特流组合成帧,用 MAC 地址标识发送方和接收方,并将帧通过物理介质传输。
MAC 地址是指网络接口卡的物理地址,MAC 地址长度为 48 位,通常用十六进制表示。
数据链路层的协议有 PPP、 Ethernet、FDDO 等。
网络层
网络层是最重要的一层,该层控制数据链路层与传输层之间的信息转发、建立、维持和终止网络的连接。
数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进出路由等控制将信息从一个网络设备传送到另一个网络设备。
- 寻址:使用 IP 地址进行寻址,IP 地址长度为 32 位,通常用十进制表示。
- 路由:网络层使用路由表进行路由选择,路由表中记录了网络中各个设备的 IP 地址和下一跳路由器的 IP 地址。
- 转发:当数据包到达网络层时,网络层检查数据包的目的 IP 地址,并根据路由表选择下一跳路由器,然后将数据包发送给下一跳路由器。
- 封装:网络层将数据包封装成数据帧,并添加首部信息,如源 IP 地址、目的 IP 地址、传输层协议类型、数据包长度等。
- 分段:当数据包长度超过网络传输的最大数据包长度时,网络层将数据包分段,并在分段后重新封装成数据帧。
- 重传:当数据包在网络中传输过程中丢失时,网络层会自动重传。
- 错误控制:网络层使用差错校验、流量控制、拥塞控制等机制来保证数据包的可靠传输。
网络层的协议有 IP、ICMP、IGMP、ARP、RIP 等。
传输层
传输层是网络层之上的一层,主要负责向应用层提供可靠的端到端的通信。
传输层的主要协议有 TCP、UDP。
TCP
TCP 协议是一种面向连接的、可靠的、基于字节流的传输层协议。
TCP 协议提供可靠的、按序到达的数据流服务,它建立连接、维护连接、断开连接、数据流的顺序、数据流的完整性、数据流的错误控制等功能。
TCP 协议的特点是建立连接后,通信双方必须互相握手,然后才能开始通信。
UDP
UDP 协议是一种无连接的、不可靠的、基于数据报的传输层协议。
UDP 协议提供不可靠的、无序到达的数据流服务,它不建立连接、不维护连接、不保证数据流的顺序、不保证数据流的完整性、不保证数据流的错误控制等功能。
UDP 协议的特点是无连接,通信双方不必握手,直接就可以通信。
会话层
会话层主要负责建立、管理和终止会话。
- 建立会话:会话层建立连接时,首先建立会话,并为通信双方分配会话标识符。
- 管理会话:会话层管理连接的建立、维护、终止。
- 终止会话:会话层终止连接时,释放连接资源。
数据在这一层叫做报文段,报文段包含源端口号、目的端口号、序列号、确认号、数据、校验和等信息。
会话层的协议有 SSL 、TLS 等。
表示层
表示层主要负责对数据进行编码、加密、解密、压缩、解压缩等处理。
表示层会在在发送之前进行加密,在接收之后进行解密。表示层还会将图片、视频等编码成计算机能读懂的编码。
表示层的协议有 JPEG、MPEG、ASN.1 等。
应用层
应用层是最常用的一层,主要负责向用户提供各种应用服务。包括 AJAX 发送 HTTP 请求、域名系统 DNS 解析,文件传输 FTP、电子邮件 SMTP 等。
应用层的协议有 HTTP、FTP、SMTP、SNMP、Telnet、SSH、TFTP 等。