TCP/IP协议族
TCP/IP协议族的开发要比OSI模型更早,因此TCP/IP协议族的分层结构无法准确地与OSI模型一一对应。原始的TCP/IP协议族定义为建立再硬件基础上的四个软件层,不通过目前TCP/IP协议族被认为是一个五层模型,其层的命名类似于OSI模型中相应的层。如下图所示:
OSI和TCP/IP协议族的比较 当我们比较这两个模型时会发现,再TCP/IP协议族中没有会话和表示这两层。即使在OSI模型发布后,TCP/IP协议族也没有因此而增加这两层。在TCP/IP协议族中通常认为应用层是OSI模型的最高三层的合并,如下如所示:
采用这一决定的理由有两个。首先,TCP/IP有多个传输层协议,而会话层的某些功能在一些传输层协议中已具备。其次,应用层并不仅仅是一个软件,这一层允许开发的应用程序有很多。如果特定的应用程序需要用到会话层和表示层中某些相应的功能,那么这些功能也可以包含在该应用软件中进行开发。 TCP/IP是一种分层协议,它由多个交互的模块构成,每个模块都提供了特定的功能,但是这些模块并不是必须互相依赖的。OSI模型具体规定了哪一层应该具备哪些功能,而TCP/IP协议族的每一层则包含的是一些相对独立的协议,可以根据系统的需要把这些协议混合并重新搭配使用。术语"层次化"指的是每一个上层协议都由一个或多个下层协议来支持。 接下来我们将简单地讨论一下TCP/IP协议族中各层的作用。在研究每一层所起的作用时,考虑一个专用的互联网要比考虑全球因特网更加简单。我们假设在一个小型的专用互联网内使用TCP/IP协议族。这种互联网是由若干个小型的称之为链路的网络组成的。一条链路(link)就是允许一组计算机互相通信的一个网络。例如,一个办公室中所有计算机都通过网线连接在一起,这种连接关系就形成了一条链路。若某私人企业中的若干台计算机通过卫星信道互相连接,此连接也是一条链路。就像我们在后面会讨论的那样,一条链路有可能是服务小范围区域的LAN(局域网),也有可能是服务很大范围区域的WAN(广域网)。我们还要假设不同链路通过称为路由器或者交换机的设备相连接在一起,这些设备会为数据选路以送抵它们最终的目的地。如下图所示为我们虚构的一个互联网,用来说明TCP/IP各层的作用。图中有6条链路和四个路由器(R1到R4),在这幅图中只画出了两台计算机,计算机A和计算机B。
物理层 在物理层,TCP/IP没有定义任何特定的协议。它支持所有标准的和专用的协议。在这一层,通信发生在两跳或两个结点之间,可能是计算机,也可能是路由器。通信以比特为单位。当两个结点之间建立连接后,就会有一个比特流在它们之间流动。但是对于物理层来说每个比特都将被独立对待。下图所示为结点之间的通信,我们假设此时两台计算机都已知道了与对方通信的最有效路径是经过路由器R1、R3和R4。至于如何知道则属于后面讨论内容。
请注意,如果一个结点与n条链路相连,那么它需要n个物理层协议,每条链路各需要一个,原因在于不同的链路可能使用不同的物理层协议。图中只显示了此次通信所涉及到的物理层,每台计算机仅涉及一条链路,而每台路由器仅涉及两条链路,如上图所示,这些比特在计算机A和计算机B之间的旅程是由四个独立的短途旅程构成的。计算机A以链路1所使用的协议格式向路由器R1发送各比特。路由器R1以链路3所使用的协议格式向路由器R3发送这些比特,以此类推。路由器R1有三个物理层(在我们假设的场景中只显示了两个),连接到链路1的物理层根据链路1所使用的协议的格式来接受这些比特,连接到链路3的物理层根据链路3所使用的协议的格式来发送这些比特。此次通信过程中涉及的其他两个路由器的情况也于此相同。
物理层的通信单位是比特 除了传送比特之外,物理层的其他任务也与OSI模型的物理层相对应,且主要取决于提供链路的底层技术。例如,在后面我们就会讨论局域网和广域网的物理层有很多协议可用。
数据链路层