数据段、数据报、数据包、帧的区别与联系

在看《Linux高性能服务器编程》的过程中,TCP/IP 的章节里发现了几个比较有意思的名词:报文段、数据报、数据包和帧。这几个名词都是在讲协议部分出现的,一开始没明白有哪些区别、哪些联系,后来仔细想了下,又查了一下,似乎了解了大概。

帧与数据包

首先不容易理解的是数据包

数据包,就是从最上层,一层一层封装,直到网络层的,最后借由数据链路层发送出去的数据单元。

帧,是数据链路层的传输单元。

这么一看,数据包和帧好像没什么不一样,好像数据传递的都是一样的。可是为什么会把它们区分开呢?学习 TCP/IP 协议的同学应该都知道,数据链路层中有 MTU 这样一个东西,它是帧最大传输单元。

数据包是一个完整的数据单元,但是如果数据包的大小超过了 MTU 呢?所以,可能许多帧组合在一起,才能形成一个完整的数据包,这就是帧和数据包的关系。

数据包与数据报

说完了数据包与帧,那么数据包与数据报又是什么关系呢?

数据包是整个的数据单元,那么数据报就是组成这一个数据单元的分组。每一层封装后的数据都可以称作数据报也就是说,一个完整的数据包是有若干个数据报组成的。

而和帧不同的是,帧是作为数据链路层的传输单元,而数据报数据包的分组。

数据段

在看协议的时候,有了一个疑问,那就是同是在传输层的 TCP 和 UDP 两个协议,一个称为 TCP 数据段,一个称为 UDP 数据报。这是为啥嘞?

原来上面的数据报还有一条,数据报是面向无连接传输的协议,而 TCP 是面向连接的协议。

UDP 是无连接的协议,就是随着 IP 一起传输就可以了,不必去管连接和分组问题。可是 TCP 不一样了,面向连接,在数据部分很大的时候,要分组。这样每个分组就称为 TCP 数据段。这些 TCP 段组成了一个完整的 TCP 数据报。

后记

这几个概念算是勉勉强强自圆其说了。菜鸟文章,大神路过如果有错误欢迎指正,非常非常感谢!

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值