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