1. OSI 七层模型
-
应用层
该层协议定义了应用进程之间的交互规则,通过不同的应用层协议
为不同的网络应用提供服务
。例如
域名系统 DNS,支持万维网应用的 HTTP 协议,电子邮件系统采用的 SMTP 协议
等。 -
表示层
表示层的作用是
使通信的应用程序能够解释交换数据的含义
。该层提供的服务主要包括
数据压缩,数据加密以及数据描述。这使得应用程序不必担心在各台计算机中表示和存储的内部格式差异。
-
会话层
会话层就是
负责建立、管理和终止表示层实体之间的通信会话
。
该层提供了数据交换的定界和同步功能
,包括了建立检查点和恢复方案的方法。 -
传输层
传输层的主要任务是为两台主机进程之间的通信提供服务。
应用程序利用该服务传送应用层报文。该服务并不针对某一特定的应用,多种应用可以使用同一个传输层服务。
由于一台主机可同时运行多个线程,因此传输层有复用和分用的功能。
所谓复用就是指多个应用层进程可同时使用下面传输层的服务,分用和复用相反,是传输层把收到的信息分别交付上面应用层中的相应进程。
-
网络层
两台计算机之间传送数据时其通信链路往往不止一条,所传输的信息甚至可能经过很多通信子网。
网络层的主要任务就是选择合适的网间路由和交换节点,确保数据按时成功传送。
在发送数据时,
网络层把传输层产生的报文或用户数据报封装成分组和包向下传输到数据链路层
。在
网络层使用的协议是无连接的网际协议
(Internet Protocol)和许多路由协议,因此我们通常把该层简单地称为 IP 层 -
数据链路层
两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层协议。
数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。
每一帧包括数据和必要的控制信息。
通过控制信息我们可以知道一个帧的起止比特位置,此外,也能使接收端检测出所收到的帧有无差错,如果发现差错,数据链路层能够简单的丢弃掉这个帧,以避免继续占用网络资源。
-
物理层
物理层的作用是
实现计算机节点之间比特流的透明传送
。
2.TCP/IP 参考模型
-
应用层
TCP/IP 模型将 OSI 参考模型中的会话层、表示层和应用层的功能合并到一个应用层实现,通过不同的应用层协议为不同的应用提供服务。例如:FTP、Telnet、DNS、SMTP 等。 -
传输层
为上层实体提供源端到对端主机的通信功能。传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)。其中面向连接的 TCP 协议保证了数据的传输可靠性,面向无连接的 UDP 协议能够实现数据包简单、快速地传输。
-
网际互联层
主要负责相同或不同网络中计算机之间的通信。在网际互联层,
IP 协议提供的是一个不可靠、无连接的数据报传递服务
。该协议实现两个基本功能:
寻址和分段
。根据数据报报头中的目的地址将数据传送到目的地址,在这个过程中 IP 负责选择传送路线。除了 IP 协议外,该层另外两个主要协议是互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。 -
网络接入层
负责监视数据在主机和网络之间的交换。
3. 为什么 TCP/IP 去除了表示层和会话层
由于
会话层、表示层、应用层都是在应用程序内部实现的
,最终产出的是一个应用数据包,而
应用程序之间是几乎无法实现代码的抽象共享的
,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的,例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,
4. 数据如何在各层之间传输
- 一个应用层报文被传送到运输层,运输层收取到报文并附上附加信息,应用层报文和运输层首部信息一道构成了运输层报文段。
- 运输层则向网络层传递运输层报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络数据报。
- 网络层数据报被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧
- 在物理层数据帧被封装成比特流,之后通过传输介质传送到对端。