协议层次和服务模型

协议层次

网络是一个复杂的系统

  • 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
  • 现实来看,网络的许多构成元素和设备:
  • 主机
  • 路由器
  • 各种媒体的链路
  • 应用
  • 协议
  • 硬件, 软件

【实现思路:

1.把复杂的功能分解为一个个模块,模块之间相互进行平面型的调用(任何一个模块都可以调用任何一个模块所提供的功能服务),然后进行模块化的实现

2.分层的方法来解决,也是复杂的功能分解为一个个模块,但是模块之间仅相邻的两个模块可以相互调用,不允许跨层调用。把功能非常复杂的计算机网络,分解为一个个功能明确的层次,每一层实现了一个或者一组功能,每一层的功能通过层间的接口向上层提供服务。

层次化方式实现复杂网络功能:

  • 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务(功能的一部分,外人可以通过接口使用)
  • 本层协议实体相互交互执行本层的协议动作,目的是实现本层的功能,通过接口为上层提供更好的服务
  • 在实现本层协议的时候,直接利用了下层所提供的服务【通过层间接口访问下层所提供的服务,才能交换PDU,交换PDU包括本层的处理、安排,然后通过层间接口向上层提供更好的服务】【类似师长和士兵】
  • 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务

本层协议实体交互的过程中,应该遵守的动作的集合、规则的集合,我们把它称之为协议。

协议是对等的水平关系,协议的实现借助下层的服务才能实现,协议实现的目的是为了向上层提供更好的服务。

到物理层的时候就直接发送信号了,到最上层也不需要向上层提供服务了。

服务和服务访问点

  • 服务( Service):低层实体向上层实体提供它们之间的通信的能力
    • 服务用户(service user)
    • 服务提供者(service provider )

【服务是垂直的关系】

  • 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的 ——形式

【不同的服务称为原语,比如发送socket、接收socket、关闭socket,都称为原语】

  • 服务访问点 SAP (Services Access Point):上层使用下层提供的服务通过层间接口——地点
    • 例子:邮箱
    • 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
    • 可以有不同的实现,队列
    • 例子:传输层的SAP:端口(port)

【用于下层服务提供者来区分不同上层用户的信息,传过层间的这样一些信息。这些信息我们把它称为服务访问点】

【SAP用于区分不同的发送方,接收方】

服务的类型

  • 面向连接的服务(Connection-oriented Service)
    • 连接(Connection):两个通信实体为进行通信而建立的一种结合
    • 面向连接的服务通信的过程:建立连接,通信,拆除连接
    • 适用范围:对于大的数据块要传输;不适合小的零星报文
    • 特点:保序(但也不尽然)
    • 服务类型:
      • 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
      • 可靠的字节流 远程登陆
      • 不可靠的连接 数字化声音

【TCP,通信前先握手,然后再开始通信】

  • 无连接的服务(Connectionless Service)
    • 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃(例:寄信)
    • 特点:不可靠(但也不尽然)、可能重复、可能失序
    • IP分组,数据包
    • 适用范围:适合传送零星数据
    • 服务类型:
      • 不可靠的数据报 电子方式的函件
      • 有确认的数据报 挂号信
      • 请求回答 信息查询

【UDP】

服务和协议

服务与协议的区别 :

  • 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,服务是垂直的关系【相邻两层之间,在层间接口之间,服务的用户在SAP上使用原语向上层使用下层的服务(下层向上层提供服务)】

【为什么用SAP呢?因为很多用户都可以使用下层的服务,下层服务实体可以同时为多个用户提供服务,那这时候就需要用SAP来区分】

【因为下层向上层提供的服务有各种各样的类型,而且这种类型在使用的过程中有一系列操作的序列,因此必须要以原语的形式加以规范和区分】

  • 协议(protocol) :对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,协议是水平的关系

服务与协议的联系:

  • 本层协议的实现要靠下层提供的服务来实现
  • 本层实体通过协议为上层提供更高级的服务

数据单元

SDU:服务数据单元

ICI:接口控制信息

IDU:接口数据单元

PDU:协议数据单元(最常见)

【一对一:上层来的SDU,前面加上本层需要加上的一些附加的信息(头部),形成本层的PDU】

【和对等层协议实体在交互的过程当中,都是由第n层的PDU来交互的】

【一对多:本层的PDU封装的时候有上限,所以会把SDU分成很多个部分来进行封装】

【多对一:上层传来的SDU都非常小,那么可以把所有SDU封装到一个PDU】

【本层的头部 header 一部分来源于上层的ICI,另一部分来源于一些本层的附加信息。body部分来源于上一层的SDU】

【每一层的PDU都有它特殊的称呼,应用层的PDU叫应用报文(message),传输层的PDU叫报文段(或简称为段),网络层的PDU叫分组,如果网络是无连接方式来工作的又叫数据报(IP数据报),链路层的PDU叫帧】

【物理层直接使用物理媒体来传输物理信号,把数字信号转成物理信号来传播】

分层处理和实现复杂系统的好处?

对付复杂的系统

  • 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
    • 分层参考模型
  • 结构化:模块化更易于维护和系统升级
    • 改变某一层服务的实现不影响系统中的其他层次
      • 对于其他层次而言是透明的
    • 如改变登机程序并不影响系统的其他部分
      • 改变2个秘书使用的通信方式不影响2个翻译的工作
      • 改变2个翻译使用的语言也不影响上下2个层次的工作
  • 分层思想被认为有害的地方:不同层次之间信息的交换带来的效率会比较低等

【利大于弊】

Internet协议栈

  • 应用层:网络应用【完成应用报文之间的交互】
    • 为人类用户或者其他应用进程提供网络应用服务
    • FTP,SMTP,HTTP,DNS
  • 传输层:主机之间的数据传输
    • 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信【借助于socket的一些机制】
    • TCP,UDP【把网络层提供的不可靠的服务,转变为向上层提供可靠的服务】
  • 网络层:为数据报从源到目的选择路由【在链路层提供的相邻两点之间的传输的基础上,传输以分组为单位的端到端的数据传输】
    • 主机主机之间的通信,端到端通信,不可靠
    • IP,路由协议
  • 链路层:相邻网络节点间的数据传输【在物理层的基础上,在相邻两点之间,传输以帧为单位的数据】
    • 2个相邻2点的通信,点到点通信,可靠或者不可靠
    • 点对点协议PPP(Point to Point Protocol),802.11(wifi),Ethernet
  • 物理层:在线路上传送bit

ISO/OSI参考模型

  • 表示层:允许应用解释传输的数据,e.g.,加密,压缩,机器相关的表示转换【关心语义方面的信息,不关心怎么编码的】
  • 会话层:数据交换的同步,检查点,恢复
  • 互联网协议栈(TCP/IP协议栈)没有这两层!

【这两层在TCP/IP协议栈中时应用层自己去做】

封装和解封装

源端要进行封装,目标端要进行解封装。交换机的时候两层的解封装再封装,路由器的时候三层的解封装再封装。

各层次的协议数据单元

  • 应用层:报文(message)
  • 传输层:报文段(segment):TCP段、UDP数据报
  • 网络层:分组(packet)(如果无连接方式:数据报datagram)
  • 数据链路层:帧(frame)
  • 物理层:位(bit)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值