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。