<计算机网络自顶向下> 协议层次和服务模型

协议层次

网络功能繁杂,而且计算机网络的构成元素和组成设备很多:主机、路由器、链路、协议、软硬件、应用。计算机网络是非常复杂的,有两种简单化方法:

  • 模块化
  • 分层:大问题转化为专门的子问题、可以替换原有的层,效率更高。
    • 正式描述:把网络复杂的功能分为若干明确的层次,每一层实现一个或者一组功能,上层可以调用下面层功能,功能的子集成为service服务。也就是说下层向上层提供服务。对等层模块通过协议交换信息从而实现功能,对等层交换报文或者PDU等需要借助下层的服务,而交流和下层服务结合起来的该层还可以向更上层提供服务,这样一层摞一层实现更复杂的服务.
    • 本层协议实体交互需要遵循的动作的规则的集合是协议,协议是为了向上层提供更好的服务。
    • 协议是水平关系,协议的实现是要借助下层的服务(在实现本层协议的时候直接利用了下层所提供的服务),协议实现的目的是为了向上层提供更好地服务。这就是为什么应用层是网络存在的理由,这是因为应用层是最高层次。

服务和服务访问点 

  • 服务:底层实体向上层实体提供它们之间的通信的能力
    • 服务用户 service user: 例如TCP实体上有很多应用,TCP实体想这些应用提供服务,这些应用实体就是服务用户。
    • 服务提供者 service provider: 在本例中,TCP就是提供者
  • 服务访问点 SAP(Service Access Point): 在TCP的那个例子中,来了数据后要分辨出TCP的报文要给那个应用,就是同应用提供服务的接口上有一系列的点用来区分不同的上层用户。服务访问点就相当于寄快递表上的地址和寄送者,说明寄和收是谁(顺丰服务的客户很多需要区分)。
  • 服务用户采用原语primitive来接收服务,同是服务提供者也是通过原语来提供服务,原语是用来区分服务的类型的相当于函数调用。就相当于顺丰快递有很多形式提供服务,比如加急件,到付件,或者说寄送的物品是什么等等。在应用层来说就是socket API

服务的类型

  • 面向连接的服务:握手完建立连接再请求
  • 无连接的服务:不握手直接请求

服务和协议

  • 服务和协议的区别:服务是通过层间的接口在系统的内部在interface的SAP上通过原语的形式向上层提供服务(垂直的关系),协议是对等层实体在通讯中应当遵循的规则的集合(水平的关系) 
  • 服务和协议的联系:实现协议需要利用下层服务,实现协议为上层提供更好的服务

数据单元 DU (Data Unit)

  • n-tier-PDU (Protocol Data Unit) 协议数据单元= SDU+本层的控制信息
    • IDU (Interface Data Unit) = SDU(Service Data Unit) + ICI(Interface Data Unit) 
      • SDU:服务数据单元,是上层要求传输的数据。和ICI一同穿过层间接口后再加上一些本层的附加的控制信息header(用于和对等层实体交换信息),形成了本层的PDU。
      • ICI:接口控制信息,在传SDU的时候可能要穿过层间的接口所以要包含这个以便于更加顺利的穿过层间接口,SDU穿过这个层间接口以后ICI就没用了,或者是变换一种方式
  • SDU下到下一层的时候有三种关系
    • 多对一:SDU太小下面需要合成一个
    • 一对一:SDU大小正好
    • 一对多:SDU太大需要分解

  • 协议数据单元在网络协议不同层名称不同:
    • 在应用层是应用报文 message
    • 在传输层叫报文段/段 segement
    • 在网络层叫分组packet,如果网络是无连接方式工作叫做数据报diagram
    • 在链路层叫帧 frame
    • 物理层叫位bit

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

  • 概念化:结构清晰,便于表示网络组件以及描述其相互关系
  • 结构化:模块坏更易于维护和系统升级,比如翻译初期是寄信翻译,后面可以电报翻译,到电话翻译再到视频通话,文件转发......也就是说之要层间接口不变,改变某一层服务的视线不影响系统中其他层次,这种改变对于其他层次来说是透明的(它们不知道)
  • 问题:分层效率低,但是好处>坏处

Internet 协议栈

互联网是以TCP/IP为代表的协议套构成的网络,该层次把计算机网络的功能分为这几个层次

  • 物理层:发送端将上层交下来的帧frame中的每个或者一组比特变成物理信号,在介质当中穿给对等实体;接收端把物理媒体上承载的物理信号转为数字信号。
  • 链路层:在物理层传输基础之上在相邻两点(相邻两点:比如计算机连到整个楼层的交换机这两个之间的关系是p2p的关系)之间传输以帧为单位的数据,因为物理层传输的是比特,要判断哪些比特组合是帧的开始哪些是结尾。解决了相邻两点传输的问题。(点对点协议PPP, 802.11[WIFI], Ethernet)
  • 网络层:在链路层所提供的相邻两点之间的数据传输的基础上传输以分组为单位的源主机到目标主机端到端的数据传输。解决了端到端的传输的问题。(IP, 路由协议)
  • 传输层:在网络层所提供的主机之间端到端数据传输的基础之上,细分为进程到进程,进行进程到进程的区分。

    位于两台网络主机间的真正数据通信主体不是这两台主机,而是两台主机中的各种网络应用进程。因为在同一时刻,两主机间可以进行多个应用通信
    而这里的应用进程识别就要依靠“传输层”了,它就是通过“端口”将不同应用进程进行对应的。

    --引用自《深入理解计算机网络》之传输层总结 - 知乎 (zhihu.com)

    同时把网络层提供的不可靠的服务变成可靠的服务。解决了网络传输不可靠的问题。(TCP,UDP)
  • 应用层:在传输层提供进程到进程可靠服务的基础之上提供网络应用服务。(FTP,SMTP,HTTP,DNS)

 ISO/OSI参考模型

在TCP/IP协议栈中是靠应用程序自己做这些事情:

  • 表示层:应用层仅仅关注语义方面的信息,核心内容,不关系怎么表达,具体编码。表示层需要对数据格式进行编译,对收到或者发出的数据根据应用层的特征进行处理,比如加密、压缩、机器相关的表示转换。
  • 会话层:建立会话维持会话。这个包括三个功能:

建立会话:A、B两台网络设备之间要通信,要建立一条会话供他们使用,在建立会话的过程中也会有身份验证,权限鉴定等环节;

保持会话:通信会话建立后,通信双方开始传递数据,当数据传递完成后,OSI会话层不一定会立刻将两者这条通信会话断开,它会根据应用程序和应用层的设置对该会话进行维护,在会话维持期间两者可以随时使用这条会话传输局;

断开会话:当应用程序或应用层规定的超时时间到期后,OSI会话层才会释放这条会话。或者A、B重启、关机、手动执行断开连接的操作时,OSI会话层也会将A、B之间的会话断开。

--引用自OSI第五层:会话层功能及作用_osi会话层的主要功能-CSDN博客

封装和解封装 

从源主机想另外一个主机发送的报文逻辑上来看,应用进程"直接"向另一个应用进程发送报文。这是逻辑的通信,实际上不是直接传输的,是通过层间的接口基于下层提供的服务一层一层的传输的,交到下层的时候下层需要加上自己的控制信息,然后形成本层的协议数据单元。头部信息是本层形成的和上次那个ICI通过层级接口的时候转换来的。

首先数据传到下面已经在每一层都被加了头部信息,物理层一个一个比特打出去,通过链路层交换机,它的物理层要把比特还原成相应的链路层的帧,物理层把帧取出来,链路层就知道整个帧的帧头和数据部分,然后一个交换机从网口出来一个帧,这个帧有帧头和帧尾,中间是帧是数据部分,帧头中有目标地址,然后通过交换机查询站表(交换表),决定放出的端口,这个过程是首先要交给这个端口的网卡,然后这个端口再把它封装成这条链路的帧,再交给下面的物理层形成物理信号打出去,又到了下一跳。到了路由器是有三层的,物理层形成帧,然后到了链路层把帧取出来数据部分送到网络层,网络层分析分组的头部(有目标ip地址等控制信息),然后决定分组放出去的链路,放去下一跳,把分组交给相应的网卡,网卡拿到分组后封装,把网卡的分组取出来,往下到链路层然后再变成比特由物理层打出去比特。最后到了目标主机,从下往上反着一层一层拿出来头部信息最后到应用层只剩信息了。

也就是说经过路由器需要完成一个三层的解封装在封装,链路层交换机就是两层的解封装再封装

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值