網際網路的章節讓我看的很吃力,原本以為自己對網路算有些許了解,但連常用的 TCP/IP 跟 IP v4/IPv6 也是透過此次的閱讀才知道它背後運作的邏輯。
其實這本通識課的書籍講的都是很基本的知識結構,這也讓我明白自己在網路知識方面的匱乏。
透過這個主題閱讀,總算是勉強惡補了一些專有名詞的解釋,以後也更能理解物聯網背後運作的機制。
期許有一天能對網路有更深入的了解,畢竟它已經是現代社會運作的基本設施之一。
本章節的重點摘要如下:
日常生活中接觸的網路技術有:有線電話、有線電視、以太網路 (Ethernet) 以及無線網路、Wi-Fi 和手機。這是多數人連接網際網路的途徑。
所有通訊系統的基本屬性相同,在源頭端,通訊系統把資訊轉換成可以透過某種媒體來傳輸的表述行式;在目的地端,通訊系統把這表述轉換回一種可使用的形式。
大多數有線電話是傳輸類比語音訊號,不是傳輸資料訊息。因此,為了傳輸數位資料必須使用數據機來把位元轉換成聲音 (調變, modulation),然後再把聲音轉換回位元 (解調, demodulation)。
用電話來傳輸資料,需要一條專門的電話線路來撥接,然後最大速度只有每秒 56 KB。
技術持續改進,家用光纖服務正在取代同軸電纜或銅線,訊號被當成光脈衝,沿著一條低耗損的極純玻璃纖維傳送,訊號可以在傳輸長達上百公里後才需要使用中繼器。
每一支手機有一個獨特的 15 位數字識別號碼,稱為這支手機的國際行動裝置識別碼。當手機開啟時,它會廣播它的識別號碼,距離最近的基地台聽到這廣播,向電話網路總部系統驗證。當手機移動時,基地台會持續更新它的所在位置。
網際網路是一個寬鬆、非結構化、混亂及隨意的網路集合,用一些標準的網路協定來讓這些網路連結起來,這些標準定義網路及網路上的電腦彼此如何通訊。
網路具有不同的實體屬性,如光纖、以太網路及無線網路。
網際網路由數千萬個寬鬆連結的獨立網路構成。
鄰近的電腦由區域網路連結(通常是無線以太網路),這些網路又透過閘道器 (gateways) 或路由器 (routers)來和其他網路連結。
閘道器及路由路是把資訊封包從一個網路路由 (route) 至另一個網路的專門性質電腦;閘道器是通用設備,路由器是更專門性的器材。
閘道器彼此間交換路由資訊 (routing information),好讓它們知道有哪些連結,可讓資訊封包送達。
每一個網路連結許多主機系統 (host system),多台電腦可能使用無線來連結至一個路由器,而路由器透過纜線或數位用戶迴路 (DSL) 連結至網際網路服務供應商 (Internet Service Provider, ISP)。
資訊以名為封包的區塊形式在網路上傳輸,一個封包是使用特定格式的一系列位元組,內含位址資訊,說明這封包來自哪裡,要送往何處;封包也內含封包本身的資訊,以及封包的裝載資訊 (payload)。
資料以 IP 封包 (IP 是 Internet Protocol 網際網路協定) 傳輸,所有IP封包都有相同格式。
每一個 IP 封包通過多個閘道器:一個閘道器把封包送至下一個更靠近最終目的地的閘道器。封包的傳輸未必經由最短路徑,便利性及成本考量可能讓封包走較長路徑。
每一台主機必須有一個位址 (addresses),以便在網際網路上的所有主機系統中獨特地識別自己,這種識別號碼名為 IP位址,32位元 (網際網路協定版本4 IPv4) 或 128位元 (版本6 IPv6)。
IPv4 仍是主流,但所有可用的 IPv4 位址現在都已經被分配完,目前正在加速轉向 IPv6 位址。
IP位址類似於以太網路位址,一個 IPv4 位址被寫成其4個位元組的值,每一個值(每一個位元組)是一個十進數,以句點分開,例如 140.180.223.42 (www.princeton.edu),這種表示法為點分十進制 (dotted decimal)。
每一台主機有一個它所在的網路指派給它的獨特 IP 位址,桌上型電腦的這個 IP 位址可能永久不變,但行動器材的 IP 位址是動態的,當器材每次重新連結至網際網路時,IP 位址將改變。
人們嘗試一台主機必須有一個名稱讓人使用,因為很少人善於記住任意的 32位元號碼,分點十進位數也不容易記住。名稱是無所不在的形式,例如 www.nyu.edu 或 ibm.com,這些被稱為網域名稱 (domain names)。
網際網路基礎設施中的網域名稱系統 (Domain Name System, DNS) 是一個把網域名稱和 IP 位址相對應的資料庫。它能在這兩者之間做轉換,當給出一個網域名稱時,它把這名稱轉換成便於機器辨識的 IP 位址。
路由 (routing),必須有一個機制,為每個封包找到一條從來源端傳輸至目的端的路徑。
在 IP 層之上,有一個傳輸控制協定 (Transmission Control Protocol, TCP),使用 IP 來提供一個可靠的機制,把任意長度的系列位元組從來源端傳送到目的端。
在 TCP 層之上,有更高層的協定來使用 TCP 提供我們視為網際網路的服務,例如瀏覽網頁、收發電子郵件、檔案分享等。例如 IP 位址的動態改變是由動態主機設定協定 (Dynamic Host Configuration Protocol, DHCP)。
住家的無線路由器通常使用網路位址轉換 (network address translation, NAT)技術,讓單一一個外部IP位址 (external IP address)能夠服務多個內部IP位址 (internal IP address)。
使用 NAT 技術的路由器,所有連網器材對外都顯示相同的一個IP位址,器材內部的硬體及軟體處理雙向轉換,例如一個家庭有十幾台電腦及其他器材需要一個IP位址來連網,它們全部由一個使用單一一個外部 IP 位址的 NAT 來提供服務。
建立網站需要一個主機,為網站呈現給造訪者的內容提供存放與代管服務的一台電腦。這也需要一台網域名稱伺服器(name server),當有人試圖找網站網域的 IP 位址,這伺服器將向此人回應你的主機的 IP 位址。
網路網路有許多協定,其中有兩個絕對根本必要的協定:其一是網際網路協定(Internet Protocol, IP),定義個別封包如何格式化及傳輸;其二是傳輸控制協定 (Transmission Control Protocol, TCP),定義如何把IP封包結合成資料流及如何與服務連結,這兩者稱為 TCP/IP。
閘道器負責路由 IP 封包,每個實體網路有自己傳輸 IP 封包的格式,每個閘道器必須在封包進來和出去時,在網路格式與 IP 之間轉換。在IP之上,TCP提供可靠的通訊,因此使用者(程式設計師)不必去思考封包,只需思考資訊流。
協定層級由高至低為:應用程式→傳輸控制協定(TCP)→網際網路協定(IP)→實體層。
使用者資料包協定 (User Datagram Protocol, UDP) 是跟TCP同一層級的另一個協定,它比 TCP簡單得多,被用於不需要雙向流的資料交換,它只是多增加幾個功能,以更有效率的傳輸封包。
網域名稱系統 (DNS)使用 UDP,影片串流、網路電話 (VoIP),以及一些線上遊戲也使用 UDP。
更高層級的協定把來自 IP (不可靠、無連接)的通訊合成為可靠通訊,這其中最重要的一個協定是 TCP。TCP為使用者提供一個可靠的雙向資料流:把資料放在一端,讓它輸出於另一端,傳輸過程低延遲(亦即等候時間少)。
TCP 提供一個可靠的雙向流,在兩台電腦之間來回傳送資料,網際網路服務及應用程式此用TCP 作為傳輸機制。
超文本傳輸協定(Hypertext Transfer Protocol, HTTP) 是網頁瀏覽器和伺服器之間使用的一種特別簡單的協定。
Telnet 及 SSH 協定:遠端登入。網際網路是個資訊載體,Telnet (Teletype Network, 電傳網路)是一種在另一台電腦建立遠端登入(remote login)通訊的 TCP 服務。但Telnet 不提供資安,它傳輸的資料沒有加密,這也是現在很少被使用的原因之一。
安全外殼協定(Secure Shell, SSH)被廣為使用,因為它把雙向的傳輸加密,可以安全地交換資訊。
簡單郵件傳輸協定(Simple Mail Transfer Protocol, SMTP),一個瀏覽器或一個獨立程式收發電子郵件。
SMTP 要求電子郵件訊息必須是 ASCII 文本,有一個名為多用途網際網路郵件擴充(Multipurpose Internet Mail Extensions, MIME) 的標準說明把其他類型的資料轉換成 ASCII 文本,以及如何把多個部分結合單一郵件訊息,HTTP 也始用此機制。
Gmail 或 Outlook 在雲端上處理電子郵件是普遍的事,這些系統使用 SMTP 來傳輸,且表現得像網際網路訊息存取協定(Internet Message Access Protocol, IMAP) 般,讓用戶存取郵件。
現在的檔案分享大都使用名為 BitTorrent (BT) 的端對端協定 (peer-to-peer protocol),由 Bram Cohen 於 2001 年設計出來。 BT 用戶很容易受到偵查,因為這個協定要求下載者也必須上傳,他們很容易被確證從事提供受版權保護內容的行為。
智慧型手機是能夠使用標準電話系統的電腦,現代電話機都能透過無線載波或 Wi-Fi 來連結網際網路。可以透過 Wi-Fi 或藍牙上傳相片的相機,能夠下載娛樂及上傳所在位置和引擎遙測數據的車子,測量與控制所在地環境溫度、通報人在外面屋主的恆溫器,監看小孩與保母及按門鈴者的影像監視器,這些全都是基於網際網路連結,這全部被稱為物聯網 (Internet of Things, IoT)。
網際網路是一種封包網路:以標準化的個別封包來傳送資訊,封包被動態地路由,行徑大而持續變化的網路集;網際網路對每一台目前連結的主機指派一個獨一無二的 IP 位址。網域名稱系統(DNS)是一個大型分散式資料庫,把網域名稱轉換成 IP 位址,把 IP 位址轉換成網域名稱。
網路之間透過閘道器來連結,閘道器是專門型電腦,在封包從來源端傳輸至目的端的途中,把封包從一個網路路由至下一個網路。
網際網路是靠協定與標準來運轉,網際網路協定(IP)是共通機制,是交換資訊的通用語。特定的硬體技術如以太網路和無線系統把資料打包成 IP 封包,但在 IP 層級無法看到硬體的任一部份如何運作的細節。
IP在網際網路上傳輸個別封包;TCP合成出一個來自IP的可靠資料流;應用程式協定在資料流中來回傳送資料,每個層級提供的編程介面是應用程式介面(API)的好例子。
沒有留言:
張貼留言