網路程式開發者所需要的網路知識 ( Concepts for a network programmer )
身為一個網路程式開發者所需要的網路知識可能如下: 網路工具的使用。 網域名稱與主機位址。 通訊協定。 網路封包。 網路工具的使用 在Linux Ubuntu上可利用下面指令來安裝網路工具: sudo apt - get install netcat - openbsd tcpdump traceroute mtr 請在Linux下試試底下的指令: ip addr show eth0 ip route show ping - c3 8 . 8 . 8 . 8 ip route show default netstat - nr host - t aaaa google.com host - t mx tw.yahoo tcpdump - n - c5 - i eth0 port 22 traceroute tw.yahoo.com mtr tw.yahoo.com printf 'HEAD / HTTP / 1 . 1 \ r \ nHost : tw.yahoo.com \ r \ n \ r \ n' | nc tw.yahoo.com 80 在Windows系統下,有 netstat 與 ping 指令可以用來檢查電腦的網路狀態。此外若需要分析封包時,可用 Wireshark 這套軟體來協助。 檢測電腦 IPv6 的功能網頁: http://test-ipv6.com/ 網域名稱與主機位址。 網域名稱(Domain Name) 是用來辨識網路上某一台電腦,以Google為例, www.google.com 剛好是Google的網域名稱與搜尋引擎網址的名稱,每一個網域名稱通常會有至少一組的 IP位址(住址),這可用 ping 的指令來查詢到,而 www.google.com 所對應的IP可能為108.177.97.106。 【那這IP是從何而來的?】透過網路上的 Domain Name System所存放的網域名稱與IP對應表,一個網域名稱所對應的IP就可被查詢到了。 另外,現存的主機位址有 32 bits 的 IPv4 與 128 bits 的 IPv6 。此外也需要分清楚 私有網路 與公開網路以及實體IP、虛擬IP、固定IP、子網路( Subnetwork ...