网络传输的基础就是各个协议之间协同工作的成果
主要有两个关键步骤: 1.封装 2.分用
下面用一个发快递的例子来介绍一下封装和分用(其实封装就相当于往外发快递,分用就相当于拆快递)
封装
假设我现在要从陕西西安发到新疆乌鲁木齐一封信,那么就需要以下操作:
1.应用层:需要根据用户输入的数据,把这个数据构造成一个应用层数据包,在我们的例子中,就相当于信封中的书信
2.传输层:应用层协议把数据要交给传输层协议,来进一步封装。封装的意思就是给刚才的数据基础上加上一个传输层的协议报头也是字符串拼接。想象成,寄信的时候,需要加上信封,贴上邮票,上面有邮政编码
3.网络层:传输层需要把数据进一步的交给网络层,网络层协议再加上一个网络层的协议报头(还是字符串拼接) 此时就得到了一个网络层数据包
4.数据链路层:网络层还需要进一步把数据交给数据链路层。数据链路层协议再加上一个数据链路层的协议帧头+帧尾
此处的相邻节点地址就相当于从西安到新疆的途中,需要经过很多地方,比如途径宝鸡,九泉和吐鲁番,那么数据链路层就相当于是需要九泉的上一个地址宝鸡和下一个地址吐鲁番。
5.数据链路层得到的数据帧,还要交给物理层。物理层就会把这个数据转换成光电信号,通过硬件设备(网线,光纤,电磁波)传输出去了
分用
1.物理层接受到对方发来的光电信号,解析成二进制的 bit流,进一步得到了数据链路层数据帧把数据帧交给数据链路层来处理.
⒉.数据链路层解析数据帧,剥离帧头和帧尾,取出中的IP数据报,交给网络层
3.网络层拿到刚才的网络层数据报,再来解析,去掉网络层协议报头,把数据交给传输层.
4.传输层协议拿到传输层数据报,再来解析,去掉传输层报头,把应用层数据报交给应用层.
5.应用层解析应用层数据报,分析出数据内容是啥,发送者是谁,就可以看到这封信了
过程分析
以上所说的封装和分用的过程,只是说清楚了发送和接受的过程,但是中间还有很多具体流程没有提到,下面会对中间过程加以解释
假设现在小明需要发送一份数据给小红,那么步骤如下: