1.7 协议层次和服务模型

协议层次与服务模型解析

1.协议层次

2.服务模型

3.网络服务点(SAP)

4.数据单元

5.Internet协议栈


1.协议层次

1).网络是一个复杂的系统

   - 网络功能繁杂: 数字信号的物理信号承载, 点到点, 路由, 进程区分等

   - 现实来看, 网络是由许多元素和设备构成(硬件和软件)

   	 a.应用  b.协议 c.主机 d.各种媒体的链路 e.路由器

2).问题: 如何组织和实现这个复杂的网络功能

   a.通过模块化的方式, 将一个复杂的功能分为一个个模块, 模块之间相互调用

   b.通过分层的方式, 相邻的两层模块互相调用, 通过接口向上层提供服务

通过两位异地哲学家交流的实例描述分层

在这里插入图片描述

a.秘书层解决异地通讯

b.翻译层负责将哲学家语言转化为公共的语言

c.哲学家层交换哲学思想

上面的实例类比网络, 将复杂的功能分成功能明确的层次, 每一层实现了其中一个或一组功能; 实现本层功能的时候, 直接

利用了下层所提供的服务

2.服务模型

a.对等层传递数据单元借助下层所提供的服务

b.本层对等实体交换数据应遵守的规则集合称为协议

c.应用层是整个网络存在的理由, 物理层是网络协议栈中最低的层次

1).服务
a.服务(Service)表示低层实体向上层实体提供它们之间通信的能力

  - 服务用户(Service user)

  - 服务提供者(Service provider)

b.下层向上层提供什么类型的服务通过原语(原语表示操作系统向应用进程提供的函数)实现 
2).服务模型
计算机网络主要存在两种经典服务模型

在这里插入图片描述


在这里插入图片描述


3).服务和协议
服务与协议的区别

  - 服务(Service)表示低层实体向上层实体提供它们之间通信的能力, 是通过原语(primitive)来操作的, 垂直

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

3.服务访问点

1).服务访问点简介

服务访问点是同一台计算中, 相邻两层之间进行交互和传递信息的逻辑接口; 可以将它想象成:

a.邮筒

  你想寄信(发送数据), 不会直接将信交给邮局局长, 而是投进街边的邮筒; 这个邮筒就是你和邮局服务之间的一个访问点

b.银行窗口

  你要存钱(请求服务), 不会直接进入银行的金库, 而是到柜台办理; 这个窗口就是你和银行之间的一个访问点

计算机网络中, 每一层都为它的上一层提供特定的服务; 而上层要使用下层的服务, 就必须通过一个明确的地点或接口, 这

个地点就是SAP

2).服务访问点的作用

a.解耦与抽象, 下层服务的具体实现方式对上层的调用者是透明的, 上层(如传输层)不需要知道下层(网络层)是如何路由数

据的, 它只需要知道通过这个SAP, 我就能把数据发出去

b.一个层可以同时为多个上层实体提供服务, SAP就像一个门牌号, 确保数据被正确地交付给上层的哪个应用程序

  (传输层给网络层提供的服务访问点是端口号, 端口号用于区分不同的应用程序)

4.数据单元

a.SDU(Server Data Unit - 服务数据单元)

  上层交给本层处理的数据块, 本层的服务器对象; 接收时, 本层PDU去掉头部/尾部后剩下的就是给上层的SDU

b.PDU(Protocol Data Unit - 协议数据单元)

  本层协议实体之间的交换的数据块, 它是在上层传递的SDU基础上增加了本层的操作指令(PCI) PDU = SDU + PCI

c.ICI(接口控制信息)
 
  它用于协调相邻两层在本地的交互, 告诉下层如何处理即将传递的SDU或告诉上层关于接收到的SDU的附加信息, 不会被封

  装进本层的PDU

在这里插入图片描述

1).SDU比较大, 会将SDU分成一个个的小块, 然后依次添加本层的控制信息(形成头部)

2).SDU比较小, 将若干个SDU合并, 然后添加本层的控制信息(形成头部)

每一层的数据单元都有一个统一的名称, 叫做协议数据单元(PDU); 各层给PDU起的特定名字:

a.应用层: 报文(message), 应用程序想要发送的完整信息(原始数据)

b.传输层: 段/数据报  报文段(segment), TCP段或UDP数据报

  - 段(Segment)指TCP协议封装后的数据单元, 将数据分成一段一段的

  - 数据报(Datagram)指UDP协议封装后的数据单元

c.网络层: 包(Packet)或数据报(Datagram)

  传输层的段/数据报加上IP头部后形成IP数据包, Packet是最通用的叫法

d.数据链路层: 帧(frame)

e.物理层: 位(bit)

可以用一个寄送快递的过程来说明不同层的数据:

a.应用层(报文)

  你要寄的物品本身, 比如一本书; 这就是你的报文(Message)

b.传输层(/数据报)

  你找来一个纸箱, 把书放进去, 并在箱子上写上收件人和寄件人的姓名和电话(TCP/UDP端口号), 确保东西能送到对方这个

人手里; 这个打包好的纸箱就是一个段(Segment)

c.网络层()

  快递公司接手后, 给你的纸箱贴上快递单; 快递单上写的是收件人和寄件人的详细地址(IP地址); 现在这个贴着快递单的

箱子就是一个包(Packet)

d.数据链路层()

  快递员根据地址, 决定你的包裹要先送到哪个中转站(交换机/路由器); 他可能会把这个包裹和其他目的地相近的包裹一起

装进一个更大的麻袋(), 并在麻袋上贴上标签, 写明这个麻袋是从"A中转站""B中转站"(MAC地址); 这个麻袋就是一个

帧(Frame)

e.物理层(比特流)

  装载着麻袋的卡车(网线、光纤)在路上行驶, 卡车运送的就是最终的比特流(Bitstream)

5.Internet协议栈

a.物理层

  物理介质上传输原始的比特流, 它不关心数据的含义, 只负责将比特流从一个地方搬到另一个地方
  
b.链路层

  负责在同一个局域网内, 相邻的设备之间的数据传输
  
c.网络层

  实现数据从源主机到目标主机的逻辑通信, 即使它们在不同的网络上; 该层关心的是如何跨越多个网络找到目标主机

d.传输层 TCP/UDP

  提供"端到端"的通信服务, 这里的端表示主机的端口

e.应用层(网络应用) HTTP

  给应用进程提供网络应用服务, 该层关心的数据的语义和语法, 但不关心数据如何传输

a.表示层

  允许应用解释传输的数据; 比如加密, 压缩转换
  
b.会话层

  协调和管理应用程序之间的对话流程; 比如协调发言的方式, 全双工表示双方同时说话, 半双工表示轮流说话, 单工表示

  单向发言

在这里插入图片描述

IP地址和MAC地址:

数据从源主机到目标主机的旅程, 就像一场接力赛:

a.网络层(IP地址)是教练, 他手里拿着完整的接力赛路线图(全球路由表), 知道最终要跑向哪个终点(目标IP); 他告诉每一

棒运动员:"我们的最终目标是那个方向"

b.数据链路层(MAC地址)是当前正在跑的运动员, 他的任务很简单: 盯着路线图, 只知道把接力棒(数据帧)交给下一个接力区

的运动员(下一跳的路由器); 他不需要知道全程, 只管好当前这一段

每一次数据包从一个路由器转发到下一个路由器, 它的IP地址(源和目标)都是不变的, 但它的MAC地址(源和目标的MAC)在每

一段链路上都在变化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值