计网体系结构专用术语
计算机网络体系结构的专用术语是 源于 OSI 七层体系模型结构的专用术语,也适用于 TCP/IP 的四层网络结构和五层原理体系结构。
将这些专用术语分为最具有代表性的三类:实体、协议、服务
1. 实体与对等实体
实体是指任何可发送或接收信息的硬件或软件进程,在下图所示的通信双方五层原理体系结构中的各层,我们用标有字母的小方格表示实体。
有了实体的概念就可以引出对等实体的概念了, 对等实体是指通信双方相同层次中的实体。
如下图所示:
- 实体A 与 实体F 互为对等实体
- 实体B 与 实体G 互为对等实体
- 实体C 与 实体H 互为对等实体
- 实体D 与 实体I 互为对等实体
那么根据对等实体的概念,可得知收发双方物理层和数据链路层的网卡互为对等实体,属于收发双方应用层的浏览器进程和 Web服务器进程互为对等实体。
2. 协议
协议是控制两个对等实体在“水平方向”进行“逻辑通信”的规则集合。
- 物理层的对等实体使用物理层协议通信,例如传统以太网使用曼彻斯特编码
- 数据链路层对等实体使用数据链路层协议进行通信,例如传统以太网使用 CSMA/CD 协议
- 网络层对等实体使用网络层协议进行逻辑通信,例如 IP
- 运输层对等实体使用运输层协议进行逻辑通信,例如 TCP 协议或 UDP 协议
- 应用层对等实体使用应用层协议进行逻辑通信,例如 HTTP 协议,FTP 协议以及 SMTP 协议等
注意: 将两个对等实体间的通信称为“逻辑通信”,是因为这种通信其实并不存在,他只是我们假设出来的一种通信。这样做的目的,是方便我们单独研究网络体系结构某一层时,不用考虑其它层。例如,当研究运输层时,可以假设只有运输层的对等实体在进行逻辑通信,而不用顾及其他各层。
计算机网络协议有三个要素。他们分别是 语法 、语义 以及 同步
语法:
语法用来定义通信双方所交换信息的格式。如下图所示的是IPv4数据报格式,其中每一个小格子称为字段或域,数字表示字段的长度,单位是位(也就是比特)。语法就定义了这些小格子的长度和先后顺序。
语义:
语义用来定义通信双方所要完成的操作。如下图所示的是主机访问 Web服务器的简单示意图“
- 主机给 Web服务器发送一个 HTTP 的 GET 请求报文
- Web服务器收到 GET 请求报文后对齐进行解析,就知道了这是一个 HTTP 的 GET 请求报文
- Web服务器就在自身内部查找主机所请求的内容,并将所找到的内容封装在 HTTP的响应报文中发送给主机
- 主机收到 HTTP 响应报文后对齐进行解析和渲染显示
这个例子就可以体现出通信双方收到数据包后应完成怎样的操作,对于本例,这是 HTTP 协议的语义所定义的。
同步:
在协议的控制下,两个对等实体在水平方向的逻辑通信使得本层能够向上一层提供服务。 要实现本层协议,还需要使用下面一层所提供的服务。
- 物理层对等实体在物理层协议的控制下进行逻辑通信,进而向数据链路层提供服务
- 数据链路层对等实体“享受”物理层提供的服务,并在数据链路层协议的控制下进行逻辑通信,进而向网络层提供服务
- 网络层对等实体“享受”数据链路层提供的服务,并在网络层协议的控制下进行逻辑通信,进而向运输层提供服务
- 运输层对等实体“享受”网络层提供的服务,并在运输层协议的控制下进行逻辑通信,进而向应用层提供服务
- 应用层对等实体“享受”运输层提供的服务,并在应用层协议的控制下进行逻辑通信,给其上层(用户)提供服务
注意: 协议是“水平”的,而服务是“垂直”的。实体看得见下层提供的服务,但不知道(也不关心)实现该服务的具体协议。换句话说,下层的协议对上层的实体是“透明”的。
在同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点。服务访问点用于区分不同的服务类型。
例如:
- 数据链路层的服务访问点为帧的“类型”字段
- 网络层的服务访问点为IP数据报的“协议”字段
- 运输层的服务访问点为“端口号”字段。
上层要是用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。
在计算机网络体系结构中,通信双方的数据包也有专门的术语。
对等层次之间传送的数据包成为该层的协议数据单元(Protocol Data Unit, PDU)。
例如:
- 物理层对等实体间的逻辑通信的数据包称为比特流(bit stream)
- 数据链路层对等实体间逻辑通信的数据包称为帧(frame)
- 网络层对等实体间逻辑通信的数据包称为分组(packet),如果使用 IP协议,也称为 IP 数据报
- 运输层对等实体间逻辑通信的数据包一般根据协议而定
- 若使用 TCP 协议,则称为 TCP 报文段(segment)
- 若使用 UDP 协议,则称为 UDP 用户数据报(datagram)
- 应用层对等实体间逻辑通信的数据包一般称为应用报文(messgae)
上述各层数据包可以统称为协议数据单元
在同一系统内,层与层之间交换的数据包称为服务数据单元(Service Data Unit, SDU)。
多个 SDU 可以合成一个 PDU,而一个 SDU 也可以划分为几个 PDU。