(网络)传输层:TCP协议特性——面向字节流(优劣 + 黏包问题)

文章目录



字节流

面向字节流:提供字节流传输服务 --- 有序、可靠、基于连接,双向的一种以字节的单位进行传输的方式

面向数据报:数据传输是整条收发,按条交付

面向字节流:tcp在缓冲区中取出合适大小的数据进行发送,接收方接收数据的最小单位是1字节

在这里插入图片描述

  • 优势:传输比较灵活
  • 劣势:会存在黏包问题

黏包问题

黏包 — 有可能将多条数据当成一条数据进行处理

本质:tcp在传输层对应用数据边界不敏感(不关注应用层数据边界)

因此需要程序猿在应用层进行数据的边界管理

编程影响:上层可能会将多条数据当做一条数据处理。

解决方案:

  1. 特殊字符间隔: 使用此方法则必须对数据中的特殊字符进行转义,否则会造成二义
  2. 数据定长:规定固定长度的数据,实际数据少的则需要进行补位
  3. 在应用层头部定义数据长度(例如http协议,udp协议,先取头部,再根据头部中的数据长度取出数据)

显然我可以发现第三种是最靠谱的方法。

注意:UDP协议是不存在黏包问题,不要被迷惑~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殇&璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值