3.8 TCP面向字节流

1.TCP面向字节流


1.TCP面向字节流

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

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

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

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

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

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

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

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

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

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

这两种控制机制的核心度量单位都是字节, 面向字节流的设计使得这种精细的控制成为可能
csharp 复制代码
注: 使用TCP开发网络游戏(或任何应用)时, 必须在应用层自己建立"消息协议"来区分不同的消息("长度前缀法")
相关推荐
时艰.7 分钟前
Java 并发编程:Callable、Future 与 CompletableFuture
java·网络
强风79432 分钟前
Linux—应用层自定义协议与序列化
运维·服务器·网络
科技块儿39 分钟前
如何定期向监管部门报送IP属地统计报表?
网络·网络协议·tcp/ip
win x39 分钟前
UDP Socket
网络·网络协议·udp
瘾大侠1 小时前
HTB赛季10 - Facts
网络·安全·web安全·网络安全
码云数智-大飞1 小时前
零拷贝 IPC:用内存映射文件打造 .NET 高性能进程间通信队列
java·开发语言·网络
礼拜天没时间.1 小时前
《Docker实战入门与部署指南:从核心概念到网络与数据管理》:环境准备与Docker安装
运维·网络·docker·容器·centos
hoududubaba1 小时前
ORAN C平面传输和基本功能——C平面消息的ACK/NACK过程
网络·网络协议
云中飞鸿1 小时前
虚拟机需要连外网,同时笔记本连接wlan,IP经常变,该怎么配置网络?
服务器·网络·tcp/ip