四、OSI参考模型和TCP/IP模型
前面我们已经讨论了体系结构的基木概念,在具体的实施中有两个重要的网络体系结构的实例:OSI参考模型和TCP/IP 参考模型。虽然与0SI模型相关的协议没有被任何人所用但实际上,它对讨论网络体系结构中每一层的功能很重要) (理论完美)。TCP/IP 协议模型本身没有多大用处,但它的协议却已经广泛应用在工业实践中(实践完美)
1.ISO/0SI参考模型
ISO/OSI参考模型是国际标准化组织(ISO)提出的网络体系结构模型,又称为开放系统
互连参考模型(OST/RM),通常简称为OSI参考模型。OSI/RM参考模型有7层,自上面下依次为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层(口诀:从上到下:应表会传网数物)。
下面三层统称为通信子网,它的主要功能是完成数据的通信服务,包括路由器、交换机、集线器等设备,对应计算机网络的核心子网(通信子网),完成数据的传输功能;
上面三层统称为资源子网,它相当于计算机系统,包含各种资源,包括硬件资源和软件,对应计算机网络的边缘子网(资源子网),完成数据的处理等功能。
其中传输层承上启下,是面向通信的最高层,也是面向用户(应用)的最低层。
①物理层(Physical Layer)关注在一条通信信道上传输原始比特,即无论面对什么样的传输介质(有线或者无线)都可以传输比特流,设计时必须确保当一方发送了比特1时,另一方收到的也是比特 1,而不是比特0。这里的典型问题包括用什么电子信号来表示1和0、一个比特持续多少时间、传输是否可以在两个方向上同时进行、初始连接如何建立、当双方结束之后如何撤销连接、网络连接器的形状以及每比特的用途是什么等。这些设计问题主要涉及机械、电子和时序接口,以及物理层之卜的物理传输介质等。
②数据链路层(Data Link Layer)的主要任务是将一个原始的传输线路转变成一条没有传输错误的线路。数据链路层完成这项任务的做法是将真实的错误掩盖起来,使得网络层看不到。为此,发送方将输入的数据拆分成数据帧,然后顺序发送这些数据帧(链路层的PDU)。一个数据帧通常为几百个或者几千个字节长。
数据链路层的另一个问题是如何避免一个快速发送方的数据“淹没”一个慢速接收方所以,往往需要一种流量调节机制,以便让发送方知道接收方何时可以接收更多的数据。
广播式网络的数据链路层还有另一个问题:如何控制对共享信道的访问。
③网络层(Network Layer)的主要功能是控制通信子网的运行,即如何在两个主机间实现路由选择、分组转发以及网络的划分。一个关键的设计问题是如何将数据分组从发送方路由到接收方,路由可以建立在静态路由表或者动态路由表(路由表相当于发送数据的地图)。
当一个数据包必须从一个网络传输到另一个网络才能够到达它的目的地时,可能会发生很多问题。例如,第二个网络所使用的寻址方案可能与第一个网络不同;第二个网络可能无法接收这个数据包,因为它太大了;两个网络所使用的协议也可能不一样等。网络层应该解决所有这些问题,从而允许异构网络 (采用不同技术、不同设备) 相互连接。
④传输层(Transport Layer)的基本功能是接收来自上一层的数据,在必要的时候把这些数据分割成较小的单元,然后把这些数据单元传递给网络层,并且确保这些数据单元正确地到达另一端。
传输层还决定了向会话层,也即最终网络用户提供哪种类型的服务。传输层是真正的端到端的层,它自始至终将数据从源端携带到接收方。换句话说,源机器上的一个进程利用报文头和控制信息与目标机器上的一个进程进行会话。第1~3 层是链式连接的,而第47 层是端到端的(抽象成考试术语:端到端的通信:进程到进程的通信)。
⑤会话层(Session Layer) 允许不同机器上的用户建立会话。会话通常提供各种服务包括对话控制(记录该由谁来传递数据)、令牌管理 (禁止双方同时执行同一个关键操作 ),以及同步功能(在一个长传输过程中设置一些断点,以便在系统崩溃之后还能恢复到崩溃前的状态继续运行 )。
⑥表示层以下的各层最关注的是如何传递数据位,而表示层 (Presentation Layer)关注的是所传递信息的语法和语义。不同的计算机可能有不同的内部数据表示法,为了让这些计算机能够进行通信,它们所交换的数据结构必须以一种抽象的方式来定义,同时还定义使用的标准编码方法。
⑦应用层(Application Layer)包含了用户通常需要的各种各样的协议。一个得到广泛使用的应用协议是超文本传输协议(HyperText Transfer Protocol,HTTP),它是万维网(World Wide Web,WWW)的基础。当浏览器需要一个Web 页面时,它通过HTTP将所要页面的名字发送给服务器,然后服务器将页面发回给浏览器。其他一些应用协议可用于文件传输、电子邮件以及网络新闻等
OSI/RM参考模型的层次结构以及各层功能实现如下图所示
但是由于有七层,效率太低了,工业上常常不适用这种模型
2.TCP/IP模型
TCP/IP模型仅有四层,如下图所示
层级 | 功能介绍 |
应用层(用户对用户) |
任务:提供系统与用户的接口 功能:文件传输、域名解析、电子邮件服务 协议:FTP、SMTP、P0P3、HTTP |
传输层(进程对进程) | 传输单元:报文段(TCP)或用户数据包(UDP) 任务:负责主机中两个进程之间的通信 功能:为端到端连接提供可靠传输服务;为端到端连接提供流量控制、差错控制 协议:TCP、UDP |
网络层(网际层、IP层)(主机对主机) | 传输单位;数据报(数据分组) 网络层任务:将传输层传下来的报文段封装成分组,选择适当的路由,使传输层传下来的分组(主机对主机)能够交付到目的主机 功能:为传输层提供服务;路由选择分组转发 协议:ICMP、ARP、RARP、IP、IGMP 设备:路由器 |
网络接口层 | 传输单位:帧 任务:将网络层传下来的数据报封装成帧;这不是真正意义上的一个层,而是主机与传输线路之间的一个接口 功能:①组帧②透明传输和帧同步③差错检测 协议:PPP、HDLC、CMSA、CSMA/CD、CSMA/CA 设备:网桥、交换机 |
3.OSI/RM参考模型和TCP/IP参考模型的区别和联系
OSI/RM参考模型和TCP/IP模型都是以协议栈为基础,对计算机网络的功能进行分层设计.
但是 0SI/RM 参考模型和 TCP/IP 模型的特性存在一些差异
TCP/IP | OSI/RM | |
流量控制 | 3层和4层 | 2、3、4、5、6、7层 |
网络层 | 只有不可靠尽最大努力的传输 | 具有可靠与不可靠两种 |
传输层 | 具有可靠传输TCP,不可靠传输UDP | 只有可靠传输 |
4.五层教学模型
0SI/RM 模型是7层模型 (太复杂),TCP/IP 模型是4 层模型(太简略),教学中和学习中采用的是5层模型,我们也按照5层结构来进行,如图所示。这5层模型中,上三层来白于 TCP/IP 模型,下两层来白于 OSI/RM 模型。
5.数据流动示意图