- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
TCP数据包什么时候会在应用层分片?当从应用程序发送 TCP 数据包时,应用程序层的接收者是否会分两个或多个数据包接收数据包?如果是这样,什么条件导致数据包被分割。似乎数据包在达到 1500 字节的以太网(网络层)限制之前不会被分段。但是,该分段对应用层的接收者来说是透明的,因为网络层会在将数据包发送到下一层之前重新组装这些分段,对吗?
最佳答案
当它到达 MTU 小于数据包大小的网络设备时,它将被拆分。大多数以太网设备是 1500,但它通常可以更小,例如 1492 如果以太网由于额外的路由信息而通过 PPPoE (DSL),如果添加第二层(如 Windows Internet 连接共享)甚至更低。而且拨号正常是576!
一般来说,您应该记住 TCP 不是数据包协议(protocol)。它使用最底层的数据包通过 IP 传输,但就任何 TCP 堆栈的接口(interface)而言,它是一种流协议(protocol),不需要为您提供与发送或接收的物理数据包的 1:1 关系(例如,大多数堆栈将保留消息直到某个时间段到期,或者有足够的消息来最大化给定 MTU 的 IP 数据包的大小)
例如,如果您发送了两个“数据包”(调用您的发送函数两次),接收程序可能只会收到 1 个“数据包”(接收 TCP 堆栈可能会将它们组合在一起)。如果通过 TCP 实现消息类型协议(protocol),则应在每条消息的开头包含一个 header (或其他一些 header /页脚机制),以便接收方可以将 TCP 流拆分回单独的消息,或者当消息分两部分接收,或者当多个消息作为一个 block 接收时。
关于tcp - 一个TCP网络包什么时候会在应用层被分片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/756765/
理论上,一般来说: 数据访问层保存数据库连接和查询。 业务层保存模型和逻辑。 服务层包含应用程序服务的主要服务。 表示层保存网站。 我说得对吗?我错过了什么吗? 什么是基础设施层? 最佳答案 是的,我
我知道 Android 没有像 Activity 具有 onPause 那样的应用程序级 onPause,但看起来我需要类似的功能。我刚才问了一个(愚蠢的)问题(http://stackoverflo
2022-12-04 18:31:01 纪念一下博主的《漫谈计算机网络》连载博客 浏览量破500了. 今天更新完结篇. 面试答不上?计网很枯燥? 听说你学习 计网 每次记了都会忘? 不妨抽时间和我
我一直在尝试构建一个基于 DDD 的应用程序,但我有一些问题。 我有一些层:- 表示层 - MVC- 应用层- 域层... 首先,我想知道我是否可以在ApplicationLayer中执行此操作(获取
我想知道如果我创建一个 OkHttpClient 实例来服务我的“整个 android 应用程序”,是否会出现任何性能瓶颈或问题。即在我的 Application 类中,我创建了一个包含 OkHttp
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
我是一名优秀的程序员,十分优秀!