學習《圖解HTTP》-筆記1
TCP/IP 的分層管理
TCP/IP 協(xié)議族按層次分別分為以下 4 層:應(yīng)用層(HTTP、DNS)、傳輸層(TCP)、網(wǎng)絡(luò)層(IP)和數(shù)據(jù)鏈路層。
TCP/IP 協(xié)議族各層的作用如下:
應(yīng)用層
應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時通信的活動。
TCP/IP 協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù)。比如,F(xiàn)TP(File
Transfer Protocol,文件傳輸協(xié)議)和 DNS(Domain Name System,域
名系統(tǒng))服務(wù)就是其中兩類。
HTTP 協(xié)議也處于該層。
傳輸層
傳輸層對上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接中的兩臺計算機之間的數(shù)據(jù)
傳輸。
在傳輸層有兩個性質(zhì)不同的協(xié)議:TCP(Transmission Control
Protocol,傳輸控制協(xié)議)和 UDP(User Data Protocol,用戶數(shù)據(jù)報
協(xié)議)。
網(wǎng)絡(luò)層(又名網(wǎng)絡(luò)互連層)
網(wǎng)絡(luò)層用來處理在網(wǎng)絡(luò)上流動的數(shù)據(jù)包。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)
據(jù)單位。該層規(guī)定了通過怎樣的路徑(所謂的傳輸路線)到達對方計
算機,并把數(shù)據(jù)包傳送給對方。
與對方計算機之間通過多臺計算機或網(wǎng)絡(luò)設(shè)備進行傳輸時,網(wǎng)絡(luò)層所
起的作用就是在眾多的選項內(nèi)選擇一條傳輸路線。
鏈路層(又名數(shù)據(jù)鏈路層,網(wǎng)絡(luò)接口層)
用來處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng)、硬件的設(shè)備驅(qū)
動、NIC(Network Interface Card,網(wǎng)絡(luò)適配器,即網(wǎng)卡),及光纖等
物理可見部分(還包括連接器等一切傳輸媒介)。硬件上的范疇均在
鏈路層的作用范圍之內(nèi)。
IP 協(xié)議
IP 協(xié)議的作用是把各種數(shù)據(jù)包傳送給對方。而要保證確實傳送到對方
那里,則需要滿足各類條件。其中兩個重要的條件是 IP 地址和 MAC
地址(Media Access Control Address)。
使用 ARP 協(xié)議憑借 MAC 地址進行通信
IP 間的通信依賴 MAC 地址。在網(wǎng)絡(luò)上,通信的雙方在同一局域網(wǎng)
(LAN)內(nèi)的情況是很少的,通常是經(jīng)過多臺計算機和網(wǎng)絡(luò)設(shè)備中轉(zhuǎn)
才能連接到對方。而在進行中轉(zhuǎn)時,會利用下一站中轉(zhuǎn)設(shè)備的 MAC
地址來搜索下一個中轉(zhuǎn)目標。這時,會采用 ARP 協(xié)議(Address
Resolution Protocol)。ARP 是一種用以解析地址的協(xié)議,根據(jù)通信方
的 IP 地址就可以反查出對應(yīng)的 MAC 地址。
TCP 協(xié)議三次握手策略
發(fā)送端首先發(fā)送一個帶 SYN 標志的數(shù)據(jù)包給對方。
接收端收到后,回傳一個帶有 SYN/ACK 標志的數(shù)據(jù)包以示傳達確認信息。
最后,發(fā)送端再回傳一個帶 ACK 標志的數(shù)據(jù)包,代表“握手”結(jié)束。
若在握手過程中某個階段莫名中斷,TCP 協(xié)議會再次以相同的順序發(fā)
送相同的數(shù)據(jù)包。
DNS 服務(wù)
DNS(Domain Name System)服務(wù)是和 HTTP 協(xié)議一樣位于應(yīng)用層的
協(xié)議。它提供域名到 IP 地址之間的解析服務(wù)。
DNS 協(xié)議提供通過域名
查找 IP 地址,或逆向從 IP 地址反查域名的服務(wù)。
TCP/IP 通信傳輸流
利用 TCP/IP 協(xié)議族進行網(wǎng)絡(luò)通信時,會通過分層順序與對方進行通
信。發(fā)送端從應(yīng)用層往下走,接收端則往應(yīng)用層往上走。
我們用 HTTP 舉例來說明,首先作為發(fā)送端的客戶端在應(yīng)用層
(HTTP 協(xié)議)發(fā)出一個想看某個 Web 頁面的 HTTP 請求。
接著,為了傳輸方便,在傳輸層(TCP 協(xié)議)把從應(yīng)用層處收到的數(shù)
據(jù)(HTTP 請求報文)進行分割,并在各個報文上打上標記序號及端
口號后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層。
在網(wǎng)絡(luò)層(IP 協(xié)議),增加作為通信目的地的 MAC 地址后轉(zhuǎn)發(fā)給鏈
路層。這樣一來,發(fā)往網(wǎng)絡(luò)的通信請求就準備齊全了。
接收端的服務(wù)器在鏈路層接收到數(shù)據(jù),按序往上層發(fā)送,一直到應(yīng)用
層。當傳輸?shù)綉?yīng)用層,才能算真正接收到由客戶端發(fā)送過來的 HTTP
請求。
