协议
当两个实体需要通信的时候,则需要协议。而当通信比较复杂的时候,我们则需要把通信的复杂任务分为多层。在这种情况下,每层都需要各自的协议。
下面给出两个例子,
一个是简单的通信,只在一层完成,
另一个是需要三层来完成通信。
例1:
Maria说西班牙语,Ann说英语,但是他们都懂手语。因此,他们通过手势来进行交流。偶尔,他们使用双语字典。
如此,他们之间的面对面的通信在一层就能完成,如下图所示:
例2:
当Maria和Ann离得比较远的时候,此时则需要两种机器,一种是完成西班牙语到密文的转换,以及密文到西班牙语的转换,另一种是完成英语到密文的转换,以及密文到英语的转换。Maria拿着第一种机器,Ann拿着第二种机器。则此时她们之间的通信过程如下(分三层完成):
- Maria用西班牙语写了一封信,
- 然后用转换机器把该封信转换为密文的信,
- Maria把信放入信封中,然后投递到邮局,
- 邮局把这封信运输到Ann所在的城市邮局,
- 邮局把信送到Ann所在的住处,
- Ann用她自己的机器把信中的密文转换为英文,
- Ann阅读该封信。
Ann写信给Maria的过程也是如此。该三层通信过程如下图:
在发送端,各层利用其下层提供的服务,最高层利用中间层提供的服务,中间层利用底层提供的服务。底层利用运输载体的服务。
OSI模型
ISO是一个组织,OSI是一模型
OSI模型的作用是在不要求改变基本的硬件和软件的逻辑情况下,以便于不同的系统进行通信。
OSI模式不是一个协议,它是一个理解和设计一个网络架构的模型。该模型建立的架构要灵活、稳健和互操作。OSI模型作为是OSI栈中协议创建的基础。
OSI模型是一分层的框架,用于网络系统的设计,以让所有不同类型的计算机系统之间进行通信。它由7个分开的,但相关的层组成,如下图所示:
各层分别定义了在网络中移动信息的处理过程的一部分。
分层架构:
OSI模型有七层组成:Physical(1), data link(2), network(3), transport(4), session(5),presentation(6), application(7)。
下图显示了当发送信息从设备A到B时涉及的各层。
当信息从设备A传输到B,它经过了很多中间节点。这些中间节点通常只涉及OSI模型的最下面的三层。
层与层之间的通信:
在上图中,设备A发信息到设备B(通过中间节点)。在发送端,信息从第七层到第一层,在第一层整个包转换为适合传输的格式,然后传输到接收端。在接收端,信息从第一层直到第七层。
层的组织
七层可以认为属于三个子组。
层1,2,3可以认为是网络支持层(network support layers),该子组处理从一个设备到另一个设备移动数据时的物理特性方面(像电子特性,物理连接,物理寻址,传输时间和可靠性),
层5,6,7可以认为是用户支持层,该子组用于处理不同软件系统之间互操作。
层4,连接这两个子层,保证底层以传输的信息格式上层可以使用。
上层总是会使用软件实现,而底层是硬件和软件的结合来实现,除了物理层以外,物理层完全是硬件来实现。
下图给出了OSI层的整体示意图。D7表示第7层的数据单元,D6表示第6层的数据单元,以此类推,
处理过程从第7层(应用层)开始,然后逐层向下移动。在各层,各数据单元会加上数据头,在第2层,会加入一个trailer。当格式化的数据单元传输到物理层(第1层),将该数据单元转换为电气特性的信号,然后通过物理连接传输出去。
当到达目的地以后,信号传输到第1层,然后转换为数字格式,数据单元移回到OSI层,随着各数据块到达更高的层,附属于各层的数据单元的头(header)和尾(trailer)将被去掉,同时采取适合的方式进行数据块的处理。当到达第7层的时候,数据单元一适当的格式到达应用软件处,让接受者可以使用。
封装:
上图同时揭示了OSI模型中数据通信的另一个方面:封装。
第7层的数据包将会用第6层的包格式进行封装,第6层的整个包将会以第5层的包格式进行封装,以此类推。
OSI模型中各层功能:
- 物理层
物理层协调所需的功能,以通过物理介质传输bit流。它处理接口和传输媒介的机制和电气规格。同时规定了规程和功能,以使物理设备和接口必须执行传输产生。
物理层也关注如下方面:
- 接口和媒介的物理特性
- Bits的表示
- 数据速率
- Bits的同步
- 线路配置
- 物理拓扑
Mesh拓扑
星型拓扑
环型拓扑
总线拓扑
- 传输模式
单工模式
半双工模式
全双工模式
数据链路层转换物理层从一个未加工的传输设备到可靠的连接,使物理层无差错的来上上层(网络层)。数据链路层的其他职责如下:
- 分帧
- 物理寻址
- 流控制
- 错误控制
- 接入控制
3.网络层
网络层负责包的源到目的的递送。可能跨越多个网络。而数据链路层监督同一网络下的两个系统之间包的递送,网络层确保各个包可以从它的原始点到最终点。
网络层的其他职责如下:
- 逻辑寻址
- 路由
4.传输层
传输层负责的是整个信息的进程与进程的递送。一个进程是在主机上运行的一个应用程序,而网络层监督的是单个包的源到目的的递送,它不能识别这些包之间的关系。另一方面,传输层要确保整个信息完整的,有序的到达。
传输层的其他职责如下:
- 服务点寻址:计算机通常同时运行几个程序,因此,源到目的的递送不仅从一个计算机到另一个计算机的递送,而且是从一个特定的进程(运行的程序)到另一个计算机上的进程的递送,因此,传输层头必须有一个服务点地址(端口地址)。网络层从正确的计算机上获得各个包,传输层在获得整个信息到正确的进程。
- 分段和重组
- 连接控制
- 流控制
- 错误控制
5.会话层
会话层是网络对话控制器,它建立,维护和同步通信系统之间的交互,会话层的详细职责如下:
- 对话控制
- 同步
6.表示层
表示层关注的是两个系统之间交互信息的语法和语义。
表示层的详细职责如下:
- 转化
- 加密
- 压缩
7.应用层
应用层用于确保用户可以接入网络。它提供用户接口和服务支持,像E-mail,远程文件的存取和转移,共享数据库管理和其他类型分布的信息服务。应用层的详细职责如下:
- 网络虚拟终端
- 文件转移,存取和管理(FTAM)
- E-mail服务
- 目录服务
OSI分层总结
下图对OSI各层的职责进行了总结。