1.6 型无定形
本节介绍几个的找不到归属的协议。
第一个是安全套接字层(Secure Socket Layer,SSL)协议或传输层安全(Transport Layer Security,TLS)协议。SSL协议或TLS协议可以使用安全和非安全两种方式实现Web服务,非安全模式用80端口创建Socket,安全模式用443端口创建Socket。传输层为了实现数据的安全收发,于是就用到了TLS协议。传输层调用TLS协议实现了Web的安全访问。把TLS协议归为应用层协议,它又不直接为用户提供服务;把它归为传输层协议,它又不能提供数据进入网络的接口。TLS协议更归不到网络层协议。也有人试图把TLS协议归为会话层协议或表示层协议,显然也是不合适的。
第二个是多协议标签交换(Multi-Protocol Label Switching,MPLS)协议,它的下层是以太网,类型号是0x8847(单播)或0x8848(组播),上层承载的是IP。以太网是网络接入层的协议,IP是互联网层的协议,而且MPLS本身也会用到IP,它的IP协议号是137。MPLS是一个夹在网络接入层和网络层之间,用到网络层技术同时又服务于网络层的协议。
第三个是互联网控制消息协议(Internet Control Messages Protocol,ICMP),它通过Type+Code的方式来标识设备的联网状态,它使用IP封装,IP协议号是1。虽然很多文献都将ICMP归为网络层协议,其实并不十分准确,它很显然是在IP之上,但同时又是为IP服务的。
这些找不到归属的协议对前面提到的网络模型又是一个挑战:到底该如何定义网络模型呢?网络模型随着网络技术的发展也在不断演化。表面上我们是在介绍网络模型,实际上也是在讨论网络模型。通过讨论网络模型,可以加深我们对数据通信网络实现架构的理解,而不会拘泥于形式,其实也没有必要太在乎形式。从我们讨论网络模型的初衷出发,与其纠结网络模型的具体形式与定义,还不如好好思考一下某个协议出现的原因、它服务于谁、谁在为它服务、解决了什么问题、还存在什么问题。我们将在第2章中详细讨论这些问题。