1. 程式人生 > 其它 >1.3 網路基礎 TCP/IP

1.3 網路基礎 TCP/IP

1.3 網路基礎 TCP/IP

通常使用的網路(包括網際網路)是在 TCP/IP 協議族的基礎上運作的。而 HTTP 屬於它內部的一個子集。

1.3.1 TCP/IP 協議族

計算機與網路裝置要相互通訊,雙方就必須基於相同的方法。比如,如何探測到通訊目標、由哪一邊先發起通訊、使用哪種語言進行通訊、怎樣結束通訊等規則都需要事先確定。不同的硬體、作業系統之間的通訊,所有的這一切都需要一種規則。而我們就把這種規則稱為協議(protocol)

協議中存在各式各樣的內容。從電纜的規格到 IP 地址的選定方法、尋找異地使用者的方法、雙方建立通訊的順序,以及 Web 頁面顯示需要處理的步驟,等等。

像這樣把與網際網路相關聯的協議集合起來總稱為 TCP/IP。也有說法認為,TCP/IP 是指 TCP 和 IP 這兩種協議。還有一種說法認為,TCP/IP 是在IP 協議的通訊過程中,使用到的協議族的統稱。

1.3.2 TCP/IP 的分層管理

​ TCP/IP 協議族裡重要的一點就是分層。 TCP/IP 協議族按層次分為以下 4 層:應用層、傳輸層、網路層和資料鏈路層。

​ 把TCP/IP 層次化是有好處的。比如,如果網際網路只由一個協議統籌,某個地方需要改變設計時,就必須把所有部分整體替換掉。而分層之後只需把變動的層替換掉即可。把各層之間的介面部分規劃好之後,每個層次內部的設計就能夠自由改動了。

​ 層次化之後,設計也變得相對簡單了。處於應用層上的應用可以只考慮分派給自己的任務,而不需要弄清對方在地球上哪個地方、對方的傳輸路線是怎樣的、是否能確保傳輸送達等問題。

​ TCP/IP協議族各層的作用如下:

應用層

應用層決定了向用戶提供應用服務時通訊的活動。

TCP/IP 協議族內預存了各類通用的應用服務。比如,FTP(File Transfer Protocol,檔案傳輸協議)和DNS(Domain Name System,域名系統)服務就是其中兩類。

HTTP 協議也處於該層。

傳輸層

傳輸層對上層應用層,提供處於網路連線中的兩臺計算機之間的資料傳輸。

在傳輸層有兩個性質不同的協議:TCP(Transmission Control Protocol,傳輸控制協議)和 UDP(User Data Protocol,使用者資料報協議)

網路層(又名網路互連層)

網路層用來處理在網路上流動的資料包。資料包是網路傳輸的最小資料單位。該層規定了通過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把資料包傳送給對方。

與對方計算機之間通過多臺計算機或網路裝置進行傳輸時,網路層所起的作用就是在眾多的選項內選擇一條傳輸路線。

鏈路層(又名資料鏈路層、網路介面層)

用來處理連線網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC(Network Interface Card,網路介面卡,即網絡卡),即光纖等物理可見部分(還包括聯結器等一切傳輸媒介)。硬體上的範疇均在鏈路層的作用範圍之內。

1.3.3 TCP/IP 通訊傳輸流

​ 利用 TCP/IP 協議族進行網路通訊時,會通過分層順序與對方進行通訊。傳送端從應用層往下走,接收端則往應用層上走。

​ 用HTTP 舉例來說明,首先作為傳送端的客戶端在應用層(HTTP 協議)發出一個想看某個 Web 頁面的 HTTP 請求。

​ 接著,為了傳輸方便,在傳輸層(TCP 協議)把從應用層處收到的資料(HTTP請求收文)進行分割,並在各個報文上打上標記序號及埠號後轉發給網路層。

​ 在網路層(IP 協議),增加作為通訊目的地的 MAC 地址後轉發給鏈路層。這樣一來,發往網路的通訊請求就準備齊全了。

​ 接收端的伺服器在鏈路層接收到資料,按序往上層傳送,一直到應用層。當傳輸到應用層,才能算真正接收到由客戶端傳送過來的 HTTP 請求。

​ 傳送端在層與層之間傳輸資料時,每經過一層時必定會被打上一個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,每經過一層會把對應的首部消去。

​ 這種把資料資訊包裝起來的做法成為封裝(encapsulate)