【网络】网络通信时的封装和分用过程
网络通信的过程中,两台主机中间,信息从发送方发送的过程中,会对信息进行层层分装,接收方接收信息时会,层层分用(拆分)
举一个简单的例子:封装就是打包包裹,分用就是拆包裹
下面详细说说过程
那么这个hello怎么发送给B,B又该怎么接收呢?
【A发送】
(1)应用层
(2)传输层
传输层是由操作系统内核实现的,操作系统会提供一些API给应用层,代码调用API,就可以把应用层的数据交给传输层(内核),这些API就是socket API
传输层里有很多协议,其中最典型的是TCP协议,内核会用TCP协议来处理这些数据(应用层打包好的数据)
TCP协议会在之前数据的基础上,加上一个TCP协议报头
这个加上报头的过程就是封装
TCP报头中有许多信息,其中最关键的是:源端口,目的端口
所以说加上报头就相当于给包裹加上快递单,快递单中记录着卖家和买家的信息
之前打包好的那部分信息就叫做载荷部分
当经过传输层,加上TCP报头后,信息会从传输层交给下一层:网络层
(3)网络层
同理,经过网络层,也要给在这之前的信息基础上,加上网络层的报头,然后传给下一层!!!
网络层中最典型的就是IP协议
IP协议把整个TCP数据视为整体,作为载荷部分,在前头加上IP协议报头!!!!
IP报头中自然也包含着信息,关键的信息是:源IP,目的IP
当加上IP报头后,接下来从网络层继续交给数据链路层
(4)数据链路层
链路层中的典型协议是:“以太网”~
以太网既管理数据链路层,也管理着数据链路层的下一层:物理层
结果数据链路层,以太网,同样会对在此之前的数据进行封装!
帧头里面有:源mac地址,目的mac地址
帧尾:校验和
在数据链路层加上以太数据帧后,接下来传给下一层,物理层
(5)物理层
链路层组织好数据后,通过网卡,把上述二进制bit流转换成光信号/电信号,来向A进行传输
以上5步就是A发送数据的过程
从上到下层层添加信息的过程就叫做封装;
当A发送信息成功后,信息成功来到B的接收端,准备进行接收操作:简单来说就是分用后获得数据,把包裹拆了拿到货物一个道理
当数据来到接收端
(1)(物理层)接收方网卡收到信号:将信号解析转换成二进制bit流,接着交给链路层
(2)(数据链路层)链路层拿到信息后,通过以太网协议来进行下一步解析,去掉帧头帧尾
取出载荷部分往上交给网络层(分用)
(3)(网络层)网络层去掉IP报头往上交给传输层
(4)(传输层)传输层去掉TCP报头往上交给应用层
(5)(应用层)当应用层拿到数据后会解析将数据取出里面信息显示在B主机的界面上
这时!B接收到了A的信息!!!!
经过层层困难,发一个简单hello都要这么复杂!!!!可想而在在数据传送的过程更加复杂!!!
(注意:上层调用下层,下层提供服务给上层)