`

ip : 0.0.0.0:8080

 
阅读更多

问:

请问为什么下面看到的tomcat地址是0.0.0.0:8080

C:\WINDOWS\system32>netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       232

不是127.0.0.1吗

 

答:

127.0.0.1是保留IP,无论你的外部IP是什么系统都保留这Ip识别,   
  0.0.0.0应该是做为动态IP用,因为我发现上网后它会被外部ip替换 

INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。

  例如MontiVista Linux中在/usr/include/netinet/in.h定义为:

  /* Address to accept any incoming messages. */

  #define INADDR_ANY ((in_addr_t) 0x00000000)

  一般情况下,如果你要建立网络服务器应用程序,则你要通知服务器操作系统:请在某地址 xxx.xxx.xxx.xxx上的某端口 yyyy上进行侦听,并且把侦听到的数据包发送给我。这个过程,你是通过bind()系统调用完成的。——也就是说,你的程序要绑定服务器的某地址,或者说:把服务器的某地址上的某端口占为已用。服务器操作系统可以给你这个指定的地址,也可以不给你。

  如果你的服务器有多个网卡(每个网卡上有不同的IP地址),而你的服务(不管是在udp端口上侦听,还是在tcp端口上侦听),出于某种原因:可能是你的服务器操作系统可能随时增减IP地址,也有可能是为了省去确定服务器上有什么网络端口(网卡)的麻烦 —— 可以要在调用bind()的时候,告诉操作系统:“我需要在 yyyy 端口上侦听,所以发送到服务器的这个端口,不管是哪个网卡/哪个IP地址接收到的数据,都是我处理的。”这时候,服务器程序则在0.0.0.0这个地址上进行侦听。例如:

  Proto Recv-Q Send-Q Local Address Foreign Address (state)

  ……

  udp4 0 0 *.7913 *.* 

  udp4 0 0 *.7911 *.*

  tcp4 0 0 *.ftp *.* LISTEN

  ……

  ……

  以上这些是网络侦听的情况,其中Local Address 为 “*.ftp”、“*.7911”等,代表了服务程序绑定了服务器的所有网卡。

  好了,你明白了侦听INADDR_ANY是什么意思了,那么,我的服务器有N个IP地址,会不会收到重复的数据包?收到数据包后,是不是会重复回复客户端呢?

  答案是:不会收到重复的数据包,也不会重复发送数据。

  为什么呢?因为路由的关系,从客户端来的IP包只可能到达其中一个网卡。同时在服务器进程发送数据时,操作系统根据自身维护着的路由表,决定IP数据包应该c从哪一个outbound的gateway向目标端发送。根据gateway选择的不同,也就决定了从哪一个网卡/哪个IP地址发送。

  为什么不会接收到重复的数据包呢?

  答:因为客户端只向你的服务器上的唯一一个IP地址发送数据了。

  为什么不会重复发送数据包呢?

  答:因为发送数据包的路由(路径)是唯一的。如果服务器不知道在发送数据的时候应该向哪个地址发送数据,那么数据就会被发送到“默认网关”上。

  如何选择发送数据的路径呢?

  答:依照路由表的要求发送。

  如果路由表的记录有重复/有冲突呢,这时候如何选择路径呢?

  答:路由表记录有优先级别。一般来说,Windows操作系统的路由表记录,如果是重复的话,以后来加入的记录为准,而某些操作系统,象linux/FreeBSD是不允许加入重复的路由表记录的;

  如果是专用的路由器,有路由选择算法,一般来说,到达网络上的某一点的路径是可以有很多条的。路由选择算法可以确定“最好的一条路径”,这条路径要么是延时最小的,要么是通讯费用最低的,要么是带宽最高的,要么是跳点最小的——究竟是如何选择,就看路由器的管理员如何配置了。

  对于客户端如果绑定INADDR_ANY,情况类似。对于TCP而言,在connect()系统调用时将其绑顶到一具体的IP地址。选择的依据是该地址所在子网到目标地址是可达的(reachable). 这时通过getsockname()系统调用就能得知具体使用哪一个地址。对于UDP而言, 情况比较特殊。即使使用connect()系统调用也不会绑定到一具体地址。这是因为对UDP使用connect()并不会真正向目标地址发送任何建立连接的数据,也不会验证到目标地址的可达性。它只是将目标地址的信息记录在内部的socket数据结构之中,共以后使用。只有当调用sendto()/send()时,由系统内核根据路由表决定由哪一个地址(网卡)发送UDP packet.

  P.S.

  -----------------------------------------------------------------------------

  在IP层中有一个路由表:

  在MSDOS窗口可以运行命令:netstat -r 

  来显示路由表。根据路由表的条目从指定的网卡发送数据。

  ARP缓存用:arp -a

  来显示。

  通常以太网帧的目的MAC地址,是下一跳的MAC地址。
分享到:
评论

相关推荐

    0.0.0.0是什么IP,0.0.0.0是什么意思

    创建socket开端口时要指定IP,这个大家都会 要么是127.0.0.1要么是公网IP 但是0.0.0.0是什么IP? 他可是个一举两得的好东西

    Local Address IP的0.0.0.0是什么意思,与127.0.0.1有何区别,IPv6的:::三个冒号又什么意思

    Local Address IP的0.0.0.0是什么意思,与127.0.0.1有何区别,IPv6的:::三个冒号又什么意思

    修改elasticsearch监听端口 从0.0.0.0 为127.0.0.1

    elasticsearch 在Centos上,修改elasticsearch监听端口 从0.0.0.0 为127.0.0.1,提供文档说明

    NetViewG.exe v0.0.0001 beta1

    文件版本 : 0.0.0001 beta1 说明 : NetViewG 版权 : PurpleEndurer 备注 : 产品版本 : 0.0.0001 beta1 产品名称 : NetVewG 公司名称 : PurpleEndurer 合法商标 : PurpleEndurer 内部名称 : NetViewG 源文件名 : ...

    cisco 3560 交换机 配置

    access-list 100 deny ip 172.17.6.0 0.0.0.255 any access-list 100 permit ip any any access-list 101 deny ip 172.17.5.0 0.0.0.255 172.17.2.0 0.0.0.255 access-list 101 deny ip 172.17.5.0 0.0.0.255 172.17...

    新IP段58.30.0.0 58.31.255.255

    58.30.0.0 58.31.255.255 58.83.128.0 58.83.255.255 58.116.0.0 58.119.255.255 58.128.0.0 58.135.255.255 58.194.224.0 58.195.15.255 58.206.224.0 58.207.15.255 59.64.16.0 59.65.255.255 59.108.0.0 59.109....

    PyPI 官网下载 | dlna-0.0.9.1.tar.gz

    资源来自pypi官网。 资源全名:dlna-0.0.9.1.tar.gz

    NetView 0.0.0.1 beta1

    NetViewG.exe v0.0.0001 beta1 http://download.csdn.net/source/361970 用 MASM32 写的 4.5KB 的 netstat--NetView.exe NetView.exe功能与Windows自带的 netstat 命令相似,用于显示协议统计信息和当前 TCP/IP ...

    如何设置局域网IP.doc

    A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255.255.255 C类IP段 192.0.0.0 到223.255.255.255 XP默认分配的子网掩码,每段只有255或0 A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳...

    cisco路由器双出口策略应用

    cisco路由器双出口策略应用 ROUTER>EN ROUTER#CONFIG T Router(Config)>int fa 0/0 Router(Config-if)>ip addr 192.168.0.1 255.255....Router(Config)>Access-list 101 permit Ip 192.168.0.0 0.0.0.255 218.67.128.0

    Delphi实现枚举所有网卡信息,成功识别当前使用的那个网卡

    Delphi实现枚举所有网卡信息,成功识别当前使用的那个网卡 正在使用的网卡MAC:04-A1-51-B6-54-... Primary WINS: A: 0.0.0.0 M: 0.0.0.0; Secondary WINS: A: 0.0.0.0 M: 0.0.0.0; Lease obtained: Lease expires:

    USG2110路由器配置图解.doc

    配置静态路由: 网络管理/路由配置/新建静态路由/输入目的IP地址/掩码:0.0.0.0/0.0.0.0,下一跳 118.182.16.1。单击应用即可。 3. DNS配置 1)、网络管理/DNS配置/基本配置 使能域名解析 打钩,使能DNS代理 打钩 ...

    windows XP 系统关闭445端口方法

    windows xp 关闭445端口。 注册表修改一个键值而已, 下载后双击运行, 然后重启电脑即可。 附命令行下查看445端口是否打开的方法: ...4. 串口一般为 ip地址 + 冒号 + 端口如上述中的 0.0.0.0:135 其中135是端口

    实验报告--防火墙实验.pdf

    (2)在R1上启动防火墙功能 (3)在R1上定义访问控制列表 Acl number 2000 Rule 0 permit source 192.168.2.10 0 Rule 1 deny source 192.168.2.0 0.0.0.255 (4)在R1上使访问控制列表生效 Interface s0 Firewall packet...

    ESP8266透传固件,1Mflash版本

    ESP8266透传固件。适合1Mflash的模块,例如野火,并且支持最新的at_device,可以在rtthread上对接esp8266模块, \ | / - RT - Thread Operating System / | \ 4.1.0 build Jan 23 2022 13:...dns server #1: 0.0.0.0

    利用ip安全策略关闭危险端口

    TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING TCP 192.168.128.128:139 0.0.0.0:0 LISTENING UDP 0.0.0.0:445 *:* UDP 192.168.128.128...

    sysInfo-0_0_0001.zip

    文件版本 : 0.0.0001 beta1 说明 : 电脑系统信息 版权 : PurpleEndurer 产品版本 : 0.0.0001 beta1 产品名称 : 电脑系统信息 公司名称 : PurpleEndurer 合法商标 : PurpleEndurer 内部名称 : SysInfo 源文件名 : ...

    其他人如何查看前端工程师在本地跑的vue项目(0.0.0.0)

    那就是在config文件夹下的index.js文件中 将 host : ‘localhost’,修改为 host: ‘0.0.0.0’ 就可以了。 然后别人只需要访问 http:// + 前端电脑的IP地址 + 端口号 就可以直接访问他本地在跑的项目了! 话不多说,...

    ip测试 节点测试 终点测试

    获得主机配置信息,包括 IP 地址、子网掩码和默认网关。查看、更改IP地址与MAC地址的映射关系。显示计算机与网络的连接情况。 链路测试 检测网络连通情况和分析网络速度;用于确定IP数据包到达目标所经过的路径...

    20-50人规模网络设计(静态ip地址)【基于华为ensp】

    ip route-static 0.0.0.0 0.0.0.0 202.1.1.2 //缺省路由 acl number 2000 rule 5 permit source 192.168.1.0 0.0.0.255 //NAT地址翻译 interface Ethernet0/0/8 ip address 202.1.1.1 255.255.255.0 nat outbound ...

Global site tag (gtag.js) - Google Analytics