網際網路標準的制訂流程及 Windows 所支援的 TCP/IP RFC

發佈日期: 2007 年 3 月 16 日

作者: 賴榮樞
http://www.goodman-lai.idv.tw

網際網路允許異質網路設備共同連接,除了因為 TCP/IP 的設計理念使然,公開標準也是推波助瀾之力。本文將簡述網際網路標準的制訂程序,並列出 Windows Server 2003 所支援的 TCP/IP RFC;最後則會說明 Windows 的 IPv4 與 IPv6 元件。

本頁內容

網際網路標準的制訂流程
Windows Server 2003 所支援的 TCP/IP RFC
Windows 的 IPv4 與 IPv6 元件

包括 TCP/IP 在內的協定是決定網路裝置如何通訊的規則,為了決定這些通訊規則,必須有相關組織或團體制訂或通過通訊規則而成為產官學界共同遵循的標準。這些標準建立了通訊的基本規則、功能,並且也讓協定符合需求。這些標準「通常」是由相關的組織所制訂,而之所以是「經常」,是因為標準有兩種類型:正式與非正式。

網際網路標準的制訂流程

標準應該要經過眾人嚴格的評估和試煉,因此標準往往是讓技術引以為基礎的公開指南。依循標準,技術供應商的軟硬體相關技術,就可以共同運作。正式標準(de jure standard)指的是經過相關組織正式核可的標準,而正式標準有時候是從非正式的實質標準(de facto standards)發展而來。實質標準可能是某一家廠商的專利技術,因此也稱為業界標準。不過業界近年來的技術趨勢,是朝向非專利(nonproprietary)發展,也就是開放的技術。某一家廠商的技術可能因為非常普及,或可能因為是相關領域唯一的技術,而變成實質標準。實質標準有時候也會變成正式標準,最著名的例子就是乙太網路(Ethernet)。乙太網路是由全錄公司所創造,後來被美國的電子電機工程師協會(Institute of Electrical and Electronics Engineers,IEEE)納為正式標準,代號為 IEEE 802.3。

IEEE 是制訂標準的組織之一,標準的制訂是由專業組織所負責,以下所列是北美重要的標準制訂組織:

  • ISO,國際標準組織(The International Standards Organization,www.iso.org):ISO 是個志願性質的國際性團體,它在資訊科技領域擁有很大的影響力。ISO 以資助和建立全球標準的方式,嘗試著創造跨國相容的技術。

  • ITU-T,國際電訊聯盟電訊標準組(The International Telecommunications Union-Telecommunication Standards Sector,www.itu.int):ITU-T 關注的是國際性的電信通訊議題,尤其是電話和資料系統這兩個領域。ITU-T 已經建立了以電話、電子郵件、目錄服務傳送資料的標準。

  • ANSI,美國國家標準協會(The American National Standards Institute,www.ansi.org):ANSI 雖然如同美國的 ISO,但是美國聯邦政府並沒有正式參加 ANSI;ANSI 是個非營利的民間組織。ANSI 的成員包括業界廠商、消費者團體、政府代表、專業人士,以及其他社團。ANSI 是美國本地主要的標準制訂團體。

  • IEEE,電子電機工程師協會(The Institute of Electrical and Electronics Engineers,www.ieee.org):IEEE 定義了許多區域網路(Local Area Network,LAN)和骨幹網路(Backbone Networks,BN)的標準。著眼於電子和電機工程,IEEE 是全世界最大的專業工程協會,而目前 IEEE 正扮演著建立新的無線通訊標準的關鍵角色。

  • EIA,電子工業協會(The Electronics Industries Association,www.eia.org):如同 ANSI,EIA 也是定義連接介面、電子信號規格、序列通訊等技術的非營利組織;EIA 在定義設備的電子功能特性標準,扮演著重要角色。

  • ISOC,網際網路協會(The Internet Society,www.isoc.org):ISOC 是個開放的專業社團,負責發展並公佈網際網路使用標準的組織。

  • IETF,網際網路工程工作小組(The Internet Engineering Task Force,www.ietf.org):IETF 也是國際性的社團,是由研究人員、廠商所組成。IETF 特別關注網際網路架構的發展,以及網路效率的提升,是網際網路協定的工程和發展部門。

  • IESG,網際網路工程推動小組(The Internet Engineering Steering Group,www.iesg.org):IESG 負責管理、執行 IETF 的相關技術,並且管理這些技術進展成網際網路標準的流程。

  • IAB,網際網路架構理事會(The Internet Architecture Board,www.iab.org):IAB 負責定義網際網路架構,提供策略方向給 IESG 和 IETF,是這兩個單位的指導單位。

  • IANA,網際網路位址指派機構(The Internet Assigned Numbers Authority,www.iana.org):負責統籌 IP 位址分配的的國際組織。

網際網路協會(ISOC)是網際網路設計、工程和管理的協調委員會。這個協會所涵蓋範圍包含網際網路本身的運作,以及為了在網際網路的終端系統使用標準化的協定以便能相互溝通。網際網路協會底下有三個組織負責標準發展和公佈的實際工作:網際網路架構理事會(IAB)、網際網路工程工作小組(IETF)、網際網路工程推動小組(IESG)。

網際網路新標準和新協定的實際發展是由 IETF 特許的工作小組負責。工作小組裡的成員都是志願的,任何有興趣的個人或組織都可以參與。IETF 的工作分成八個領域,每個領域都有領導人並且由數個工作小組所組成。下表列出的是 IETF 的八大領域及其重點。

工作領域

主題

工作小組(例舉)

一般(General)

IETF 相關流程

Policy framework

Process for organization of Internet standards

應用(Applications)

網路網路應用

Web-related protocols(HTTP)

EDI-Internet integration

LDAP

網際網路(Internet)

網際網路基礎架構

IPv6

PPP extensions

營運與管理(Operations and management)

網路運作的標準與定義

SNMPv3

Remote network monitoring

路由(Routing)

路由資訊的協定與管理

Multicast routing

OSPF

QoS routing

安全(Securoty)

安全協定與技術

Kerberos

IPSec

X.509

S/MIME

TLS

傳輸(Transport)

傳輸層協定

Differentiated services

IP telephony

NFS

RSVP

使用者服務(User services)

提高網際網路使用者的資訊品質

Responsible use of the Internet

User services

FYI documents

在規格的發展期間,IETF 工作小組會製作文件草案,也就是所謂的「網際網路草案」(Internet Draft),這些草案會放在 IETF 小組的 Internet Drafts 線上目錄。文件可能持續作為網際網路草案長達六個月,讓有興趣的人可以複審或評論這些草案。在這段期間,IESG 可以核准讓草案成為網際網路的正式文件,也就是 RFC(Request For Comments),但如果草案在六個月的期間內沒有成為 RFC,就將草案從目錄撤回,而工作小組則可以再公佈另一個修訂過的草案。IETF 小組負責出版 IESG 核准的 RFC,RFC 是網際網路研發社群的工作記錄。相關文件可能都是任何有關電腦通信的主題,內容可能是會議報告或與標準規格有關的任何事物。

網際網路標準化的程序

根據 IETF 小組的推薦,IESG 能決定讓 RFC 成為網際網路標準;要成為標準,規格書必須符合下面的準則:

  • 穩定並被充分理解。

  • 具有技術能力。

  • 具有各式各樣且獨立又大量的實作經驗。

  • 支援重要的公開標準。

  • 對整個或部分的網際網路有用。

這些標準和國際標準組織(ISO)及國際電訊聯盟(ITU-T)的主要差異,在於 IETF 的標準著重實作經驗。下圖是網際網路 RFC 的標準化程序。

Dd125472.38-wintcpip-2-0(zh-tw,TechNet.10).jpg

圖中的左側是稱為「標準行徑」(standards track)的步驟,技術規格透過這些步驟成為標準。IETF 小組在每一個步驟必須建議協定的進展,並且必須讓 IESG 認可相關進展。當 IESG 同意將網際網路草案升格為 RFC 建議標準(Proposed Standard)時,便會開始標準化程序(制訂網際網路標準的程序也已經成為標準,並定義在 RFC 2026)。

圖中的白方框表示臨時狀態,每份文件都必須至少維持六個月的建議標準狀態,以及至少四個月的草案標準(Draft Standard)狀態,以便接受公開的複審和評論。圖中灰色方塊表示可能歷經數年的長期狀態。

若規格要提升成為草案標準,至少要有兩種獨立但相互合作的實作,藉以得到足夠的運作經驗。在獲得重要的實作和操作經驗之後,規格才可以提升為網際網路標準。此時,規格便會如同被指定 RFC 編號而另被指定 STD 編號。最後,若協定已經過時,就會被歸類到已經成為歷史(Historic)的狀態。

所有的 RFC 文件皆可在 http://www.ietf.org/rfc.html (英文) 找到,http://www.ietf.org/iesg/1rfc_index.txt (英文) 則是一份以編號列出所有 RFC 的文件。所有的網際網路標準依照內容都可以分成以下兩類:

  • 技術規格(Technical Specification):技術規格定義了協定、服務、程序、慣用法或格式。大多數的網際網路標準都屬於技術規格。

  • 適用聲明(Applicability Statement):適用聲明記錄了在某些情況下,一或多份技術規格是如何支援某些的網際網路功能。

RFC 不一定都會成為網際網路標準,某些 RFC 是集結、記錄社群討論的結論,這類的 RFC 稱為 BCP(Best Current Practice,目前最佳的實作)。批准 BCP 與批准「建議標準」的過程相同,但 BCP 不需要像網際網路標準的三階段流程,只需要一個步驟,網際網路草案就可以成為 BCP(前述 RFC 2026 網際網路標準的制訂程序,就屬於 BCP)。

尚未考慮周詳的協定或規格可能會以實驗(Experimental)的型態公佈,而在進一步的修改、協調之後,這種類型的 RFC 可以再重新提交。再經過正常程序接受社群複閱、評議,讓社群充分瞭解規格內容,如果規格也亦趨穩定,就可以將實驗型態的 RFC 升級成建議標準。

最後一種 RFC 型態是資訊規格(Informational),這是為網際網路社群公佈的一般資訊。

藉由 RFC 發佈的資訊或標準都有可能過時而歸入「歷史」狀態,例如之前提及的 RFC 2026 網際網路標準的制訂程序,其實已經修訂到第三版,前兩版的程序定義在 RFC 1602 和 RFC 1871。舊版的 RFC 依然會保留供作查閱,而新版 RFC 則會註明是取代或更新哪一份 RFC 文件。查閱 RFC 文件必須注意文件的狀態。

此外,RFC 文件只是技術規格,並不具任何約束力,任何標準組織無權要求廠商非得根據 RFC 實作產品不可,一切只靠廠商的意願。而目前編到近五千號的 RFC 文件,有許多早已成為實質標準,但實際上卻並非如此。例如 RFC 1945 HTTP 1.0,目前的狀態是資訊規格,而 1999 年六月制訂的「最新」的 HTTP 標準(RFC 2616 HTTP 1.1),目前則是草案標準。

Windows Server 2003 所支援的 TCP/IP RFC

就技術的務實層面而言,網際網路標準係藉由各種 RFC 文件加以定義規範,每一份 RFC 文件都有固定的編號。標準是公認的技術規格,各種網路產品的設計與開發,只要遵循網際網路標準,就能正確的連接網際網路,並與其他產品順利互連。

因此網路產品對 RFC 的遵循程度,會直接影響產品在網際網路執行的相容性。而微軟的 Windows 產品,也從 NT 4.0/Windows 95 開始大量採納RFC規格,讓使用者、系統管理者及開發者都能以 Windows 擁抱網際網路。以下表格係根據微軟的 Microsoft Windows Server 2003 TCP/IP Implementation Details 文件,整理出 Windows Server 2003 所支援的 TCP/IP RFC。

RFC

Title

768

User Datagram Protocol (UDP)

783

Trivial File Transfer Protocol (TFTP)

791

Internet Protocol (IP)

792

Internet Control Message Protocol (ICMP)

793

Transmission Control Protocol (TCP)

816

Fault Isolation and Recovery

826

Address Resolution Protocol (ARP)

854

Telnet Protocol (TELNET)

862

Echo Protocol (ECHO)

863

Discard Protocol (DISCARD)

864

Character Generator Protocol (CHARGEN)

865

Quote of the Day Protocol (QUOTE)

867

Daytime Protocol (DAYTIME)

894

IP over Ethernet

919, 922

IP Broadcast Datagrams (broadcasting with subnets)

950

Internet Standard Subnetting Procedure

959

File Transfer Protocol (FTP)

1001, 1002

NetBIOS Service Protocols

1065, 1035, 1123, 1886

Domain Name System (DNS)

1042

A Standard for the Transmission of IP Datagrams over IEEE 802 Networks

1055

Transmission of IP over Serial Lines (IP-SLIP)

1112

Internet Group Management Protocol (IGMP)

1122, 1123

Host Requirements (communications and applications)

1144

Compressing TCP/IP Headers for Low-Speed Serial Links

1157

Simple Network Management Protocol (SNMP)

1179

Line Printer Daemon Protocol

1188

IP over FDDI

1191

Path MTU Discovery

1201

IP over ARCNET

1256

ICMP Router Discovery Messages

1323

TCP Extensions for High Performance

1332

PPP Internet Protocol Control Protocol (IPCP)

1518

Architecture for IP Address Allocation with CIDR

1519

Classless Inter-Domain Routing (CIDR): An Address Assignment and Aggregation Strategy

1534

Interoperation Between DHCP and BOOTP

1542

Clarifications and Extensions for the Bootstrap Protocol

1552

PPP Internetwork Packet Exchange Control Protocol (IPXCP)

1661

The Point-to-Point Protocol (PPP)

1662

PPP in HDLC-like Framing

1748

IEEE 802.5 MIB using SMIv2

1749

IEEE 802.5 Station Source Routing MIB using SMIv2

1812

Requirements for IP Version 4 Routers

1828

IP Authentication using Keyed MD5

1829

ESP DES-CBC Transform

1851

ESP Triple DES-CBC Transform

1852

IP Authentication using Keyed SHA

1994

PPP Challenge Handshake Authentication Protocol (CHAP)

1995

Incremental Zone Transfer in DNS

1996

A Mechanism for Prompt DNS Notification of Zone Changes

2018

TCP Selective Acknowledgment Options

2085

HMAC-MD5 IP Authentication with Replay Prevention

2104

HMAC: Keyed Hashing for Message Authentication

2131

Dynamic Host Configuration Protocol

2136

Dynamic Updates in the Domain Name System (DNS UPDATE)

2181

Clarifications to the DNS Specification

2236

Internet Group Management Protocol, Version 2

2308

Negative Caching of DNS Queries (DNS NCACHE)

2401

Security Architecture for the Internet Protocol

2402

IP Authentication Header

2406

IP Encapsulating Security Payload (ESP)

2581

TCP Congestion Control

3208

PGM Reliable Transport Protocol Specification

3376

Internet Group Management Protocol, Version 3

各種網際網路標準都定義在 RFC 文件,這些編號不一的 RFC 文件是網際網路技術的基石。所有的 RFC 文件皆可在 http://www.ietf.org/rfc.html (英文) 找到,任何有心研究網際網路技術的人,都可以免費取得規範了各種標準的 RFC 文件,並且能直接參詳文件內容。

Windows 的 IPv4 與 IPv6 元件

雖然下一代的 IP 規格—也就是 IPv6 —早在 1996 年就已經發表,但時至今日大多數連接 TCP/IP 網路的裝置,依然使用 IPv4。全面改用 IPv6 無法一蹴可及,因此 Windows 同時支援 IPv4 和 IPv6,讓使用者依據需求自行安裝。

包括目前最新的 Windows XP、Windows Vista、Windows Server 2003 預設都安裝並啟用了 IPv4,並且顯示成『Internet Protocol (TCP/IP)』。設定 TCP/IP 的關鍵都在指定相關的 IP 位址,不過 Windows 系統預設會自動取得 IP 位址,讓 Windows 電腦在開機時自動找尋 DHCP(Dynamic Host Configuration Protocol)伺服器,並取得 DHCP 伺服器所分配的設定,這可以省去使用者或管理者不少麻煩。

如果 Windows 電腦找不到 DHCP 伺服器(或者根本就沒有設置 DHCP 伺服器),就會根據『Internet Protocol (TCP/IP)內容』交談窗的『其他設定』標籤頁,決定電腦的 IP 位址及相關設定。在這個標籤頁(如下圖)可以設定成『自動私人 IP 定址』,或者是『使用者設定』。如果設定成『自動私人 IP 定址』(Automatic Private IP Addressing,APIPA),Windows 電腦會自動從 Internet Assigned Numbers Authority(IANA)所保留的 169.254.0.1 到 169.254.255.254 的私人 IP 位址範圍內,選取一個 IP 位址給自己使用,並且會將子網路遮罩設成 255.255.0.0。

Dd125472.38-wintcpip-2-1(zh-tw,TechNet.10).jpg

由於 IP 位址不能重複使用,因此若 Windows 電腦發現所選取私人 IP 位址有所衝突,會另外挑選別的 IP 位址來用。私人 IP 定址對於沒有設置 DHCP 伺服器的網路環境相當實用,因為有了這項功能之後,就算網路環境裡沒有設置沒有 DHCP 伺服器,也可以不用手動設定 IP 位址。但由於私人 IP 定址不會設定預設閘道,因此只能有一個子網路。

此外,因為使用者無法移除 Windows XP、Windows Server 2003 等版本的 IPv4 元件,因此就無法利用先移除再重新安裝 Internet Protocol (TCP/IP) 的方式,來重置系統內的 TCP/IP 相關登錄機碼,而達到解決某些 TCP/IP 問題的目的。不過,我們可以改用 netsh 命令來重置以下 TCP/IP 的相關登錄機碼:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCP\Parameters\

執行這個命令必須指定記錄檔的檔名,下列的第一個命令會在目前的目錄建立檔名為 resetlog.txt 的記錄檔,而第二個命令會在 c:\MyLog 目錄建立記錄檔的路徑:

netsh int ip reset resetlog.txt

netsh int ip reset c:\MyLog\resetlog.txt

以上只需擇一執行,而且不論哪一種方式,如果指定的記錄檔已經存在,新的記錄都會附加至現有檔案內容之後。

Windows 的 IPv6

雖然 Windows XP SP1 和 Windows Server 2003 才「正式」內建 IPv6 元件,但其實早在 1998 年微軟研究院就已經為 Windows 推出外掛的 IPv6 元件 MSRIPv6 1.0;不過這些都只是「預覽」階段的產品,微軟並不對這些階段的 IPv6 元件提供支援服務;Windows XP SP1 或 Windows Server 2003 內建的才是正式商品化的 IPv6 元件。

這些 IPv6 元件在 Windows XP SP1 的名稱是『Microsoft IPv6 Developer Edition』,在 Windows Server 2003 和 Windows XP SP2 的名稱則是『Microsoft TCP/IP Version 6』(Windows XP 也內建了名稱為『Microsoft IPv6 Developer Edition』的 IPv6 元件,但只是提供給開發人員測試預覽之用,Windows XP SP1 才內建了正式版本的 IPv6 元件,不過名稱卻沒有更新,還留著 Developer Edition 的字樣)。

雖然內建,但是 Windows XP SP1 或 Windows Server 2003 預設並沒有安裝 IPv6 元件,如果要安裝,可以選擇圖形操作方式,或利用 netsh interface ipv6 install 命令加以安裝;以下是圖形操作的安裝步驟:

  1. 雙按『控制台』裡的『網路連線』。

  2. 以滑鼠右鈕按下欲新增 IPv6 元件的區域網路或無線網路連線圖示,並選取『內容』。

  3. 按下『內容』交談窗裡的『安裝』按鈕。

  4. 選取『通訊協定』,再按下『新增』按鈕。

  5. 選取『Microsoft TCP/IP Version 6』,再按下『確定』按鈕,即可新增(如下圖)。

Dd125472.38-wintcpip-2-2(zh-tw,TechNet.10).jpg

這些 IPv6 元件並沒有圖形化的操作方式可以調整 IPv6 位址的設定,但是相關設定可以藉由 Windows 電腦連接到子網路裡的 IPv6 路由器而自動完成。如果 Windows 電腦無法自動完成 IPv6 的相關設定,可以利用 netsh interface ipv6 命令來手動設定。

Windows Vista 不僅已經內建 IPv6 元件,並且預設也會安裝並啟用。與 Windows Server 2003 和 Windows XP SP2 相同的是,IPv6 的相關設定可以藉由 Windows 電腦連接到子網路裡的 IPv6 路由器而自動完成。此外,Windows Vista 除了提供相同的 netsh interface ipv6 命令讓使用者手動設定,也提供圖形化的操作方式讓使用者手動設定 IPv6。

顯示: