协议层次
网络功能繁杂,而且计算机网络的构成元素和组成设备很多:主机、路由器、链路、协议、软硬件、应用。计算机网络是非常复杂的,有两种简单化方法:
- 模块化
- 分层:大问题转化为专门的子问题、可以替换原有的层,效率更高。
- 正式描述:把网络复杂的功能分为若干明确的层次,每一层实现一个或者一组功能,上层可以调用下面层功能,功能的子集成为service服务。也就是说下层向上层提供服务。对等层模块通过协议交换信息从而实现功能,对等层交换报文或者PDU等需要借助下层的服务,而交流和下层服务结合起来的该层还可以向更上层提供服务,这样一层摞一层实现更复杂的服务.
- 本层协议实体交互需要遵循的动作的规则的集合是协议,协议是为了向上层提供更好的服务。
- 协议是水平关系,协议的实现是要借助下层的服务(在实现本层协议的时候直接利用了下层所提供的服务),协议实现的目的是为了向上层提供更好地服务。这就是为什么应用层是网络存在的理由,这是因为应用层是最高层次。
服务和服务访问点
- 服务:底层实体向上层实体提供它们之间的通信的能力
- 服务用户 service user: 例如TCP实体上有很多应用,TCP实体想这些应用提供服务,这些应用实体就是服务用户。
- 服务提供者 service provider: 在本例中,TCP就是提供者
- 服务访问点 SAP(Service Access Point): 在TCP的那个例子中,来了数据后要分辨出TCP的报文要给那个应用,就是同应用提供服务的接口上有一系列的点用来区分不同的上层用户。服务访问点就相当于寄快递表上的地址和寄送者,说明寄和收是谁(顺丰服务的客户很多需要区分)。
- 服务用户采用原语primitive来接收服务,同是服务提供者也是通过原语来提供服务,原语是用来区分服务的类型的相当于函数调用。就相当于顺丰快递有很多形式提供服务,比如加急件,到付件,或者说寄送的物品是什么等等。在应用层来说就是socket API