官术网_书友最值得收藏!

  • 圖解HTTP
  • (日)上野宣
  • 1471字
  • 2019-01-05 02:29:42

1.3 網絡基礎TCP/IP

為了理解HTTP,我們有必要事先了解一下TCP/IP協議族。

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

接下來,我們僅介紹理解HTTP所需掌握的TCP/IP協議族的概要。若想進一步學習有關TCP/IP的知識,請參考其他講解TCP/IP的專業書籍。

1.3.1 TCP/IP協議族

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

圖:TCP/IP是互聯網相關的各類協議族的總稱

協議中存在各式各樣的內容。從電纜的規格到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)。

主站蜘蛛池模板: 饶河县| 海安县| 丰顺县| 怀安县| 甘孜县| 台前县| 山东| 陆良县| 慈利县| 乌苏市| 松江区| 米脂县| 宁陵县| 且末县| 芦溪县| 将乐县| 广昌县| 娄烦县| 麻城市| 南宁市| 得荣县| 喀什市| 乡宁县| 宜丰县| 萨嘎县| 临潭县| 石楼县| 锦州市| 绥棱县| 建阳市| 沐川县| 桂东县| 宁陵县| 平遥县| 巩留县| 开江县| 临海市| 崇州市| 绥宁县| 永德县| 怀柔区|