IT之道-艾锑知道

您当前位置: 主页 > 资讯动态 > IT知识库 >

艾锑知识 |为什么 TCP/IP 协议会拆分数据


2020-02-19 15:48 作者:艾锑无限 浏览量:
疫情即将结束,如何提升企业工作效率

艾锑无限免费为企业提供IT服务
 
        这几天如果大家关注疫情数据的变化,可以看到湖北以外30个省区市新增确诊病例12连降,这意味着疫情很快就会结束,大家再也不用在家办公了,到不是在家工作不好,但人类发明工作不
简简单单只是为了实现结果的达成,还有一个非常重要的因素就是人与人之间的联结,这是人类内在价值的需要,透过工作与人接触,共同感受彼此的能量流动,从而达到自我价值的实现,这就像演员都渴望登上奥斯卡的舞台,而实现自我角色的认可。

 

在家办公,必尽是家,松、散、无所谓的态度会随时产生,我相信不是每个人都会这样,但大部分人会如此,接下来即将回到公司,回到自己的工作岗位,难免会把在家的状态带入工作中,如果
每个人都这是这样的状态,很快会让企业限入新的窘境,那就是没有状态,也不会有好的结果,状态就是一切。团队的势气决定企业整体的战斗力,那如何调整陆陆续续回来的团队成员呢?
 
艾锑无限对中小企业有三条建议:
 
第一,重新梳理整个企业的战略,疫情的发生,是否给你企业带来了变化?如果有那是什么?是否需要调整自己原有的战略方向来应对疫情发生后的影响?
 
第二,重新明确每个人的目标和目的,目标就是回来的人要干什么?干到什么程度?什么时间可以看到这个结果的发生?目的就是为什么要这个目标?这个目标与自己的意义是什么?与企业的意义是什么?达成了会怎么样?达不成会怎么样?一定要让员工想清晰这些问题,只有想清晰了才会改变自己对待接下来工作的态度。
 
第三,企业高管与员工建立一对一对话机制,因疫情的影响,每个人心理或多或少都会产生一些内在的变化,做为企业的高层管理人员,最好与企业内部员工一对一的进行沟通,去了解在这个过程中员工受到的影响和产生的变化,以便接下来拥有更好的状态投入工作中。以上三点做为每一家企业的管理者都有必要重视起来,因为这关系着企业接下来的生、死、存、亡,当然这只是我们一家之言,可根据自身的情况做出相应的调整和改变。
 
那为什么我们会有这样的思考,因为艾锑无限是一家企业互联网”云”解决方案服务平台,企业在初创时经历了2003年的非典,后来又经历了2008年的经济危机以及2016年互联网创业大潮,生生死死,几经沉浮,最终发现上述三点是生死线中最重要的,所以愿意分享给大家,期望这次疫情大家不仅能渡过难关,更能看见大家在这个过程中强而有力的领导力,让自己企业力挽狂澜,在2020年有一个更好的未来。

 在这次疫情后各个企业恢复的过程中,艾锑无限还能为大家做的就是免费为中小企业提供相应的IT服务,以下是艾锑无限可以提供服务的内容,如果大家有相应的需求,可以打下面的电话与我们的企业相关人员联系,我们一定会尽全力帮助大家渡过难关。


历经10几年,艾锑无限服务了5000多家中小企业并保障了几十万台设备的正常运转,积累了丰富的企业IT紧急问题和特殊故障的解决方案,我们为您的企业提供的IT服务分为三大版块:
 
第一版块是保障性IT外包服务:如电脑设备运维,办公设备运维,网络设备运维,服务器运维等综合性企业IT设备运维服务。
 
第二版块是功能性互联网外包服务:如网站开发外包,小程序开发外包,APP开发外包,电商平台开发外包,业务系统的开发外包和后期的运维外包服务。
 
第三版块是增值性云服务外包:如企业邮箱上云,企业网站上云,企业存储上云,企业APP小程序上云,企业业务系统上云,阿里云产品等后续的云运维外包服务。
 
 


更多服务也可以登录艾锑无限的官网: www.bjitwx.com 查看详细说明。

每家企业都有着不同的人,每个人都有着不一样的思考,所以企业不需要统一所有人的思维,企业只需要统一所有人的心,因为只要心在一起了,能量就会合一,能量合一企业将无所不能。

相信这次疫情带给中国企业的不仅仅是灾难,更有可能的是历练,这些年中国的经济发展非常快速,大部分中小企业的成长都是随着国家政策及整个社会的大势起来的,没有经过挑战和困难,所以存活周期也会很短,从2016年大众创业,万众创新倡导下成立了上千万家企业,但真正存活下来的就只有几十万家,这样即不能给国家带来更好的稳定持续的发展,也不能为社会创造更大的价值,反而让更多的人投机取巧,心浮气躁,沉不下来真正把一件事做好,做到极致。

所以这次疫情也会让这些企业重新思考,问问自己,为什么要创造这家企业,想为这个国家和社会带来的是什么?这家企业真正创造的是什么?如何做才能让社会变得更好?等等.....

所以企业真正去思考,用心去创造价值的时候,也就是人们幸福快乐的时候,因为再也不用担心假货、次货、买到不好的产品,所以疫情即是一场灾难,又是成就我们中国的一次机会,让我们全中国人觉醒。生命只有一次,做就做到最好。
 


你对世界微笑,世界绝不会对你哭,希望大家都能乐观起来,让自己、自己的家人、自己的企业、还有自己的国家都快乐起来,把焦点放在我们想要什么上,而不是不要的事情上,我相信,就在不久的将来,我们一定会看到一个富强、文明、健康的中国以及中国人。
 
万物同体,能量合一,最后无论你是中小企业,还是大型国有企业,只要你选择艾锑无限,我们就一定全力以赴帮助大家渡过难关,服务有限,信息无限,透过全体艾锑人的努力,为您收集最有效的IT技术信息,让您企业更快速解决遇到的IT问题:


艾锑知识 |为什么 TCP/IP 协议会拆分数据

TCP/IP 协议簇建立了互联网通信协议的概念模型,该协议簇的两个主要协议就是 TCP 和 IP 协议。这两个协议不仅能够保证数据会从源机器的源进程发送到目标机器的目标进程中,还能保证数据的不重不漏以及发送的顺序。
图 1 - TCP/IP 协议簇
当应用层协议使用 TCP/IP 协议传输数据时,TCP/IP 协议簇可能会将应用层发送的数据分成多个包依次发送,而数据的接收方收到的数据可能是分段的或者拼接的,所以它需要对接收的数据进行拆分或者重组。本文会分别从 IP 协议和 TCP 协议两个角度出发分析为什么应用层写入的数据包会被 TCP/IP 协议拆分发送:
  • IP 协议会分片传输过大的数据包(Packet)避免物理设备的限制;
  • TCP 协议会分段传输过大的数据段(Segment)保证传输的可靠性和顺序;
最大传输单元                                    
IP 协议是用于传输数据包的协议,作为网络层协议,它能提供数据的路由和寻址功能,让数据通过网络到达目的地。不同设备之间传输数据前,需要先确定一个 IP 数据包的大小上限,即最大传输单元(Maximum transmission unit,即 MTU),MTU 是 IP 数据包能够传输的数据上限。
MTU 的值不是越大越好,更大的 MTU 意味着更低的额外开销,更小的 MTU 意味着更低的网络延迟。每一个物理设备都有自己的 MTU,两个主机之间的 MTU 依赖于底层的网络能力,它由整个链路上 MTU 最小的物理设备决定[^3],如下图所示,网络路径的 MTU 由 MTU 最小的红色物理设备决定,即 1000:
图 2 - 路径最大传输单元发现


路径最大传输单元发现(Path MTU Discovery,PMTUD)是用来确定两个主机传输路径 MTU 的机制,它的工作原理如下[^4]:
(1) 向目的主机发送 IP 头中 DF 控制位为 1 的数据包,DF 是不分片(Don't Fragment,DF)的缩写;
(2) 路径上的网络设备根据数据包的大小和自己的 MTU 做出不同的决定:
  • 如果数据包大于设备的 MTU,就会丢弃数据包并发回一个包含该设备 MTU 的 ICMP 消息;
  • 如果数据包小于设备的 MTU,就会继续向目的主机传递数据包;
(3) 源主机收到 ICMP 消息后,会不断使用新的 MTU 发送 IP 数据包,直到 IP 数据包达到目的主机;

ICMP 是互联网控制消息协议(Internet Control Message Protocol,ICMP),它能在 IP 主机之间传递控制消息。

以太网对数据帧的限制一般都是 1500 字节[^6],在一般情况下,IP 主机的路径 MTU 都是 1500,去掉 IP 首部的 20 字节,如果待传输的数据大于 1480 节,那么该 IP 协议就会将数据包分片传输。
IP 协议数据分片对传输层协议是透明的,假设我们使用 UDP 协议传输 2000 字节的数据,加上 UDP 8 字节的协议头],IP 协议需要传输 2008 字节的数据。如下图所示,当 IP 协议发现待传输的数据大于 1480 字节,就会将数据分成下面的两个数据包:
图 3 - 分片传输的 UDP 数据
  • 20 字节 IP 协议头 + 8 字节 UDP 协议头 + 1472 字节数据;
  • 20 字节 IP 协议头 + 528 字节数据;
数据的接收方在收到数据包时会对分片的数据进行重组,不过因为第二个数据包中不包含 UDP 协议的相关信息,一旦发生丢包,整个 UDP 数据报就无法重新拼装。如果 UDP 数据报需要传输的数据过多,那么 IP 协议就会大量分片,增加了不稳定性。

如果 IP 协议没有数据包大小的限制,那么上层可以以消息为单位传输数据,自然就不存在分片和组装的需求,不过因为物理设备的 MTU 限制,想要保证数据传输的可靠性和稳定性还需要传输层的配合。
最大分段大小

TCP 协议是面向字节流的协议,应用层交给 TCP 协议的数据并不会以消息为单位向目的主机发送,应用层交给 TCP 协议发送的数据可能会被拆分到多个数据段中。
TCP 协议引入了最大分段大小(Maximum segment size,MSS)这一概念,它是 TCP 数据段能够携带的数据上限[^8]。在正常情况下,TCP 连接的 MSS 是 MTU - 40 字节[^9],即 1460 字节;不过如果通信双方没有指定 MSS 的话,在默认情况下 MSS 的大小是 536 字节[^10]。

IP 协议的 MTU 是物理设备上的限制,它限制了路径能够发送数据包的上限,而 TCP 协议的 MSS 是操作系统内核层面的限制,通信双方会在三次握手[^11]时确定这次连接的 MSS。一旦确定了 MSS,TCP 协议就会对应用层交给 TCP 协议发送的数据进行拆分,构成多个数据段。

需要注意的是,IP 协议和 TCP 协议虽然都会对数据进行拆分,但是 IP 协议以数据包(Package)为单位组织数据,而 TCP 协议以数据段(Segment)为单位组织数据。
如下图所示,如果 TCP 连接的 MSS 是 1460 字节,应用层想要通过 TCP 协议传输 2000 字节的数据,那么 TCP 协议会根据 MSS 将 2000 字节的数据拆分到两个数据段中:

图 4 - 分段传输的 TCP 数据
  • 20 字节 IP 头 + 20 字节 TCP 头 + 1460 字节数据;
  • 20 字节 IP 头 + 20 字节 TCP 头 + 540 字节数据;
从应用层的角度来看,两个数据段中 2000 字节的数据构成了发送方想要发送的消息,但是 TCP 协议是面向字节流的,向协议写入的数据会以流的形式传递到对端。
TCP 协议为了保证可靠性,会通过 IP 协议的 MTU 计算出 MSS 并根据 MSS 分段避免 IP 协议对数据包进行分片。因为 IP 协议对数据包的分片对上层是透明的,如果协议不根据 MTU 做一些限制,那么 IP 协议的分片会导致部分数据包失去传输层协议头,一旦数据包发生丢失就只能丢弃全部数据。
我们可以通过一个例子分析 MSS 存在的必要性。如下图所示,假设 TCP 协议中不存在 MSS 的概念,因为每个数据段的大小没有上限,当 TCP 协议交给 IP 层发送两个 1600 字节(包括 IP 和 TCP 协议头)的数据包时,由于物理设备的限制,IP 协议的路径 MTU 为 1500 字节,所以 IP 协议会对数据包分片:
图 4 - 分片传输的 TCP 数据
四个数据包中只有两个会包含 TCP 协议头,即控制位、序列号等信息,剩下的两个数据包中不包含任何信息。因为网络无法保证数据包的送达顺序,所以当上述四个数据包乱序到达目的主机时,因为数据包中 TCP 协议头的缺失,所以接收方没有办法对数据包进行重组,自然也就无法保证可靠性和顺序了。

总结

数据拆分的根本原因说到底还是物理设备的限制,不过每一层协议都受限于下一层协议做出的决定,并依赖下层协议重新决定设计和实现的方法。虽然 TCP/IP 协议在传输数据时都需要对数据进行拆分,但是它们做出拆分数据的设计基于不同的上下文,也有着不同的目的,我们在这里总结一下两个网络协议做出类似决定的原因:
  • IP 协议拆分数据是因为物理设备的限制,一次能够传输的数据由路径上 MTU 最小的设备决定,一旦 IP 协议传输的数据包超过 MTU 的限制就会发生丢包,所以我们需要通过路径 MTU 发现获取传输路径上的 MTU 限制;
  • TCP 协议拆分数据是为了保证传输的可靠性和顺序,作为可靠的传输协议,为了保证数据的传输顺序,它需要为每一个数据段增加包含序列号的 TCP 协议头,如果数据段大小超过了 IP 协议的 MTU 限制,接收方就无法按顺序对数据包进行重组,TCP 协议也就无法提供可靠性和顺序的保证;
通过本文的分析,相信各位读者不仅了解了为什么 TCP/IP 协议会拆分数据,也了解了为什么 UDP 协议的数据报不应该超过 MTU - 28 字节,一旦超过该限制,IP 协议的分片机制会增加 UDP 数据报无法重组的可能性]。

 

相关文章

IT外包服务
二维码 关闭