OSI 模型有 7 层结构,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。在这一层,数据的单位称为比特(bit)。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。
在数据传输工程中 IP 地址与 MAC 地址的相互转换需要使用 ARP 协议。ARP 协议解决同一个局域网上主机或路由器的 IP 地址和硬件地址的映射问题。
源主机发出 ARP 请求,询问该 IP 地址的主机 MAC 地址,并将这个请求广播到本地以太网。主机接收到广播的 ARP 请求后:
- 如果 MAC 地址与本机不相符,就忽略这个请求。
- 如果 MAC 地址与本机相符,则发送一个 ARP 应答数据包给源主机,将自己的 MAC 地址写在应答包中。
- 如果局域网里所有主机都不相符,那么就要交给路由器(待补充)
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。
网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。
网络层协议的代表包括:IP(网络之间互联的协议)
传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。在这一层,数据的单位称为数据段(segment)。
传输层协议的代表包括:TCP(传输控制协议)、UDP(用户数据报协议)
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的。示例:RPC,SQL 等。
这一层的主要功能是定义数据格式及加密。表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换(比如二进制文件的转换)等。
应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:FTP(文件传输协议)、HTTP(超文本传送协议)、WebSocket。