TCP/IP協議族
TCP/IP是互聯網相關的各類協議族的總稱。
TCP/IP的分層管理
按層次分別分為:應用層、傳輸層、網絡層和數據鏈路層
各層次的功能:
a. 應用層:決定了向用戶提供應用服務時通信的活動,常見的有FTP和DNS等。
b. 傳輸層:提供處于網絡連接中的兩臺計算機之間的數據傳輸,該層包含TCP和UDP兩種不同的協議。
c. 網絡層:用來處理網絡上流動的數據包,常見的IP。
d. 鏈路層:用來處理連接網絡的硬件部分。-
傳輸流程圖:
通信流程圖.png
IP協議
IP協議的作用是把各種數據包傳送給對方,為了保證能夠正確傳送給對方,這里需要兩個重要的條件:IP地址和MAC地址。
- IP地址:指明了節點被分配到的地址
- MAC地址:網卡所屬的固定地址
- ARP協議:IP間的通信依賴于MAC地址。在網絡上,通信的雙方在同一局域網內的情況是很少的,通常是經過多臺計算機和網絡設備中轉才能連接到對方,而在中轉過程時,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標。這時候,會利用ARP協議(一種解析地址的協議),根據通信的IP地址就可以反查到對應的MAC地址。
TCP協議
TCP協議位于傳輸層,提供可靠的字節流服務。所謂的字節流服務是指將大塊數據分割為報文段為單位的數據包進行管理。
-
三次握手:確保數據能準確到達目標
握手過程中使用了TCP的標志——SYN和ACK
三次握手.png
a.首先Client向Server發送一個SYN信號
b.Server接收到SYN信號后,發送SYN/ACK信號給Client,這樣Client就能確認Server端是正確的。
c. Client再發送ACK給Server,這樣Server就能確認Client端是正確的。
DNS服務
DNS服務是提供域名到IP地址之間的解析服務。用戶通常使用主機名或域名來訪問對方的計算機,而不是直接通過IP地址。
URI和URL
URI為統一資源標識符,而URL為Web瀏覽器等訪問Web頁面時需要輸入的網頁地址,比如,http://hackr.jp/就是一個URL。
-
URI格式
URI格式.png
a. 協議方案名:通常為http或https,ftp等
b. 登錄信息:指定用戶名和密碼作為從服務器端獲取資源時必要的登錄信息,為可選項
c. 服務器地址:可以指定為域名或者IP地址
d. 服務器端口號:可選項,若忽略,則使用默認端口號
e. 文件路徑:服務器上文件路徑來定位特指的資源
f. 查詢字符串:已指定文件路徑內的資源
g. 片段標識符:已獲取資源的子資源
HTTP協議
-
請求報文
請求報文.png -
響應報文
響應報文.png HTTP中可使用的方法
- GET:獲取資源
- POST:傳輸實體主體
- PUT:傳輸文件,但自身不帶驗證機制,存在安全性問題
- HEAD:獲取報文首部
- DELETE:刪除文件
-
OPTIONS:詢問資源支持的方法
OPTIONS.png
7.TRACE:追蹤路徑。發送請求時,在 Max-Forwards 首部字段中填入數值,每經過一個服 務器端就將該數字減 1,當數值剛好減到 0 時,就停止繼續傳輸,最 后接收到請求的服務器端則返回狀態碼 200 OK 的響應。
-
CONNECT:要求用隧道協議連接代理。CONNECT 方法要求在與代理服務器通信時建立隧道,實現用隧道協 議進行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接 層)和 TLS(Transport Layer Security,傳輸層安全)協議把通信內容 加 密后經網絡隧道傳輸。
CONNECT.png
持久連接:只要任意一端沒有明確提出斷開連接,則保持TCP連接狀態,以減少TCP連接的重復建立和斷開所造成的額外開銷,減輕了服務器端的負載。
管線化:實現并行發送多個請求,而不需要一個接一個地等待響應。