计算机网络总结

90 阅读2分钟

计算机网络

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