计算机网络
1.TCP/IP协议群做了哪些事情
- 报文拆分
- 增加协议头
- 数据传输
- 路由寻址
- 数据重组
2.IPv4和Ipv6的区别
- ipv4是32位只能支持20亿的ip地址,ipv6是128位,基本无上限
- ipv4地址稀缺,需要竞争,ipv6一个人可分配几万个
- 寻址方式不同,ipv4基于掩码和物理mac地址,ipv6固定计算方式
- 地址解析策略不同,ipv4需要按照APR协议,ipv6基于无状态的邻居协议
- DNS不同,ipv4是A ipv6是AAAA
3.TCP和UDP的区别
- TCP头部大,UDP头部小
- TCP保证正确性(可靠性)UDP不保证,udp传输更快
- UDP实现广播成本低
- 会话VS无会话
- TCP基于流,UDP基于报文
4.TCP如何确保数据顺序
- 为什么需要保证:TCP拆分封包的时候是顺序拆分的,但是包会无序的到达目的地
- 方法:利用(SEQ, ACK)编号确定封包的唯一性
- 方法:利用滑动窗口存放没有排好序的封包,直到窗口中完全有序才发送ACK。如果有包丢失,就会一直不发ACK。 如果窗口大小是4,发送ABCD,如果只有BD到目的地,那么滑动窗口中是_B_D
5.如果网络延迟是30ms,那么Ping一个网站需要多少ms? 如果请求一个HTTPS协议的网站,TTFB至少ms
ping走的是udp协议,故只要两次连接,60ms
https经过3次握手,3次https认证,需要6次 180ms
6.LRU是什么
缓存置换:缓存满了后,每次创建新的缓存条目,就会删除旧的缓存条目。
7.NIO有什么优势
- Reactive模型+非阻塞(减少线程切换)
- 内核级别拷贝内存到JVM(减少系统调用) 缓冲区增加数据处理的灵活性(clear/flip等操作)
- 处理I/O场景有明显性能优势
8.一次DNS查询最快和最慢差距有多大
- 最快命中本地浏览器缓存
- 最慢需要到服务商(ISP)-> Root服务器 -> 顶级域名服务器 -> 权威服务器 链路很长。 DNS是分级缓存策略,每级缓存都非常强大。
9.HTTP keep-alive和http2.0的多路复用有什么区别?
- keep-alive : 复用TCP连接发送请求,节省了握手时间,本质还是串行。
- http2.0 多路复用: 数据被打散成为小块,本质是并行
10.强制缓存和协商缓存的区别
- 强制缓存强制执行,强制缓存不需要再发送请求给服务端。
- 协商缓存需要发送请求给服务端验数据版本,如果有新版本的数据就需要重新下发数据,如果没有就返回304 Not Modified。 Etag Last-Modified