OSI七层网络模型
OSI模型有7层,适用于这7层的基本原则简要概括为:
(1)应该在需要一个不同抽象体的地方创建一层。
(2)每一层都应该执行一个明确定义的功能。
(3)每-一层功能的选择应该向定义国际标准化协议的目标看齐。
(4)层与层边界的选择应该使跨越接口的信息流最小。
(5)层数应该足够多,保证不同的功能不会被混杂在同一层中,但同时层数又不能太多,以免体系结构变得过于庞大。
现在从最底层开始,依次讨论该模型中的每一层
- 物理层:物理层(physical layer)关注在一条通信信道上传输原始比特。设计问题必须确保当一方发送了比特1时,另一方收到的也是比特1,而不是比特0。这里的典型问题包括用什么电子信号来表示1和0、一个比特持续多少纳秒、传输是否可以在两个方向上同时进行、初始连接如何建立、当双方结束之后如何撤销连接、网络连接器有多少针以及每一针的用途是什么等。这些设计问题主要涉及机械、电子和时序接口,以及物理层之下的物理传输介质等。
- 数据链路层:数据链路层(和大多数高层都存在)的另一个问题是如何避免一个快速发送方用数据“淹没”一个慢速接收方。所以,往往需要一种流量调节机制,以便让发送方知道接收方何时可以接收更多的数据。
广播式网络的数据链路层还有另一个问题:如何控制对共享信道的访问。数据链路层的一个特殊子层,即介质访问控制子层,就是专门处理这个问题的。 - 网络层:网络层(network layer)的主要功能是控制子网的运行。一个关键的设计问题是如何将数据包从源端路由到接收方。路由可以建立在静态表的基础上,这些表相当于网络内部的“布线”,而且很少会改变;或者,更常见的情况是路由可以自动更新,以此来避免网络中的故障组件。路由也可以在每次会话(例如一次终端会话)开始时就确定下来,比如登录到一台远程机器上。最后,路由可以是高度动态的,针对每一个数据包都重新确定路径,以便反映网络当前的负载情况。
- 传输层:传输层(transport layer)的基本功能是接收来自上一层的数据,在必要的时候把这些数据分割成较小的单元,然后把这些数据单元传递给网络层,并且确保这些数据单元正确地到达另一端。而且,所有这些工作都必须高效率同时以一种上下隔离的方式完成,即随着时间的推移导致底层硬件技术不可避免地发生改变时,对上面各层是透明的。
传输层还决定了向会话层,因而是实际的最终网络用户提供哪种类型的服务。其中最为常见的传输连接是一个完全无错的点到点信道,此信道按照原始发送的顺序来传输报文或者字节数据。然而,其他类型的传输服务也有可能,例如传输独立的报文但不保证传送的顺序、将报文广播给多个目标节点等。服务的类型是在建立连接时就确定下来的(顺便说一下,完全无错的信道是不可能实现的;人们使用这个术语的真正含义是指出错率很低,小到足以忽略掉)。
传输层是真正的端到端的层,它自始至终将数据从源端携带到接收方。换句话说,源机器上的一个程序利用报文头和控制信息与目标机器上的一个类似程序进行会话。在其下面的各层,每个协议涉及一台机器与它的直接邻居,而不涉及最终的源机器和目标机器,即源机器和目标机器可能被多个中间路由器隔离了,第1-3层是链式连接的,而第4~7层是端到端。 - 会话层:会话层(session layer)允许不同机器上的用户建立会话。会话通常提供各种服务,包括对话控制(dialog control)(记录该由谁来传递数据)、令牌管理( token management)(禁止双方同时执行同一个关键操作),以及同步功能(synchronization)(在一个长传输过程中设置一些断点,以便在系统崩溃之后还能恢复到崩溃前的状态继续运行)。
- 表示层:表示层以下的各层最关注的是如何传递数据位,而表示层(presentation layer)关注的是所传递信息的语法和语义。不同的计算机可能有不同的内部数据表示法,为了让这些计算机能够进行通信,它们所交换的数据结构必须以一种抽象的方式来定义,同时还应该定义一种“线上”使用的标准编码方法。表示层管理这些抽象的数据结构,并允许定义和交换更高层的数据结构(比如银行账户记录)。
- 应用层 :应用层( application layer)包含了用户通常需要的各种各样的协议。一-个得到广泛使用的应用协议是超文本传输协议(HTTP,HyperText Transfer Protocol),它是万维网(www,World Wide Web)的基础。当浏览器需要一个Web页面时,它通过HTTP.将所要页面的名字发送给服务器,然后服务器将页面发回给浏览器。其他一些应用协议可用于文件传输、电子邮件以及网络新闻等。
TCP/IP 模型原理
TCP/IP 协议不是 TCP 和 IP 这两个协议的合称,而是指因特网整个 TCP/IP 协议族。从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、应用层。
- 网络访问层(Network Access Layer)
网络访问层在 TCP/IP 参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。 - 网络层(Internet Layer)
网络层是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。互联网层使用因特网协议(IP,Internet Protocol)。 - 传输层(Tramsport Layer-TCP/UDP)
传输层使源端和目的端机器上的对等实体可以进行会话。在这一层定义了两个端到端的协议:传输控制协议(TCP,Transmission Control Protocol)和用户数据报协议(UDP,User Datagram Protocol)。TCP 是面向连接的协议,它提供可靠的报文传输和对
上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP 是面向无连接的不可靠传输的协议,主要用于不需要 TCP 的排序和流量控制等功能的应用程序。 - 应用层(Application Layer)
应用层包含所有的高层协议,包括:虚拟终端协议(TELNET,
TELecommunications NETwork)、文件传输协议(FTP,File Transfer Protocol)、电子邮件传输协议(SMTP,Simple Mail Transfer Protocol)、域名服务(DNS,Domain Name Service)、网上新闻传输协议(NNTP,Net News Transfer Protocol)和超文本传送协议(HTTP,HyperText Transfer Protocol)等。
参考书籍
《计算机网络 第5版 中文版 严伟 潘爱民译》