连接一个 IP 不存在的主机时,会发生什么?(面试)

文章探讨了当连接IP不存在的主机时,TCPSYN消息和ARP请求的重发策略。TCP使用指数退避算法,而ARP请求基于固定超时。两者差异源于TCP在传输层处理连接建立,而ARP在数据链路层寻找MAC地址映射。
摘要由CSDN通过智能技术生成

一、IP 不存在时

  • 如果 IP 在局域网内,会发送 N 次 ARP 请求获得目的主机的 MAC 地址,同时不能发出 TCP 握手消息。

  • 如果 IP 在局域网外,会将消息通过路由器发出,但因为最终找不到目的地,触发 TCP 重试流程。

二、IP 地址存在但端口号不存在时

  • 不管目的 IP 是回环地址还是局域网内外的 IP 地址,目的主机的传输层都会在收到握手消息后,发现端口不正确,发出 RST 消息断开连接。

  • 当然如果目的机器设置了防火墙策略,限制他人将消息发到不对外暴露的端口,那么这种情况,发送端就会不断重试第一次握手。

最后留个问题,连一个 不存在的局域网外 IP的主机时,我们可以看到 TCP 的重发规律是:开始时,每隔 1s 重发五次 TCP SYN消息,接着 2s,4s,8s,16s,32s 都重发一次;

对比连一个 不存在的局域网内 IP的主机时,却是每隔 1s 重发了 4 次ARP请求,接着过了 32s 后才再发出一次 ARP 请求。已知 ARP 请求是没有重传机制的,它的重试就是 TCP 重试触发的,但两者规律不一致,是为什么?

答案:在这两种情况下,TCP SYN消息和ARP请求的重发规律之所以不一致,是因为它们针对的是不同的网络层协议和问题。

  1. 对于TCP SYN消息的重发规律:

    TCP协议是在传输层工作的,用于建立可靠的连接。当尝试连接到一个不存在的IP地址时,TCP协议会根据指数退避算法进行重试,即每次重试的间隔时间会指数级增加。这样做是为了避免网络拥塞和资源浪费。
  2. 对于ARP请求的重发规律:

    ARP协议是在数据链路层工作的,用于解析IP地址到MAC地址的映射关系。当主机要发送数据到另一个主机时,首先需要知道目标主机的MAC地址,而ARP请求就是用来获取目标主机的MAC地址的。当ARP请求没有收到响应时,主机会重发ARP请求。但ARP请求的重试机制不同于TCP的指数退避算法,通常由操作系统或网络设备设置一个固定的超时时间来确定何时重新发送ARP请求。

        因此,尽管两者都是重试机制,但TCP SYN消息和ARP请求的重发规律因其所解决的问题和所处的网络层而有所不同。

参考:连接一个 IP 不存在的主机时,握手过程是怎样的?

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一些关于TCP/IP的常见面试问题及其答案: 1. 什么是TCP/IP协议? TCP/IP(Transmission Control Protocol/Internet Protocol)是一组用于在计算机网络中进行通信的协议。它提供了可靠的数据传输、分组交换、路由和网络互连等功能,是互联网的核心协议。 2. TCP和UDP有什么区别? - TCP(Transmission Control Protocol)是一种面向连接的协议,提供可靠的数据传输,确保数据的有序性和完整性。它使用三次握手建立连接,并使用确认机制和重传机制来确保数据的可靠传输。 - UDP(User Datagram Protocol)是一种无连接的协议,提供不可靠的数据传输。它不保证数据的有序性和完整性,也不提供确认机制和重传机制,但具有低延迟和较小的开销。 3. TCP的三次握手是什么?为什么需要三次握手? 三次握手是TCP建立连接的过程: 1. 客户端发送一个SYN报文段到服务器,并进入SYN-SENT状态。 2. 服务器收到SYN报文段后,回复一个SYN+ACK报文段给客户端,并进入SYN-RECEIVED状态。 3. 客户端收到服务器的SYN+ACK报文段后,发送一个ACK报文段给服务器,确认连接建立,并进入ESTABLISHED状态。 三次握手的目的是确保双方都能收到对方的确认信息,并建立起可靠的连接。 4. IP地址的分类有哪些? IP地址按照网络的规模和需求可以分为以下几类: - A类地址:用于大型网络,第一个字节范围是1-126。 - B类地址:用于中型网络,第一个字节范围是128-191。 - C类地址:用于小型网络,第一个字节范围是192-223。 - D类地址:用于多播(Multicast)通信,第一个字节范围是224-239。 - E类地址:保留地址,用于实验和研究。 5. 什么是子网掩码? 子网掩码用于将IP地址分成网络地址和主机地址两部分。它通过将IP地址中的网络位设置为1,主机位设置为0来实现。子网掩码的长度表示网络位的个数。 这些问题涵盖了关于TCP/IP协议的一些基本概念和常见问题。当然,在面试中还可能涉及更深入和具体的问题,具体取决于面试官对TCP/IP的关注点和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值