LiSheng's blog LiSheng's blog
首页
笔记
个人简历
随笔集
GitHub (opens new window)
首页
笔记
个人简历
随笔集
GitHub (opens new window)
  • golang

  • cplus

  • leetcode

  • 存储技术

  • 分布式系统

  • 计算机网络

    • tcp通信
      • tcp三次握手及其状态变化
      • tcp四次挥手及其状态变化
      • http
    • Linux操作系统

    • Redis

    • 其他

    • 笔记
    • 计算机网络
    lisheng
    2024-09-10
    目录

    tcp通信

    在计算机网络的面试中,TCP(传输控制协议)是一个常见的话题。以下是一些与 TCP 相关的常见面试题及其简要解释:

    # 常见面试题

    1. 什么是 TCP?它的主要特性是什么?

      • 答案:TCP 是一种面向连接的、可靠的传输层协议。主要特性包括:
        • 可靠性:通过序列号和确认机制保证数据的可靠传输。
        • 流量控制:使用滑动窗口机制限制发送方的数据传输速率。
        • 拥塞控制:使用各种算法(如慢开始、拥塞避免、快重传和快恢复)来避免网络拥塞。
        • 有序传输:确保数据包按照发送顺序到达接收方。
    2. 解释 TCP 的三次握手过程。

      • 答案:三次握手的步骤如下:
        1. SYN:客户端发送一个 SYN(同步)报文段请求建立连接。
        2. SYN-ACK:服务器回应一个 SYN-ACK 报文段,表示同意连接,并发送自己的 SYN。
        3. ACK:客户端再发送一个 ACK(确认)报文段,连接建立完成。
    3. 解释 TCP 的四次挥手过程。

      • 答案:四次挥手的步骤如下:
        1. FIN:客户端发送一个 FIN (结束)报文段,表示希望关闭连接。
        2. ACK:服务器回应一个 ACK 报文段,确认收到关闭请求。
        3. FIN:服务器发送 FIN 报文段,表示也准备关闭连接。
        4. ACK:客户端回应 ACK 报文段,连接关闭完成。
    4. 什么是拥塞控制(Congestion Control)?常见的拥塞控制算法有哪些?

      • 答案:拥塞控制是用来管理数据流向网络的机制,以避免网络拥堵。常见的算法有:
        • 慢开始(Slow Start):初始化时以指数速度增加发送窗口大小。
        • 拥塞避免(Congestion Avoidance):在网络未拥塞时,以线性方式增加窗口。
        • 快重传(Fast Retransmit):接收到重复确认时立即重传丢失的数据包。
        • 快恢复(Fast Recovery):在检测到拥塞后使用拥塞窗口控制流量。
    5. TCP 如何确保数据的可靠性?

      • 答案:TCP 通过以下几种方式确保数据的可靠性:
        • 序列号:每个字节都分配一个序列号,接收方可以通过序列号检测丢失的字节。
        • 确认(ACK):接收方确认接收到的字节,指定下一个期望接收的字节序列号。
        • 重传机制:如果发送方没有收到确认,会重传数据。
        • 校验和:TCP 使用校验和检测数据包是否在传输过程中被损坏。
    6. 解释 TCP 和 UDP 的区别。

      • 答案:TCP 和 UDP 的主要区别包括:
        • 连接性:TCP 是面向连接的,UDP 是无连接的。
        • 可靠性:TCP 提供可靠性,而 UDP 不提供。
        • 数据传输顺序:TCP 确保数据顺序,UDP 不保证顺序。
        • 流量控制:TCP 有流量控制机制,UDP 没有。
        • 头部开销:TCP 头部开销大(20-60 字节),UDP 头部开销小(8 字节)。
    7. 如何在网络中检测和处理 TCP 拥塞?

      • 答案:可以通过使用拥塞控制算法,如慢开始、拥塞避免、快重传等来检测和处理 TCP 拥塞。此外,网络监控工具也可以帮助检测网络延迟和包丢失。
    8. TCP 的窗口大小是什么?

      • 答案:TCP 窗口大小指的是在确认之前可以发送的数据量。窗口大小的动态调整有助于流量控制,确保发送方不会超过接收方的处理能力。
    9. TCP 连接的状态有哪些?

      • 答案:TCP 连接的状态包括:
        • CLOSED
        • LISTEN
        • SYN_SENT
        • SYN_RECEIVED
        • ESTABLISHED
        • FIN_WAIT_1
        • FIN_WAIT_2
        • CLOSE_WAIT
        • LAST_ACK
        • TIME_WAIT
        • CLOSED
    10. TCP 的最大报文段大小(MSS)是什么?

      • 答案:MSS 是在 TCP 连接中可发送的最大数据段大小,通常由双方在建立连接时协商。MSS 通常会受到网络 MTU 的限制。
    编辑 (opens new window)
    上次更新: 2024/09/13, 11:59:12
    gossip、raft、swim对比
    tcp三次握手及其状态变化

    ← gossip、raft、swim对比 tcp三次握手及其状态变化→

    最近更新
    01
    ceph分布式存储-对象存储(RGW)搭建
    10-27
    02
    ceph分布式存储-集群客户端连接
    10-27
    03
    ceph分布式存储-管理crushmap
    10-27
    更多文章>
    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式