3.8 TCP面向字节流

1.TCP面向字节流


1.TCP面向字节流

csharp 复制代码
1).实现可靠, 有序的交付

TCP为每个传输的字节都分配了一个隐形的序列号, 这个序列号是基于字节的

a.发送端告诉接收端: "我现在要发送从序列号N开始的N个字节"

b.接收端确认: "我已经成功收到了直到序列号K的所有字节"

通过这种方式, 即使网络底层的数据包是乱序, 重复或丢失的, TCP协议栈也能在内部根据序列号将这些字节重新组成成正确

的, 连续的字节流, 再交付给应用层; 应用层完全感知不到底层网络的混乱

2).灵活的流量控制和拥塞控制

a.流量控制: 接收方通过滑动窗口机制告诉发送方: "我的缓冲区还能接收多少字节", 发送方就根据这个"窗口"大小来发送

相应数量的字节, 防止接收方被淹没

b.拥塞控制: TCP根据网络状态动态调整它能在网络中"飞行"的字节数量

这两种控制机制的核心度量单位都是字节, 面向字节流的设计使得这种精细的控制成为可能
csharp 复制代码
注: 使用TCP开发网络游戏(或任何应用)时, 必须在应用层自己建立"消息协议"来区分不同的消息("长度前缀法")
相关推荐
linux kernel8 小时前
第六部分:数据链路层
服务器·网络
chian-ocean16 小时前
深入 CANN:使用 `tbe-op` 构建自定义高性能算子
网络
中议视控16 小时前
可编程网络中央控制系统主机通过红外发射棒控制空调电视等红外设备
网络·物联网·5g
数据安全科普王17 小时前
打破中心枷锁:P2P网络如何用“去中心化”重构互联网通信
网络·去中心化·p2p
爱吃烤鸡翅的酸菜鱼18 小时前
CANN ops-nn激活函数与池化算子深度解析
网络·开源·aigc
saber_andlibert19 小时前
TCMalloc底层实现
java·前端·网络
飞凌嵌入式20 小时前
用「EN 18031认证」通关欧盟,这张 “网络安全护照” 已就位
网络·安全·能源
Trouvaille ~20 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
JoySSLLian1 天前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
Zach_yuan1 天前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络