粘包9-10

粘包这个问题的根因是由于开发人员没有正确理解 TCP 面向字节流的数据传输方式,本身并不是 TCP 的问题,是开发者的问题。

TCP 不管发送端要发什么,都基于字节流把数据发到接收端。这个字节流里可能包含上一次想要发的数据的部分信息。接收端根据需要在消息里加上识别消息边界的信息。不加就可能出现粘包问题。
TCP 粘包跟Nagle算法有关系,但关闭 Nagle 算法并不解决粘包问题。
UDP 是基于数据报的传输协议,不会有粘包问题。
IP 层也切片,但是因为不关心消息里有啥,因此有不会有粘包问题。
TCP 发送端可以发 10 次字节流数据,接收端可以分 100 次去取;UDP 发送端发了 10 次数据报,那接收端就要在 10 次收完。

https://segmentfault.com/a/1190000039691657

粘包其实是由于使用者无法正确区分消息边界导致的一个问

RTMP基础:

  1. Message被切割成一个或多个Chunk,然后在网络上进行发送。默认的Chunk Size是128字节

https://segmentfault.com/a/1190000018582522

rtmp://192.168.23.152/live/movie 的 movie 是这次拉流的 stream。

在这里插入图片描述
握手开始于客户端发送C0、C1块。服务器收到C0或C1后发送S0和S1。
当客户端收齐S0和S1后,开始发送C2。当服务器收齐C0和C1后,开始发送S2。
当客户端和服务器分别收到S2和C2后,握手完成。
在这里插入图片描述
https://www.nowcoder.com/ta/review-c/review?page=280
牛客网几百道题合集

小根堆的特点:
堆是完全二叉树。
i是,2i+1, 2i+2是左右孩子指针
      ① array[i] <= array[2i + 1] 且 array[i] <= array[2i + 2]; 称为小根堆;

② array[i] >= array[2i + 1] 且 array[i] >= array[2i + 2]; 称为大根堆;

快排最差n2,倒序时。

稳定排序:基数,冒泡,插入排,归并

hash冲突解决办法:链地址法,链表存哈希冲突的关键字。建公共溢出区。函数获得一个值,值冲突了。
Hi=(H(key)+di)% m i=1,2,…,n
其中H(key)为哈希函数,m 为表长,di称为增量序列。

单向链表通过顺序,读都从头开始。

加密方法:

  1. 单向加密,MD5, SHA,输入一样,输出一定相同。
  2. 对称加密,加密解密同一密钥
  3. 非对称加密,公钥私钥,私钥加密,公钥解密。

LRU最近最少使用,历史访问数据淘汰,

工厂模式:代码复用,更改容易

单例模式:只初始化一次,全局的静态变量或定义全局的指针。

红黑树——右AVL平衡二叉树而来,

const是可以修改的!常量的是指针,常量的是变量。

cppcheck 检查内存泄露

RAII,资源获取初始化一种方法,构造函数完成资源分配,析构函数释放。防止资源泄漏。

多态依赖虚函数,虚函数表普通类没有,会占内存。

KMP算法又next数组,根据查找的子串生成,前缀

P2P点对点通信中UDP打洞。知道对方IP,直接连对方。

进程调度策略:先来先服务,时间片轮转,——非抢占式
短作业优先,响应比最高
设立优先级的队列

中断是什么?CPU暂停正在执行的程序,转而执行中断子程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值