网络分层及意义
在实际中,计算机网络是分层处理的,以下是OSI 7层协议模型,以及当今互联网中使用的TCP/IP四层协议模型。
计算机网络分层的意义,在于层与层之间的解耦合,使每一层都成为一个独立的个体并且负责一些工作,当出现错误的时候,我们就无须对整个计算机体系结构进行修改,只需要对出问题的层进行修改,大大降低了工作量,同时也便于以后的修改。
网络协议理解
网络协议就是双方网络对等实体之间要遵守的相同的约定,只有遵守了相同的约定(协议),才可以通过网络对数据进行转发,从语言层面来说,协议其实就是一些双方内核中都存在的一些相同结构体。
网络中传输数据的一般格式
在网络中,我们一般传输的数据都分为两部分。
有效载荷来源于网络协议栈的上层传输下来的数据,而报头则是该层网络的协议。
数据一层一层从上到下,经过每层的协议,对有效载荷增加各种报头,叫做封装。
而数据一层一层从下到上,经过每层协议,对网络数据去除各种报头,叫做解包。
对于每一层传输的数据,都有不同的叫法,以TCP/IP体系结构说明。
网络分层与计算机分层的联系
计算机网络分层和计算机的分层有这许多联系,如下图。
数据在网络中的路由过程
以FTP为例。
在路由过程中,通常情况下,src ip 和 dest ip 是不变的。