协议分层简介
因特网的协议栈由5个层次组成:应用层、运输层、网络层、链路层、物理层。
(1)应用层
应用层是网络应用程序及它们的应用层协议存留的地方。因特网的应用层包括许多协议,例如HTTP(它提供了Web文档的请求和传送),FTP(它提供了两个端系统之间的文件传送),SMTP(它提供了电子邮件报文的传输),DNS(域名转换与32位比特网络地址之间的转换)。 应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息的分组。我们把这种位于应用层的信息分组称为报文(message)。
(2)运输层
运输层在应用程序端点之间传送应用层报文。在因特网中,有两个运输协议,即TCP和UDP,利用其中的任何一个都能运输应用层报文。TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地确保传递和流量控制(即发送方/接收方速率匹配)。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。UDP协议向它的应用程序提供无连接服务。这时一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。 我们把运输层分组称为报文段(segment)。
(3)网络层
网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。在一台源主机中的因特网运输层协议(TCP或UDP)向网络层递交运输层报文段和目的地址,就像你通过邮政服务寄信件时提供一个目的地址一样。 因特网的网络层包括著名的IP协议,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。因特网的网络层也包括决定路由的路由选择协议,它使得数据报根据该路由从源传输到目的地。
(4)链路层
因特网的网络层通过源和目标地址之间的一系列路由器路由数据报。为了将分组从一个结点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。特别是在每个结点,网络层将数据报下传给链路层,链路层沿着路径将数据报从传递给下一个结点。在下个结点,链路层将数据报上传给网络层。 我们把链路层分组称为帧。
(5)物理层
链路层的任务是将整个帧从一个网络元素移动到附近的网络元素,而物理层的任务是将该帧中的一个一个比特从一个结点移动到下一个结点。在这层中的协议仍然是链路相关的,并且进一步与该链路(例如,双绞铜线,单模光纤)的实际传输媒体相关。
(6)封装
在发送主机端,一个应用层报文被传送给运输层。在最简单情况下,运输层收取到报文并附上附加信息(所谓运输层首部信息),该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段。运输层报文段因此封装了应用层报文。附加的信息也许包括了下列信息:如允许接收端运输层向上向适当的应用程序交付报文的信息;如误差检测位信息,该信息让接收方能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的地址等网络层首部信息,产生了网络层数据报。该数据报接下来被传递给链路层,链路层增加自己的链路层首部信息并创建链路层帧。所以,我们看到在每一层,一个分组具有两种类型的字段:首部字段和有效载荷(来自上一层的分组)。
注:链路层交换机实现和第一层和第二层(即物理层和链路层),而路由器实现了第一层到第三层。这意味着路由器能够实现IP协议(一种网络层协议),而交换机不能实现IP协议。
关于TCP/IP协议分层可参考如下博客:
TCP/IP分层模型
因特网协议分层及它们的服务模型
TCP/IP协议族分层详解