网络协议的分层结构

网络协议的层次划分图

网络协议分层结构

各层的功能作用

物理层(physical layer)

物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当受到1(或0)而不是0(或1)。值得注意的是,传递信息所用的一些物理媒体,如双绞线,同轴电缆,光缆,无线信道等,并不属于物理层之内,而实在物理层协议的下面,有人把物理层下面的物理媒体当作第0层。

数据链路层所传输的单位是帧(framing)。两台主机之间的数据传输,总是在一段一段的链路上传送的,在两个相邻的节点之间的链路上传送数据时,数据链路层将网络层交下来的IP数据包组装成帧,在两个相邻节点间的链路上传送帧。总的来说,数据链路层要解决三个问题:

  • 封装成帧(将网络层交下来的IP数据包添加首部和尾部封装成帧)
  • 透明传输(保证即使数据中偶然出现帧定界字符,也不会导致传输失败)
  • 差错检测(CRC循环冗余检验)

网络层(network layer)

网络层的传输单元叫做分组、IP数据报、数据报、包。网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。通过IP找到目的主机,通过端口port找到目的通信程序。

运输层(transport layer)

运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓“通用的”,是指并不针对某个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有分用和复用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用是运输层把收到的信息分别交付上面应用层中的相应进程。运输层主要使用以下两种协议:

  • 传输控制协议(Transmission Control Protocol - TCP)——提供面向连接的、可靠的数据传输服务,其数据传输单位是报文段(segment)。
  • 用户数据报协议(User Datagram Protocol - UDP)——提供无连接的、尽最大努力的数据传输服务,不保证数据传输的可靠性,其数据传输单位是用户数据报。
UDP与TCP
  • UDP是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP曾。他既不合并,也不不拆分,而是保留这些报文的边界。也就是说,应用层交给UDP多长的报文,UDP照样发送,即一次发送一个报文。
  • TCP是面向字节流的,TCP中的”流“指的是流入到进程或者从进程流出的字节序列。”面向字节流“的含义是:虽然应用程序和TCP交互式一次一个数据块(大小不等),但TCP把应用程序交下来的数据堪称仅仅是一串无结构的字节流。TCP并不知道所传送的字节流的含义。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出来的数据块具有对应的大小关系,但接收方应用程序收到的字节流必须和发送方应用程序发出来的字节流是完全一样的。

会话层

这一层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步,访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。使通信会话在通信失效时从校验点继续恢复通信。

表示层

这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

应用层(application layer)

应用层交互的数据单元成为报文(message),应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要不同的应用层协议。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。

各层传输协议、传输单元、主要功能性设备比较

名称 传输协议 传输单元 主要功能设备/接口
物理层 IEEE 802.1A、IEEE 802.2 bit-flow 比特流 光纤、双绞线、中继器和集线器 & RJ-45(网线接口)
数据链路层 ARP、MAC、 FDDI、Ethernet、Arpanet、PPP、PDN frame 帧 网桥、二层交换机
网络层 IP、ICMP、ARP、RARP 数据包(packet) 路由器、三层交换机
传输层 TCP、UDP Segment/Datagram 四层交换机
会话层 SMTP、DNS 报文 QoS
表示层 Telnet、SNMP 报文
应用层 FTP、TFTP、Telnet、HTTP、DNS 报文