面试常见问题04 - 计算机网络(施工ing)

1. TCP、UDP的区别

1. TCP是有连接;UDP是无连接
2. TCP保证可靠性;UDP可能丢包
3. TCP传输效率低,要求系统资源多;UDP传输效率高,要求系统资源少
4. TCP连接只能是点到点、一对一的;UDP支持一对一,一对多,多对一和多对多的交互通信

2. TCP协议可靠性

  • 校验和:判断数据是否损坏
  • 序列号: TCP传输时将每个字节的数据都进行了编号
  • 确认应答:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。
  • 超时重传:发送方在发送完数据后等待一个时间,时间到达没有接收到ACK报文,那么对刚才发送的数据进行重新发送
  • 连接管理:通过三次握手与四次挥手来进行连接的建立与断开
  • 流量控制:根据接收端对数据的处理能力,决定发送端的发送速度,发送窗口取拥塞窗口和接收窗口中较小的那个
  • 拥塞控制:通过拥塞窗口、慢启动、快恢复来控制网络中的流量,避免网络拥塞

3. TCP中状态位的含义

  • SYN:同步标志,仅在三次握手建立TCP连接时有效
  • ACK:确认标志,ACK=1时确认序号才有效
  • FIN:结束标志,用于提出断开连接
  • PSH:推标志,指示接收方立即将数据提交给应用层,而不是等待缓冲区满
  • RST:复位标志,用于复位相应的TCP连接
  • URG:紧急标志,URG=1是紧急指针有效

4. TCP 的三次握手

  • 三次握手:保证双方都能够接收信息,是最少的安全次数
  • 两次或四次:两次握手不能保证客户端能够接收服务端的信息,而四次握手浪费资源
  • 报文丢失
三次握手:
1. SYN报文丢失,客户端接收不到SYN+ACK报文,则根据TCP超时重传机制重新发送SYN报文
2. SYN+ACK报文丢失,服务端接收不到ACK报文,则根据TCP超时重传机制重新发送SYN+ACK报文
3. ACK报文丢失,客户端认为连接已建立并发送数据,服务端在没接收到ACK报文的情况下接收到
   客户端发送的数据,则会发送一个RST报文通知客户端重置TCP连接

四次挥手:
1. 四次挥手过程中,客户端与服务端在没有接收到相应ACK报文的情况下会超时重传FIN报文
2. 客户端第四次挥手后,需要等待2MSL(最长报文寿命时间)来保证ACK报文成功到达服务端,并
   保证本次TCP连接的所有报文在网络中消失

5. RST报文的四种情况

1. 端口未打开
2. 请求超时
3. 提前关闭
4. 在一个已关闭的socket上收到数据

5. ping 命令工作过程

6. 滑动窗口的作用

7. 粘包怎么解决?

8. 一致性哈希

9. CAP原则

10. 路由器与交换机的区别

你可能感兴趣的:(面试常见问题04 - 计算机网络(施工ing))