粘包

粘包 接收上次没有收完的内容

应用层软件 直接从系统的缓存区拿取内容  而系统根据TCP或UDP 而做出不同的选择

TCP会出现粘包现象 UDP不会出现  TCP根据流的方式传输 UDP根据数据报的方式传输

recv 和 send 都是在操作自己的缓存区  读取多少内容 和recv字节数有关

TCP 底层根据Nagle算法  把几次发送内容间隔较小 数据量较小的数据 合并为一个大数据块
进行封包发送
收的字节数少了 第二次收还会继续上一次的
发的时候就都粘到一块 发过来的

UDP 会丢数据 接收recv字节数少 会丢失数据 第二次只接收第二次发送过来的内容


面向流的通信是无法确定消息边界的
可以在传输的时候先计算出发送内容的长短 先给另一端发送过去 接收方收到长短后 改变自己recv的字节数


TCP 通信安全在于 发送完成数据后在没有接收到 另一端ACK的回应 是不会删除自己缓冲区的内容的





网卡最大传输端 MTU 做多 1500bytes
失真:最大不要超过8k  传输的过程中有可能中断 顺序可能排序错位 导致失真

因为udp没有连接所以可以实现并发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值