音视频开发与计算机基础面试实战

题目1.丢包恢复算法怎么实现的?丢包是由于网络不好导致的,还是确实丢包了,丢包率怎么反馈给发送端的?
题目2.回音消除的实现原理?
题目3.Opus,G.711音频编解码的实现原理?OPus的好处,最低带宽是多少?
题目4.音视频数据传输怎么判断延迟发生在哪个阶段?
题目5.带宽估计和带宽反馈是怎么做的?

计算机基础:
题目1.Hash表的实现原理?
要想找到一个不同的 key 对应的散列值都不一样的散列函数,几乎是不可能的。而且数组空间有限也会增加散列冲突的概率。

如何解决散列冲突?

1.开放寻址法

当我们往散列表中插入数据时,如果相应的位置已经被占用,就从当前位置依次往后查找,直到找到空位置位置

查找时,通过散列函数先找出要找元素的key对应的散列值,通过散列值下标找出对应位置的元素,看看是不是和我们要找的元素相等,不相等的话,依次循环去找,如果找到空闲位置还没找到,说明要找的元素不在散列表中

散列表的删除时不能单纯把元素设置为空,不然存在散列表的元素也可能找到空值停止查找,查找不到,删除元素时要在对应的位置标记deleted,查找时遇到deleted继续查找.

线性探测存在的问题:当空闲位置越来越少时,插入元素,查找元素,删除元素可能时间复杂度为O(n).要遍历整个散列表.

2.链表法

当插入元素的时候,我们根据散列函数,求得一个散列值,插入到对应槽的链表中即可,插入的时间复杂度0(1).删除和查找的平均时间复杂度是O(n/m),一共n个元素,m个槽

装载因子:已经插入的元素个数/散列表的总长度
一般装载因子达到0.8时就可以考虑2倍扩容了,新的装载因子就变成了0.4,当删除的元素过多时,装载因子很小又对空间的使用敏感时,也可考虑动态缩容
动态扩容时要重新计算每个元素的散列值
为了解决一次扩容消耗资源过多,可以把扩容穿插到每次插入中,每次往新申请空间插入新元素时,都将老散列表元素插入新散列表中,这样没有了集中一次数据迁移,插入就会很快
这时需要查找元素时,就先从新的散列表中查,再去老的散列表中查

基于链表散列冲突比较适合处理大对象,大的数据量,插入时再创建,比起开放寻址它支持更多的优化策略,比如用红黑树代替链表。当链表的长度过长时,就用红黑树代替链表的数据结构实现增删改查的功能,红黑树少于一定的节点时,又可以转换为链表

哈希算法的定义和原理:将任意长度的二进制值串映射为固定长度的二进制值串.
哈希算法有两点非常重要:
1.很难根据哈希值推导出原始数据内容
2.散列冲突的概率要很小

唯一标示:通过哈希算法对文件做一个信息摘要
校验数据的完整性和正确性
安全加密
散列函数,更关注生成的散列值是否平均

题目3.Tcp的滑动窗口会变化吗?
发送端的TCP滑动窗口大小就是:已发送未确认部分+未发送准备发送部分
接收端的TCP滑动窗口大小是:最大的缓存量 - 已确认还没被应用层读取的部分
比如数据包7,8,9到了,但是6还没有到,那7,8,9只能缓存着,不能ACK,
超时时间要大于RTT,每一次超时重传要把下一次超时重传的时间设置为2倍,2次超时说明网络状况不好,不宜频繁反复发送。
快速重传机制:比如6,8,9已经接收了,就是7没来那肯定是丢了,于是发生3个6的ACK,要求下一个是7,客户端收到3个6的ACK,就知道7丢了,不等超时,马上重发。
如果接收方缓冲满了,处理不过来了,就把发送端的窗口设置为0,暂停发送。接收端不处理已确认数据,窗口就会变小,直到为0.

题目4.如何减少系统的内存碎片?
题目5.IPV6的适配?


IPv6.001.png

DNS64:把传统服务器返回的IPV4通过映射转换成看着像IPV6的地址,最简单的转换:64:ff9b::IPV4 =IPV6
NAT64:帮助IPV6 Packet接入IPV4的公网中,IPV4公网环境只认IPV4地址,拥有IPV4,IPV6网卡,让IPV6-IPV4进行映射.

题目6.Mac地址和Ip地址的关系?
在同一个局域网,知道了IP,不知道MAC怎么办?
发送一个广播,告诉自己的IP,MAC,然后问某个IP,你的MAC是啥?
找到MAC后也会进行ARP缓存,过一段时间去更新缓存。
交换机会把包含MAC1的数据包发给所有的口,然后找到对应口的MAC地址后进行缓存,这就是转发表

题目7.Hash表解决的索引冲突的方法,除了下标++,循环查找空位置存储数据还有其他算法吗?Hash表满时扩容需要重新申请内存一块更大的内存空间吗?
题目8.谈谈你对http协议的理解?

http报文:

1.请求行:URL,方法
1.1GET方法:获取服务器的一些资源,一个页面
1.2.POST,在正文中主动告诉服务器一些信息,而非获取.我是谁?我支付多少?我要买什么?
1.3 PUT,指向资源位置上传最新内容,往往用来修改一个资源
1.4 DELETE,往往用来删除一个资源

2.首部字段,包含一些key value 值
Accept-Charest :可接受的字符集
Content-Type : JSON
Cache-control控制缓存的,有一些商品的图片,详情信息是基本不变的,而库存,价格可能是会改变的,使用Max-age控制是否需要请求最新的数据,还是使用缓存数据,来减少服务器的压力

http:http请求当然要先建立TCP连接,建立连接以后http1.1默认开启了keep-Alive,建立的TCP连接,就可以多次请求复用

题目9.怎么做图片、数组、字符串的无差别存储,key怎么确定,怎么删除数据,如何保证取出的数组顺序
题目10.动态库和静态库的区别有哪些

题目11.HTTPS传输数据的过程, https的验证证书怎么做的, 描述一下https的握手过程
Https验证证书怎么做的?
怎么确认公钥的证书是对的,CA也需要更牛的CA给它签名,拿到更牛的CA公钥看能不能解开签名,就像你不相信区公安局可以打电话向市公安局去确认,从而保证非对称加密模式的正常运转。

Https的安全策略?
对称加密效率高,但是解决不了密钥传输问题;非对称加密可以解决这个问题,但是效率不高。
非对称加密需要通过证书和权威机构来验证公钥的合法性。
HTTPS 是综合了对称加密和非对称加密算法的 HTTP协议。既保证传输安全,也保证传输效率。

https的握手过程:
1.服务器生成公钥,私钥,把自己的公钥通过权威认证机构生成证书
2.客户端请求服务器证书(证书包含的信息有颁发机构,所有者,有效期,公钥),进行验证
3.验证通过后生成随机数,利用公钥加密随机数,服务器利用私钥进行解密,解密出的随机数作为对称加密的密钥
4.服务器,客户端通过对称加密密钥进行数据传输

题目12.你使用过quic吗?

TCP为了保证可靠性,使用序号和应答机制,来解决顺序问题和丢包问题。

一旦超时就会重发这个序号包,至于怎么才算超时,用自适应重传算法?超时通过采样往返的RTT不断调整的。

quic是递增的,任何一个序列号的包只发送一次,下次就要+1了,这次发送100没有返回,下次就是101,返回的ACK100就是对第一个包的响应,返回的ACK 101 就是对第2个包的响应,计算RTT(Round Trip Time).

怎么知道两个包的内容一样呢?发送的数据流里面有一个偏移量offset,通过offset查看数据发送到哪里了,offset的包没来就要重发,来了就拼接。

QUIC 的流量控制也是通过 window_update,来告诉对端它可以接受的字节数。

在 TCP 协议中,接收端的窗口的起始点是下一个要接收并且ACK 的包,即便后来的包都到了,放在缓存里面,窗口也不能右移,因为 TCP 的 ACK 机制是基于序列号的累计应答,一旦 ACK 了一个系列号,就说明前面的都到了,所以只要前面的没到,后面的到了也不能 ACK,就会导致后面的到了,也有可能超时重传,浪费带宽。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容