1. 程式人生 > >web前端工程師必備知識:TCP/IP

web前端工程師必備知識:TCP/IP

1.OSI的7層參考模型

分層名稱

功能概述

常見協議

7

應用層

針對特定應用的協議

FTP,DNS,HTTP,SMTP等

6

表示層

負責資料格式的轉換

不用協議

5

會話層

負責建立和斷開通訊連線

不用協議

4

傳輸層

負責可靠的資料傳輸

TCP,UDP等

3

網路層

負責將資料傳輸到目標地址

IP,ARP,RARP等

2

資料鏈路層

負責物理層面的互連,節點之間的通訊傳輸

802.11,WIFI等

1

物理層

負責物理電路的位元流互換傳輸

RS-443等

使用到協議的應用層

傳輸層網路層,和資料鏈路層這四層

可歸納為TCP/IP協議族的四層模型中。

2.面向連線和麵向無連線

面向連線:在通訊傳輸前,需要先開啟一個連線,連線關閉時是無法傳送資料的。比如TCP。

面向無連線:無需確認對端是否存在,傳送端隨時可以傳送資料。

3.電路交換和分組交換

電路交換:如過去的電話網,獨佔線路資源,只有在上一個連線傳輸完畢之後才可以進行下一個連線。

分組交換:將需要傳送的資料分成多個數據包,按照一定順序排列之後分別傳送,可以提高線路利用率。

4.單播,多播,廣播,任播

單播:一對一通訊

多播:特定組內的通訊

廣播:同一資料鏈路內的所有計算機

任播:特定組內的任意一臺計算機

5.IP地址

Ip地址 = 網路地址 + 主機地址

當主機地址部分全部設定為1時,就成為了該網路地址下的廣播地址

6.TCP連線

TCP通過序列號與確認應答(ACK,用於指示希望下一次傳輸的序列號)提高可靠性。

一次連線的簡歷與斷開,正常過程需要來回傳送7個包才能夠完成;

“三次握手,四次揮手”

第一次握手:客戶端傳送SYN(請求建立連線)

第二次握手:伺服器傳送ACK(針對SYN的確認應答),傳送SYN(請求建立連線)

第三次握手:客戶端傳送ACK(針對SYN的確認應答)

成功建立連線

第一次揮手:客戶端傳送FIN(請求切斷連線)

第二次揮手:伺服器傳送給ACK(針對FIN的確認應答)

第三次揮手:伺服器傳送FIN(請求切斷連線)

第四次揮手:客戶端傳送ACK(針對FIN的確認應答)

7.關於UDP

UDP不提供和TCP一樣的複雜的控制機制,利用IP提供面向無連線的通訊服務

 在網路擁堵的情況下,UDP無法進行流量控制等避免網路擁塞的行為,此外,傳輸途中即使丟包,UDP也不會負責重發,甚至當包到達的時候也不會去糾正是否錯誤;

適用場景:

  A.包總量較少的通訊(DNS,SNMP等)

 B.視訊,音訊等多媒體通訊(即時通訊)

 C.限定於LAN等特定網路中的應用通訊

D.廣播通訊(廣播,多播)

8.關於SOCKET通訊

socket通常也稱作"套接字",用於描述IP地址和埠,是一個通訊鏈的控制代碼。應用程式通常通過"套接字"向網路發出請求或者應答網路請求

伺服器:監聽指定的埠,等待客戶連線請求,客戶連線後,會話產生;在完成會話後,關閉連線。 
客戶端:使用Socket對網路上某一個伺服器的某一個埠發出連線請求,一旦連線成功,開啟會話;會話完成後,關閉Socket。