【Socket网络编程】11.网络编程中的 数据封装 和 数据拆封

搭配这篇博文服用,效果更好:以太网数据包、IP数据包、UDP数据包:https://blog.csdn.net/u011754972/article/details/116030526


1.数据封装:是指将协议数据单元封装在一组协议头和协议尾中的过程。

由于用户传输的数据一般比较大,一次性发送出去十分困难,于是需要把数据分成多段,再按照一定的次序发送出去,这个过程就需要对数据进行封装

  • ⑴ 1.应用层准备数据–>

  • ⑵ 传输层接受应用层数据添加上TCP的控制信息(称为TCP头部),这个数据单元叫段(segment),将交给网络层–>

  • ⑶ 网络层接收到,再添加上IP头部,这个数据单元叫包(packet),将交给数据链路层–>

  • ⑷ 数据链路层将再添加上MAC头部尾部,这个数据单元叫帧(frame),交给物理层–>

  • ⑸ 物理层将收到的数据转化为比特流(就是二进制,0101),在网线中传送。

数据封装是从高层到底层,逐层封装。


2.数据拆封:是指将接收到的数据进行拆包,每一层只把对该层有意义的数据拿走。
  • ⑴ 物理层接收到比特流,经处理后将数据交给数据链路层–>

  • ⑵ 数据链路层收到数据转化为数据帧,去掉MAC头尾部(这个是解封),将交给网络层–>

  • ⑶ 网络层收到,去掉IP头,将段交给传输层–>

  • ⑷ 传输层收到,去掉TCP头部,将数据交给应用层–>

  • ⑸ 应用层处理数据。

数据拆封是从低层到高层,逐层拆装。


可以看到底层有这么复杂,但是我们不需要管,Java的JDK都已经封装好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值