声明:以下是学习《图解TCP/IP》第五版并结合网上资料所记的笔记,侵权请联系删除。可能会有一些错误,发现了会修改。
OSI参考模型
协议分层
ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论,最终提出了作为通信协议设计指标的OSI参考模型。这一模型将通信协议中必要的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。
在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的约定叫做“协议”。
协议分层希望实现从第一层到第七层的所有模块,并将它们组合起来实现网络通信。分层可以将每个分层独立使用,即使系统中某些分层发生变化,也不会波及整个系统。因此,可以构造一个扩展性和灵活性都较强的系统。此外,通过分层能够细分通信功能,更易于单独实现每个分层的协议,并界定各个分层的具体责任和义务。这些都属于分层的优点。而分层的劣势,可能就在于过分模块化、使处理变得更加沉重以及每个模块都不得不实现相似的处理逻辑等问题。
许多通信协议,都对应了OSI参考模型7个分层中的某层。通过这一点,可以大致了解该协议在整个通信功能中的位置和作用。这也是为什么在学习每一种协议之前,首先要学习OSI模型。
OSI协议与OSI参考模型
OSI协议是为了让异构的计算机之间能够相互通信的、由 ISO和ITU-T推进其标准化的一种网络体系结构。OSI参考模型将通信功能划分为7个分层,称作OSI参考模型。OSI协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准。遵循OSI协议的产品叫OSI产品,而它们所遵循的通信则被称为OSI通信。
各个分层的作用
- 应用层:为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。
- 表示层:将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。具体来说,就是将设备固有的数据格式转换为网络标准传输格式。因此它主要负责数据格式的转换。
- 会话层:负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
- 传输层:起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。
- 网络层:将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。
- 数据链路层:负责物理层面上互连的、节点之间的通信传输。例如与1个以太网相连的2个节点之间的通信。将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。
- 物理层:负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换。
案例
主机A的用户A要给使用主机B的用户B发送一封电子邮件。
发送方从第7层、第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原状。
主机A的数据传输流程
- 应用层:从用户输入完所要发送的内容并点击“发送”按钮的那一刻开始,就进入了应用层协议的处理。“输入电子邮件内容后发送给目标地址”也就相当于应用层。该协议会在所要传送数据的前端附加一个首部(标签)信息。该首部标明了邮件内容为“早上好”和收件人为“B”。
- 表示层:表示层是进行“统一的网络数据格式”与“某一台计算机或某一款软件特有的数据格式”之间相互转换的分层。表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据转交给下一层去处理。
- 会话层:决定采用何种连接方法是会话层的主要责任。会话层也像应用层或表示层那样,在其收到的数据前端附加首部或标签信息后再转发给下一层。而这些首部或标签中记录着数据传送顺序的信息。
- 传输层:在两个主机之间创建逻辑上的通信连接即是传输层的主要作用,进行实际的建立和断开处理。传输层为确保所传输的数据到达目标地址,会在通信两端的计算机之间进行确认,如果数据没有到达,它会负责进行重发,保证数据传输的可靠性。
- 网络层:在网络与网络相互连接的环境中,将数据从发送端主机发送到接收端主机。只要接收端的目标地址确定了,就可以在众多计算机中选出该目标地址所对应的计算机发送数据。 网络层中也会将其从上层收到的数据和地址信息等一起发送给下面的数据链路层, 进行后面的处理。
- 数据链路层、物理层:通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。物理层中,将数据的0、1转换为电压和脉冲光传输给物理的传输介质,而相互直连的设备之间使用地址实现传输。这种地址被称为MAC(Media Access Control,介质访问控制) 地址,也可称为物理地址或硬件地址。采用MAC地址,目的是为了识别连接到同一个传输介质上的设备。因此,在这一分层中将包含MAC地址信息的首部附加到从网络层转发过来的数据上,将其发送到网络。
接收端主机B上的处理流程正好与主机A相反,它从物理层开始将接收到的数据逐层发给上一分层进行处理。
真正负责在网络上传输具体数据的是会话层以下的“无名英雄”。 TCP/IP中,网络层与传输层相互协作以确保数据包能够传送到世界各地,实现可靠传输。网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。
每个分层的作用与功能越清晰,规范协议的具体内容就越简单,实现(是指通过软件编码实现具体的协议,使其能够运行于计算机当中) 这些具体协议的工作也将会更加轻松。