gydtep 发表于 2020-8-25 15:59:25
当要传输一个 MQTT 报文时,报文数据会以流的形式通过一条已经打开的TCP连接按顺序传输,TCP会将收到的数据分成小块,每块是一个TCP分组。gydtep 发表于 2020-8-25 16:16:41
由于数据是分成小块发送的,所以完整可靠的数据传输主要体现在:分组是否完整、分组顺序是否正常、分组是否损坏、分组数据是否重复。gydtep 发表于 2020-8-25 18:14:45
由发送端计算,接收端验证,如果接收方检测到检验和不正确,表明该TCP段可能有损坏,会被丢弃,同时接收端向回送一个重复的确认号gydtep 发表于 2020-8-25 19:06:46
这些可以通过TCP的检验和、序列号、确认应答、重发控制、连接管理和窗口机制来控制。gydtep 发表于 2020-8-26 08:28:58
窗口尺寸:决定了TCP一次成块数据流的吞吐量。gydtep 发表于 2020-8-26 11:04:08
此时服务器关闭这个方向的连接,导致它的TCP也会发送一个FIN。gydtep 发表于 2020-8-26 14:28:05
接收端再计算一遍,如果计算结果与存在检验和中的结果一致,则说明传输过程是OK的,否则这个数据报就会被丢弃。gydtep 发表于 2020-8-26 14:40:04
上层协议:决定了接收端在分用的时候将数据交给哪个上层协议去处理,例如TCP或者UDP。gydtep 发表于 2020-8-26 16:33:40
找到了与目的IP完全匹配的路由项,将报文发给该路由项的下一站路由(Gateway)或者网络接口(Interface)gydtep 发表于 2020-8-26 17:01:04
找到了与目的IP的网络号匹配的路由项,将报文发给该路由项的下一站路由(Gateway)或者网络接口(Interface)