`
ayufox
  • 浏览: 273586 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

主机不可达和端口不可达

阅读更多

      主机不可达和端口不可达不都是连接不上嘛,会有什么区别呢?果真如此吗,我们来写个小程序来试试,在地址的位置上,我们第一次使用一个不存在的主机IP,第二次使用一个存在的主机IP,但端口不存在。

public static void main(String[] args) throws Exception
{
    Socket socket = new Socket();
    InetSocketAddress addr = new InetSocketAddress("121.14.0.29", 12345);
    socket.connect(addr);
}

     在Linux环境下,对于不存在的端口(主机是linux),程序马上就报连接错误,而对于主机不存在,非常地糟糕,运行了很就一直没有返回,为什么会有这种区别呢(windows的测试结果会不太一样,后面会有说明)?我们使用Ethereal抓包来看一下有什么区别:
     1.端口不存在
 
      很幸运,对于端口不存在,对方(linux)在IP层会直接发一个RST(Reset)响应直接终止掉连接,客户端直接把连接终止。在Windows环境下不太一样, 如果对方为Windows服务器,则不会回RST响应,这种情况下与主机不存在一致。
     2.主机不存在

    很不幸,在TPC/IP的Linux环境的实现中,客户端在连接请求包没有得到响应的时候,会不断进行重试(实现认为可能是丢包),时间间隔分别是2秒/6秒/12秒/25秒/50秒(指数级增长,到达50秒后会以这个频度重试,在本机测试的时候(Rethat Linux Enterprise V4)一直持续了3分9秒。这样当然非常地糟糕,所以在连接的时候设置一下超时时间是非常地重要滴(见下面)。在Windows环境下结果不太一样,Windows的TCP/IP实现上,客户端只会重试一次,间隔是10秒钟。

socket.connect(addr, 300); //设置超时时间为300豪秒

    另外有一件非常奇怪的事情,就是不管是主机不存在还是端口不存在,网关和主机并不会返回主机不存在或端口不存在的ICMP消息

0
0
分享到:
评论

相关推荐

    南京邮电大学通达学院 网络安全课程设计系统端口扫描软件设计源代码.zip

    (2) 若ping可达,则设计程序对目标主机进行端口扫描,显示常见端口的扫描结果,识别目标操作系统类型。 (3)使用多线程实现能同时扫描多台主机。设计程序对IP地址(单个IP,一段IP范围)、指定主机名的端口(指定...

    [网络安全课设]基于JAVA的系统端口扫描软件设计实现(java代码+IDEA+UI图形界面+实验报告)

    (2) 若ping可达,则设计程序对目标主机进行端口扫描,显示常见端口的扫描结果,识别目标操作系统类型。 (3)使用多线程实现能同时扫描多台主机。设计程序对IP地址(单个IP,一段IP范围)、指定主机名的端口(指定...

    扫描器篇(五)之scapy构造UDP数据包完成主机发现

    目标端口不可达的消息,通过该特征可以对主机进行判断是否在线 注意事项 如果目标主机端口不在线,或者在线且目标端口为开放状态,那么发送出去的UDP数据包不会收到任何回复 判断条件 以返回包中的ip部分proto...

    JAVA项目源码之本地监听与远程端口扫描的实现.rar

    异常处理:在实现过程中,需要注意处理各种可能出现的异常情况,例如网络连接超时、目标主机不可达等情况,以保证程序的稳定性和可靠性。 安全性考虑:在进行远程端口扫描时,需要注意遵守网络安全法律法规,确保仅...

    发现网络中的活动主机--计算机网络课程设计.doc

    "类 型 代 码 描 述 " " 0 0 回送响应(PING应答) " "目的不可达 " "网络不可达 " "主机不可达 " "协议不可达 " "端口不可达 " "需要进行分片但设置了禁止分片比特 " "源主机选择路由失败 " "无法识别目的网络 " ...

    敲门:敲门一直等到主机可达

    敲门等待主机可达。 状态 类别 状态 版 依存关系 开发依赖 建立 执照 安装 $ npm install knockat 快速开始 首先,您需要在应用程序中添加对敲除的引用: const { knock } = require ( 'knockat' ) ; 如果使用...

    TCP_IP详解卷1

    9.3 ICMP主机与网络不可达差错 88 9.4 转发或不转发 89 9.5 ICMP重定向差错 89 9.5.1 一个例子 90 9.5.2 更多的细节 91 9.6 ICMP路由器发现报文 92 9.6.1 路由器操作 93 9.6.2 主机操作 93 9.6.3 实现 93 9.7 小结 ...

    python实现指定ip端口扫描方式

    在Linux中判断一台主机是否可达,可以使用ping命令,而判断端口是否打开,可以使用telnet命令,但是telnet命令没有超时时间的参数,使用起来不是很方便,那么可以利用Python来完成一个端口扫描的功能 socket实现端口...

    计算机网络技术-UDP协议分析教程

    如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用进程),就丢弃该报文,并由网际控制报文协议ICMP发送“端口不可达”差错报文给发送方。 2、 UDP的主要特点: 1)、UDP 是无连接的...

    Docker容器跨主机通信中直接路由方式详解

    单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通过在主机上用映射端口的方法来进行通信,有时这种方式会很不方便,甚至达不到我们的要求,因此位于不同物理...

    华为路由器配置命令大全.docx

    普通用户模式 enable 转入特权用户模式 exit 退出配置 help 系统帮助简述 language 语言模式切换 ping 检查网络主机连接及主机是否可达 show 显示系统运行信息 telnet 远程登录功能 tracert 跟踪到目的地经过了

    平湖国美网吧艾泰HiPER 4520NB革新方案

    艾泰HiPER 3300NBs智能...支持快速转发,吞吐量最高可达200M,最多60K PPS;基于MAC地址的内网主机上行和下载速率限制;基于地址,协议和端口的包过滤;支持网络时间同步;支持时间段管理;是高负载网络的理想选择。

    C2918717-WIFI模块-AP6275S-规格书-AMPAK(正基科技)WIFI模块规格书

    AP6275S是一个完全无缝的Wi-Fi和蓝牙功能模块漫游功能和高级安全性,还可以与不同供应商的802.11a/b/g/n/ac/ax 2x2接入点,采用MIMO标准,可达1200Mbps与双流。此外,AP6275S还包括SDIO接口用于Wi-Fi, UART/ PCM接口...

    台达DVP-ES2 DIDO 安装说明.pdf

    台达DVP-ES2 DIDO 安装说明pdf,台达DVP-ES2系列PLC是顺序控制主机的代表,提供小型PLC最具经济...高速脉冲输出:支持4点独立高速脉冲输出功能,(Y0、Y2)最高可达100kHz,(Y2、Y3)最高可达10kHz,8.内置四点高速计数器

    华为路由器命令 华为路由器命令

    基本命令 en 进入特权模式 conf 进入全局配置模式 ...ping 检查网络主机连接及主机是否可达 show 显示系统运行信息 telnet 远程登录功能 tracert 跟踪到目的地经过了哪些路由器 特权用户模式

    最新华为路由器命令.doc

    普通用户模式 enable 转入特权用户模式 exit 退出配置 help 系统帮助简述 language 语言模式切换 ping 检查网络主机连接及主机是否可达 show 显示系统运行信息 telnet 远程登录功能 tracert 跟踪到目的地经过了哪些...

    华为路由器设置.txt

    普通用户模式 enable 转入特权用户模式 exit 退出配置 help 系统帮助简述 language 语言模式切换 ping 检查网络主机连接及主机是否可达 show 显示系统运行信息 telnet 远程登录功能 tracert 跟踪到目的地经过了哪些...

    H3C的路由器配置命令详解.doc

    普通用户模式 enable 转入特权用户模式 exit 退出配置 help 系统帮助简述 language 语言模式切换 ping 检查网络主机连接及主机是否可达 show 显示系统运行信息 telnet 远程登录功能 tracert 跟踪到目的地经过了哪些...

    H3C的路由器配置命令详解(1).doc

    普通用户模式 enable 转入特权用户模式 exit 退出配置 help 系统帮助简述 language 语言模式切换 ping 检查网络主机连接及主机是否可达 show 显示系统运行信息 telnet 远程登录功能 tracert 跟踪到目的地经过了哪些...

Global site tag (gtag.js) - Google Analytics