`
tyytzy
  • 浏览: 38044 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

TCP三次握手各种异常

 
阅读更多

 

和TCP三次握手有关的面试题

分类: 网络 673人阅读 评论(0) 收藏 举报

在面试的过程中,TCP三次握手是一个出现频率比较多的话题。三次过程如下图所示:

           Client                             Server

              |------------SYN1----------->|

              |                                       |

              |<------SYN2+ACK1---------|

              |                                       |

              |--------- ACK2------------->|

 

下面列一些常见的几个问题。

1. Q:向一个不存在但合法的公网IP任意端口发送SYN包会出现什么情况?

    A:返回ICMP主机不可达。

 

2. Q:向一个存在的IP但未绑定的端口发送SYN包会出现什么情况?

    A:返回TCP RST segment。

 

3. Q: 第一个SYN包丢失了,客户主机(主动连接方)会采取什么动作?

    A:重传,重试几次后(一般是3次)失败后,连接失败。

 

4. Q: 为什么连接建立的过程作3次TCP segment交互,而不是4次?

    A:Server端的SYN&ACK在一个TCP segment传给了Client。

 

5. Q:什么情况下将会出现4次TCP segment交互?

    A: 连接的两端同时打开。

 

6. Q: 第二个SYN2(就是图示中的SYN2+ACK1)丢失了,将出现什么情况?

    A: Client收不到SYN2而不发送ACK2,Server端将超时重发。

 

7. Q: ACK2丢失了将会怎样?

    A: Server端认为Client没收到SYN2+ACK1,重发SYN2+ACK1;另外连接处于未完成的状态,如果出现大量的ACK2丢失,未完成的连接队列会出现“满”的状态,从而不能再接收SYN1。这就是DOS。

 

还有一些和Socket APIs结合起来的问题,比如connect内部做了什么?accept做了什么?accept执行速度慢了将会出现什么现象?等等。这个问题可以参考上一篇文章:

      http://blog.csdn.net/herm_lib/archive/2010/11/14/6008281.aspx

分享到:
评论

相关推荐

    TCP三次握手和四次挥手面试题详解.pdf

    TCP三次握手和四次挥手是互联网中最重要的基础知识点之一,尤其在面试中,它们是检验应聘者是否具备扎实网络基础知识的常用问题。面试官通常会考察应聘者对这些过程的理解程度,以及能否准确描述其细节。以下是关于...

    tcp三次握手协议

    TCP的三次握手是建立可靠连接的重要过程,它确保了两个通信端点都能正确理解对方的意图,避免了数据丢失或重复发送的问题。 首次握手:在TCP连接建立之初,客户端会发送一个带有SYN(同步序列编号)标志的数据包给...

    TCP三次握手及会话劫持原理与实例

    ### TCP三次握手过程详解 #### 一、三次握手的基本概念 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。为了确保数据传输的可靠性和准确性,TCP采用了一种称为“三次握手”的机制来...

    TCP三次握手与四次挥手简解(csdn)————程序.pdf

    在TCP连接的建立和关闭过程中,三次握手和四次挥手确保了数据的可靠传输,防止了各种异常情况对连接的影响,如半开连接、重复报文等。这些机制是TCP作为可靠传输协议的基础,也是网络编程中不可或缺的知识点。

    tcp三次握手四次挥手.md

    TCP三次握手和四次挥手是计算机网络中用于实现可靠传输的基础机制。TCP协议通过这两种机制确保数据能够准确无误地从发送端传输到接收端,同时保证连接的建立和关闭是有序的。 ### 三次握手 三次握手是TCP连接建立...

    p124 - p163 TCP三次握手 四次挥手原理解析

    "TCP 三次握手四次挥手原理解析" TCP 协议是传输层的可靠数据传输服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。TCP 协议工作在传输层,位于 IP 层之上,IP 层是“不可靠”的,不保证网络包...

    1_1.Tcp的三次握手和四次挥手.zip

    **一、TCP三次握手** 三次握手是TCP建立连接时的过程,确保双方都能正确地建立通信。这个过程分为以下三个步骤: 1. **SYN(同步序列编号)**:当客户端想要与服务器建立连接时,它会向服务器发送一个SYN报文段,...

    TCP抓包分析.doc

    TCP三次握手是建立连接的过程,包括以下步骤: 1. 客户端发送一个带有SYN标志的数据段,请求连接。 2. 服务器回应一个SYN+ACK,确认并同意连接请求。 3. 客户端再回应一个ACK,确认服务器的SYN,至此连接建立完成。 ...

    握手

    总的来说,虽然JavaScript开发者不直接操作TCP层面的细节,但理解TCP三次握手对于优化网络应用性能、处理网络异常、设计更高效的网络通信策略等都是至关重要的。了解这一基础网络概念,有助于提升JavaScript编程的...

    白话理解TCP为什么一定要进行三次握手

    在TCP/IP协议栈中,TCP(传输控制协议)被设计...总的来说,TCP的三次握手是为了建立一个可靠的、双工的连接,避免由于网络问题或通信异常导致的数据丢失或误解。这个过程是TCP协议保证数据传输可靠性的重要机制之一。

    TCP握手挥手的过程分析.

    在TCP三次握手的过程中,服务器会维护一个未连接队列。当服务器接收到客户端的SYN报文后,就会在未连接队列中为这个连接开辟一个条目,表示服务器已经收到了SYN包,并等待客户端的确认。一旦客户端发送确认包,...

    TCP调试助手源码_tcp助手源码_TCP助手源代码_TCP助手源码_

    1. **三次握手与四次挥手**:TCP连接的建立和断开都需要通过特定的握手过程。三次握手确保了连接的可靠性,而四次挥手则确保了数据传输完成后连接的正常释放。 2. **滑动窗口机制**:TCP使用滑动窗口来控制发送和...

    TCP IP 详解三宗卷,tcp,ip详解(三卷全)pdf,C,C++

    卷3《TCP/IP详解:TCP事务协议》聚焦于TCP的事务处理,如TCP的三次握手和四次挥手过程,这是建立和断开TCP连接的关键步骤。同时,这本书也探讨了TCP的性能优化和异常情况处理,以及TCP与其他应用层协议的交互。 ...

    TCP序列号攻击的原理及预防方法

    TCP(传输控制协议)是一种...通过理解TCP三次握手过程以及ISN的生成机制,可以更好地掌握这种攻击的原理。同时,通过对TCP协议的改进、采用加密技术以及加强网络监控,能够有效预防和减轻TCP序列号攻击带来的危害。

    Floodlight TCP连接异常原因分析

    TCP是一种面向连接的、可靠的传输协议,它通过三次握手建立连接,四次握手释放连接。在Floodlight控制器中,TCP连接异常通常表现为过多的“CLOSE-WAIT”状态,这暗示着连接的释放过程中存在问题。 1. **TCP连接的...

    MODBUS-TCP.rar_TCP通信标准_modbus TCP_modbus 标准_modbus-tcp_modbus标准

    4. **连接管理**:TCP的三次握手建立连接,四次挥手断开连接,确保了设备之间的安全通信。MODBUS-TCP通信通常基于持久连接,即一次连接可以处理多个请求,直到连接被主动关闭。 5. **多设备通信**:在一个网络中,...

    TCP_Tester、TCP_TESTER

    1. **连接测试**:用户可以设置源和目标IP地址以及端口号,模拟TCP三次握手建立连接的过程,检查网络连通性。 2. **数据传输**:工具允许用户自定义发送的数据包内容和大小,测试网络带宽、延迟和丢包率,这对于...

    燕大计算机网络三级项目TCP传输数据包

    在这个项目中,学生会深入理解TCP的工作原理,包括连接建立(三次握手)、数据分片与重组、流量控制、拥塞控制等关键技术。通过实际编程实现,学生将学习如何创建TCP客户端和服务器,发送和接收数据包,并确保数据的...

    TCP链接异常断开检测程序

    TCP(Transmission Control Protocol)是一种基于连接的传输层协议,它保证了数据的可靠传输,通过三次握手建立连接,四次挥手断开连接。然而,在实际网络环境中,由于各种原因,如网络故障、主机崩溃等,可能导致...

    tcpTrace工具压缩包

    1. **诊断连接问题**:通过查看TCP三次握手和四次挥手的过程,可以判断是否存在连接失败、超时或异常断开的情况。 2. **流量分析**:监控数据包的发送和接收速率,识别是否存在网络拥塞、丢包或延迟过大的问题。 3. ...

Global site tag (gtag.js) - Google Analytics