網際網路 (Internet) 與 TCP/IP 通訊協定

 

現今的網際網路 (Internet) 大約在 1983 年間逐漸由舊的 ARPANET 轉型而成 (ARPANET 始建於1969 年,開始時有 4 部主機,到 1983 年已經有 320 部主機了),原先的 ARPANET 上所使用的 Network Control Protocol, NCP 通訊協定逐漸廢止轉而使用 TCP/IP 通訊協定,現在 Internet 上所使用的通訊協定和原來在 ARPANET 上所使用的不同,但是很多都源自 ARPANET。

網際網路協定 IP (The Internet Protocol):

定義網際網路中最基本的服務:將資料串經由路徑的選擇(routing) 送達目的地。IP 的封包中定義一串資料以及一個地址,如此該封包就可以在網路上選擇路徑,試著將資料送到目的地去,IP 封包中並沒有定義任何錯誤偵測的資料,因此根據收到的 IP 封包並沒有辦法發現資料是否發生錯誤,更嚴重的是當 IP 封包中的位址資料錯誤時,該封包會被送往一個錯誤的目的機器,因此 IP 通訊協定基本上不保證封包一定會送到目的地。同樣的道理, IP 封包中也沒有記載一整組資料封包間相對的順序資料。IP 通訊協定中規定:IP 封包依照 "盡其所能" 的原則,由來源主機送往目的主機,途中經過的每一個路由器 (router) 都必須根據 IP 封包中之目的地位址來選擇封包的前進路線,直到傳送到目的主機為止。

 

傳輸控制協定 TCP (Transmission Control Protocol)

TCP 的目的是保證無錯誤大量資料傳輸、並提供錯誤偵測、復原以及排序資訊,以補 IP 通訊協定之不足。

 

Internet RFC (Request for Comments)

在網際網路上各種通訊協定必須要標準化,不同的電腦之間才能藉以溝通,這些標準涵蓋 OSI 各個不同層次的應用,這些標準都定義在 RFC 文件中 (由 1969 年的第一份 RFC 文件一直到今天的 RFC 2xxx),例如應用層次的電子郵件 (email) 就定義在 RFC 822 Format for Internet Messages 這份文件中,應用層次的網路論壇 (Network News) 就定義在 RFC 977 Network News Transfer Protocol (NNTP) 這份文件之中,網路層次的 IP 就定義在 RFC 791, The Internet Protocol 這份文件之中,在此文件中描述了資料封包的格式。

請注意:並不是所有的 RFC 文件中都會定義一個標準的通訊協定, RFC 這三個字是要求所有對此協定有興趣的網路朋友來提供一些回饋意見,有一些 RFC 文件中只是解釋某些協定,但是從未被正式採用為標準, RFC 文件可以在網際網路上輕易的找到電子格式,例如:http://www.bookcase.com/library/rfc/index.html 或是 http://www.sw.ru/~bob/docs/rfc/rfc-by-number.html。

 

Windows 網路與 TCP/IP、NetBeui、NDIS 或是 IPX 通訊協定

微軟公司的 Windows 網路架構在 TCP/IP、NetBeui、NDIS 或是 IPX 通訊協定上,你可以自由選擇。如前所述,在網路上同時可以有各種不同的通訊協定,每一台機器都認得其中的一些封包,可以了解這些封包內資料的意義,而不去處理它不認得的封包,因此在我們的個人電腦上作業系統 (WIN95/98/NT) 可以同時在 Windows 網路以及在網際網路中註冊,你在 Windows 環境下可以藉由網路的芳鄰將你的硬碟及印表機分享出去,這是 Windows 網路應用程式的功能,如果你沒有登入 Windows 網路的話 (有些人習慣在登入 Windows 網路的對話盒中按下 "取消" 按鍵),你就無法使用此項功能。

 

網際網路位址 (Internet Address)

在 IP (Internet Protocol) 通訊協定中,每一台機器有一個四個位元組 (4 bytes) 的網路位址,例如:140.121.196.50 或是 140.121.81.16,用來區辨每一台機器,每一個資料封包中都有來源機器以及目的機器的 IP 位址。

 

網域名稱 (Domain Name) 及
網域名稱伺服器 (Domain Name Server, RFC 1034, RFC 1035)

一般的人都很討厭去記數字,尤其是像上面這樣子的四個連續的數字只代表一部機器,如果一次要記下十台機器的位址的話,那該如何是好呢?

舉例來說,並不是每個人都知道 "24622192" 所代表的意義,但是 "海洋大學的電話號碼" 是不是也代表相同的意義呢? 你很輕鬆地說 "撥海洋大學的電話" ,是不是比說 "撥 24622192" 要簡單呢? 查電話號碼的動作留給 104 查號台去做嘛!

在 IP 位址上也是這樣子的,我們用所謂的 DNS 這樣子的分散式網域位址資料庫來記錄及查詢任何一串 IP 位址,例如:cs.ntou.edu.tw 這個網域名稱經過查詢 DNS 之後,得到 140.121.196.50 這一連串的數字,從此以後我們可以記憶 cs.ntou.edu.tw 這樣子的網域名稱來存取該主機了。

DNS 具有階層式的架構,例如 tw 網域下有 edu, com, org, gov, ... 等等子網域,edu.tw 子網域下又分為 ntu, nctu, ntou, .... 各個子網域,ntou.edu.tw 子網域下又分為 cs, ee, na, ... 各個子網域,在上面任何一個子網域可以代表一個主機也可以是一堆主機。

 

DHCP

(Dynamic Host Configuration Protocol, RFC 1531, RFC 1541, 1993)

早期在規劃網際網路時認為四個位元組所能夠表達的機器數目非常的大,共可表示2 32 台機器,因此又依據這四個位元組強制將位址分配給不同的網路區段,第一個位元組固定的話是所謂的 class A 網路,前兩個位元組固定的話是所謂的 class B 網路,前三個位元組固定的話是所謂的 class C 網路,如此分類後各個網路自行掌管其內網路位址的分配。可是近幾年來幾乎所有的個人電腦都具有網路連線的能力了,因此網路的位址立刻顯得不足,尤其是大部分的個人電腦常常只有在少數的工作時間使用網際網路,如果給它固定的一個 IP 位址的話似乎顯得有些浪費,因此發展出動態的指定 IP 位址的 DHCP 協定,如此大部分的個人電腦只有在開機、且連上網路時才動態地指定一個 IP 位址,解決了 IP 位址不足的問題。ISP 提供給一般用戶使用撥號網路連上網際網路時就是動態地指定 IP 位址給每一台電腦。