协议层次
网络是一个复杂的系统!
网络功能繁杂:数字信号的物理信
号承载、点到点、路由、rdt、进程区分、应用等
现实来看,网络的许多构成元素和设备:
主机
路由器
各种媒体的链路
应用
协议
硬件, 软件
Q:如何组织和实现这个复杂的网络功能?
模块化 分层
现实生活中的例子:航线系统
![[Pasted image 20240422185958.png]]
层次化方式实现复杂网络功能:
将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一
组功能,功能中有其上层可以使用的功能:服务
本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,
通过接口为上层提供更好的服务
在实现本层协议的时候,直接利用了下层所提供的服务
本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功
能(上层可以利用的)==+==更下层所提供的服务
例子2:两位异地哲学家的交流
![[Pasted image 20240422185414.png|450]]
最下层是通信层:解决异地通信
第二层是翻译层:
哲学家层:交流
好处:大问题分为小问题;利于新技术
服务和服务访问点
服务( Service):低层实体向上层实体提供它们之间的
通信的能力
服务用户(service user)
服务提供者(service provider )
原语(primitive):上层使用下层服务的形式,高层使用
低层提供的服务,以及低层向高层提供服务都是通过
服务访问原语来进行交互的—形式
服务访问点 SAP (Services Access Point) :上层
使用下层提供的服务通过层间的接口—地点;
例子:邮箱
地址(address):下层的一个实体支撑着上层的多个实体,
SAP有标志不同上层实体的作用
(A1,A2,A3,三个应用,TCP通过SAP确定给谁服务。。。)
可以有不同的实现,队列
例子:传输层的SAP: 端口(port)
服务的类型
面向连接的服务和无连接的服务-方式
面向连接的服务( Connection-oriented Service)
(两个应用进程使用下层服务通信之前要先握手)
(eg:TCP)
连接(Connection):
两个通信实体为进行通信而建立的一种结合
面向连接的服务通信的过程:建立连接,通信,拆除连接
面向连接的服务的例子:网络层的连接被成为虚电路
适用范围:对于大的数据块要传输; 不适合小的零星报文
特点:保序
服务类型:
可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
可靠的字节流 远程登录
不可靠的连接 数字化声音
无连接的服务(Connectionless Service)
(eg: UDP )
无连接服务:两个对等层实体在通信前不需要建
立一个连接,不预留资源;不需要通信双方都是
活跃;(例:寄信)
特点:不可靠、可能重复、可能失序
IP分组,数据包;
适用范围:适合传送零星数据;
服务类型:
不可靠的数据报 电子方式的函件
有确认的数据报 挂号信
请求回答 信息查询
服务和协议
服务与协议的区别
服务(Service):低层实体向上层实体提供它们之间的
通信的能力,是通过原语(primitive)来操作的,垂直
协议(protocol) :对等层实体(peer entity)之间在相互
通信的过程中,需要遵循的规则的集合,水平
服务与协议的联系
本层协议的实现要靠下层提供的服务来实现
本层实体通过协议为上层提供更高级的服务
数据单元(DU)
![[Pasted image 20240422193325.png]]
SAP:服务访问点
layer:层
interface:接口
protocol:协议
SDU:服务数据单元
IDU:接口数据单元
PDU:协议数据单元
(应用层PDU:报文;传输层PDU:报文段;网络层PDU:数据报…)
ICI:接口控制信息
第n层实体在其第n层协议中交换n-PDU
上层来了SDU,通过接口,SDU加上第n层的头部,加在一起形成第n层PDU
header怎么来:一部分上层ICI,一部分本层附加上
![[Pasted image 20240422195004.png]]
分层处理和实现复杂系统的好处?
对付复杂的系统
概念化:结构清晰,便于标示网络组件,以及描述其相互关系
分层参考模型
结构化:模块化更易于维护和系统升级
改变某一层服务的实现不影响系统中的其他层次
对于其他层次而言是透明的
如改变登机程序并不影响系统的其它部分
改变2个秘书使用的通信方式不影响2个翻译的工作
改变2个翻译使用的语言也不影响上下2个层次的工作
分层思想被认为有害的地方?
效率低。。。
好处远大于坏处
Internet 协议栈
应用层: 网络应用
为人类用户或者其他应用进程提供网络应用服务
FTP, SMTP, HTTP,DNS
传输层: 主机之间的数据传输
(1.主机到主机的基础上进程到进程的区分,2.把网络层可能不可靠的服务转变为可靠的服务,提供给应用层)
在网络层提供的端到端通信基础上,细分为进程到进程,
将不可靠的通信变成可靠地通信
TCP, UDP
网络层: 为数据报从源到目的选择路
(转发和路由)
(链路层基础上,源主机到目标主机的传输,端到端,分组)
主机主机之间的通信,端到端通信,不可靠
IP, 路由协议
链路层: 相邻网络节点间的数据传输
(物理层基础之上相邻两点【a到离它最近的路由器…】之间;传输以帧为单位的数据)
2个相邻2点的通信,点到点通信,可靠或不可靠
点对对协议PPP, 802.11(wifi), Ethernet
物理层: 在线路上传送bit(把数字数据转换为物理信号,传送bit)
![[Pasted image 20240422200617.png|150]]
ISO/OSI 参考模型
![[Pasted image 20240422200928.png|150]]
表示层: 允许应用解释传输的数据
e.g., 加密,压缩,机器相关的表示转换
会话层: 数据交换的同步,检查点,恢复
互联网协议栈没有这两层!
这些服务,如果需要的话,必须被应用实现
需要吗?
封装和解封装
![[Pasted image 20240422201500.png]]
封装 (encapsulation)
在发送主机端, 一个应用层报文 (application- layer message) (图 24 中的 M)被传送给运输层 在最简单的情况下,运输层收取到报文并附上附加信息(所谓运输层首部信息,图 1-24 中的 Ht )’ 该首部将被接收端的运输层使用 应用层报文和运输层首部信息 道构成了运输层报文段 (transportlayer segment) 运输层报文段因此封装了应用层报文 附加的信息也许包括了下列信息:允许接收端运输层向上向适当的应用程序交付报文的信息; 差错检测位信息,该信息让接收方能够判断报文中的比特是否在途中已被改变 运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息(图 1-24 中的 )’ 生成了网络层数据报 (network-layer datagram) 该数据报接下来被传递给链路层,链路层(自然而然地)增加它自己的链路层首部信息并生成链路层帧 (li nk layer frame) 所以我们看到,在每层,一个分组具有两种类型的字段 首部字段和 有效载荷字段 (payload field) 有效载荷通常是来自上 层的分组
各层次的协议数据单元
应用层:报文(message)
传输层:报文段(segment):TCP段,UDP数据报
网络层:分组packet(如果无连接方式:数据报datagram)
数据链路层:帧(frame)
物理层:位(bit)(不重要)