但我们在网络上传输数据时,本机会从高层到底层将数据包进行几次封装,结果过程则是相反的顺序。如下图所示:
封装
- 首先在应用层,浏览器会将请求数据封装为HTTP协议数据包,在原本数据包中加入HTTP头。
- 传输层:tcp协议将前一个封装的数据包再次封装为tcp数据包。
- 网络层:封装ip协议。
- 数据链路层:封装了数据帧。
解包分用
- 数据链路层:操作系统在网卡接收到数据之后,再解析接收到的数据包,其中就会处理数据帧。
- 网络层:系统处理ip头部。
- 传输层:系统处理tcp报头,报头中包括ip和port,知道了端口号,找到对应的应用程序,,系统将数据包交给应用程序来处理数据。
- 应用层:应用程序根据协议处理数据。