20200705一些字节面经

https://www.nowcoder.com/discuss/447129?channel=666&source_id=home_feed
字节新鲜面经(凉经)
1.TCP UDP协议的头部数据
(1)TCP
20200705一些字节面经_第1张图片
源端口号 目的端口号 各2个字节
序号 4字节
确认号 4字节
数据偏移 4位
保留 6位 标志位 URG 紧急字段 ACK 确认 PSH 推送 RST 复位 连接错误时重建连接
SYN 同步 请求连接的信号 FIN 释放连接的信号
窗口
检验和
紧急指针
选项
数据

(2)UDP
首部字段和数据字段
首部占8个字节 分别是源端口 目的端口 长度和检验和

2.HTTP2.0有哪些改
参考文献 https://www.jianshu.com/p/0c832f22881b
(1)多路复用:而HTTP/2的多路复用则允许同时通过单一的HTTP/2连接发起多重的请求/响应消息。
(2)二进制分帧 在不改动HTTP/1.x的语义、方法、状态码、uri以及首部字段等等的情况下,HTTP2是如何做到【突破HTTP1.1的性能限制,改进传输性能,实现低延迟和高吞吐量】?
关键之一就是在应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层。
HTTP/2通信都在一个连接上完成,这个连接可以承载任意数量的双向数据流
总结 HTTP2.0采用单连接多资源的方式,减少服务器端的连接压力,内存占用更小,连接吞吐量更大。
由于TCP连接的减少使得网络拥堵的情况有所改善,并且慢启动的时间减少,会使拥堵和丢包恢复的速度更快。
(3)首部压缩
(4)服务端推送 服务端推送是一种在客户端请求之前发送数据的机制。在HTTP2.0中服务端可以对客户端的一个请求发送多个响应。
3.http & https 默认端口号
HTTP协议端口是80,HTTPS协议端口是443
4.HTTPS建立连接的过程
一、客户端发起https连接
当用户在浏览器(后文称作客户端)地址栏敲击https://www.scwipe.com时,浏览器去到DNS服务器获取此url对应的ip,然后客户端连接上服务端的443端口,将此请求发送给到服务端,此时客户端同时将自己支持的加密算法带给服务端;
二、服务端发送证书
在讲这一段之前插播一条小知识点:私钥加密的密文只有公钥才能解开;公钥加密的密文只有私钥才能解开。
服务端收到这套加密算法的时候,和自己支持的加密算法进行对比(也就是和自己的私钥进行对比),如果不符合,就断开连接;如果符合,服务端就将CA证书发送给客户端
这里服务端发送的东西是用私钥进行加密的,公钥都能解开,并不能保证发送的数据包不被别人看到,所以后面的过程会和客户端商量选择一个对称加密(只能用私钥解开,这里详情请移步非对称、对称加解密相关问题)来对传输的数据进行加密。
三、客户端验证服务端发来的证书
1、验证证书
客户端验证收到的证书,包括发布机构是否合法、过期,证书中包含的网址是否与当前访问网址一致等等。
2、生成随机数(此随机数就是后面用的对称加密的私钥)
3、生成握手信息
用证书中的签名hash算法取握手信息的hash值,然后用生成的随机数对[握手信息和握手信息的hash值]进行加密,然后用公钥将随机数进行加密后,一起发送给服务端。其中计算握手信息的hash值,目的是为了保证传回到服务端的握手信息没有被篡改。
四、服务端接收随机数加密的信息,并解密得到随机数,验证握手信息是否被篡改。
服务端收到客户端传回来的用随机数加密的信息后,先用私钥解密随机数,然后用解密得到的随机数解密握手信息,获取握手信息和握手信息的hash值,计算自己发送的握手信息的hash值,与客户端传回来的进行对比验证。

如果验证无误,同样使用随机字符串加密握手信息和握手信息hash值发回给到客户端
五、客户端验证服务端发送回来的握手信息,完成握手
客户端收到服务端发送过来的握手信息后,用开始自己生成的随机数进行解密,验证被随机数加密的握手信息和握手信息hash值。
参考文献
https://www.pianshen.com/article/1027875259/

字节面经2 参考文献
https://www.nowcoder.com/discuss/447249?channel=666&source_id=home_feed

1.缓存淘汰算法有哪些? 页面置换算法
OPT最佳替换算法(不可能实现),FIFO,LRU(最近最久未使用算法),CLOCK时钟算法,
最不常用算法(每次使用的时候标记位加1 置换的时候把标记值最小的置换出去)
2. 从浏览器敲入baidu.com到回车的过程中发生了什么
见https://www.nowcoder.com/tutorial/93/e1b14ab2b40a4ef98d9e55830eb48d66
DNS解析域名为IP 然后https协议 秘钥 TCP协议 IP负责分组交换网上的不同主机之间的通信

你可能感兴趣的:(企业真题笔记)