Re: Fw: [请问] netstat -an 结果显示的格式问题

楼主: alemonmk (单色柠檬子)   2018-04-06 09:33:32
※ 引述《drkh (eutatosp)》之铭言:
: ※ [本文转录自 ask 看板 #1QnhIpXG ]
: 在 netstat -an 的结果显示里, 以下面几种格式呈现的"address:port"是何意义?
: (先不去管 State 的各种状态)
事实就是很关 state 事,因为你这里高达八成的问题都是 listening state socket 才会看到的。
: 第一例:
: Proto Local Address Foreign Address State
: TCP [::]:135 [::]:0
: 关于此例有两个问题.
: (1) 中括号内有两个冒号 [::], 是何意义?
IPv6 中等效于 IPv4 0.0.0.0 的位址。Socket bind 0.0.0.0 即绑电脑所有的 IP 位址,因为电脑可能有两张或以上的网络接口,这样就可以同时从所有接口接收连线。不过远端 0.0.0.0 是因为 TCP 连线四参数(本机位址,本机埠号,远端位址,远端埠号)在 listening 阶段有两个不存在,塞 0.0.0.0:0 其实就是个占位符。
: (2) [::]: 后面的 port 0, 是何意义?
上面顺便回答了。
: 第二例:
: TCP 192.168.0.1:139 0.0.0.0:0
: 请问 0.0.0.0:0 的 port 0 是何意义?
见上例(2)。
: 第三例:
: TCP [::1]:1306 [::1]:2869
: 请问 [::1] 是何意义?
简单说就是 IPv6 的 127.0.0.1。
: 第四例
: UDP 0.0.0.0:500 *:*
: 关于此例有两个问题.
: (1) *:* 是何意义?
见例一(1)。
: (2) 凡是在 Foreign Address 那一字段出现 *:* 时,
: 其右侧 State 字段均为空白. 为什么?
这是 UDP 的 listening socket,因为 UDP 是 connectionless 的,所以没有 state。
也因为这个特性你也不会在 netstat 看到远端有特定位址的 UDP 条目。
作者: atrix (班班)   2018-04-06 10:56:00
作者: drkh (eutatosp)   2018-04-06 11:56:00
多谢, 而且拍拍手...关于 :: 这个记号, 我现在知道它的意义是:"表示 1~9 这些数字之前的所有位元皆为 0".0.0.0.0:0 只伴随 TCP 出现, 而 *.* 只伴随 UDP 出现, 这是不是说, 0.0.0.0:0 这个占位符只用于 TCP, 而 *.* 这个占位符只用于 UDP ?如果是的话, 为什么 TCP 及 UDP 需要不同的占位符?

Links booklink

Contact Us: admin [ a t ] ucptt.com