协议与层次划分
为了使计算机网络有条不紊地交换数据,必须要实现遵循事先约定好的规则,这些规则明确了所交换数据的格式问题以及同步问题(这里的同步是时序的概念,先不要纠结,是一种广义的概念,在一定条件下应当发生什么事件)。为数据交换指定的规则标准我们称为网络协议。网络协议的三要素是:
- 语法:数据和控制信息的结构和格式,就像编程一样,如何去表示一个if条件结构或者一个变量一样,你要遵循一定的格式。所以说是如何讲。
- 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应,就像链路层的控制信差错分析等,就是讲什么、干什么。
- 同步:事件实现顺序得到详细信息。定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输!
ARPANET的经验告诉我们,实现一个复杂的网络协议,协议应该是分层的。各层之间独立,层之间提供SAP(server access point)。总的来说,计算机网络的各层以及协议的集合就是网络的体系结构。体系结构是抽象得到,实体则是具体的,实体就是究竟使用什么硬件或软件,完成计算机网络及其构件所应完成的功能。它是真正运行的软硬件。
OSI是七层,TCP/IP是四层,但总的来说学好以下五层就懂了:
- 应用层:定义应用进程间的交互规则
- 运输层:为两台计算机的进程间提供通信服务。
- 网络层:负责为分组交换网上的两台计算机提供通信服务。还包括路由选择。
- 数据链路层:两台计算机的数据传输是在一段一段的链路上传输的,如何在各链路上实现传输,以及添加必要的控制信息(同步信息、地址信息、差错控制等),就是它的责任。
- 物理层:这里面就是比特流了,考虑多大电压表示0和1,以及电缆插头的引脚如何连接等问题。
- 再加一个:0层:电信号、光信号、传输媒体等载体。
之后有几个术语要说:
- 实体:表示任何发送或接受数据的软硬件,网卡呀、应用程序呀等等
- 协议:控制两个对等实体进行通信的集合,协议时水平的
- 服务:服务是由下层向上层通过层间接口提供的,服务是垂直的。只有那些高层能看得见的才叫服务。
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令叫做服务原语。
- 服务访问点:相邻两层的实体信息交换的地方叫做服务访问点(SAP)
- SDU(server data unit):层与层之间交换的数据单位
- PDU(protocol data unit):对等层之间交换的数据单元。
计算机网络的重要特点就是:所有不利的条件都要事先计划好。