何为协议?
通俗来讲,协议就是一种约定,在具体实施某一事务前双方做好的约定。在网络中,约定是由机器语言指定好的。
那么,只要通信的两台主机,约定好协议就可以了吗?不可以,由于计算机操作系统、计算机网络硬件设备种类多,所以要约定一个共同的标准,大家都来遵守,这就是网络协议。
协议分层
OSI七层模型把网络分成了应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,它最大的优点是将服务、接口和协议三个概念明确的区分开来,但是它既复杂也不实用,所以我们最常用TCP/IP五层模型(也称四层模型,因为物理层偏硬件,所以考虑较少)
一般来讲:
对于一台主机,它的操作系统内核实现了从传输层到物理层的内容
对于一台路由器,它实现了从网络层到物理层
对于一台交换机,它实现了从数据链路层到物理层
对于集线器,它只实现了物理层
但是并不绝对!!
数据包的封装
TCP/IP协议族的上层协议是通过封装来使用下层服务的。应用程序数据通过协议栈在发送到物理网络之前,将沿着协议族从上往下依次封装,每层协议都要加上一个自己的数据首部(以太网包括尾部)。
首部信息包括首部有多长、载荷有多长、上层协议是什么等……
下图为封装的过程: