分層名稱
功能概述
常見協議
應用層
針對特定應用的協議
ftp,dns,http,smtp等
表示層負責資料格式的轉換
不用協議
會話層負責建立和斷開通訊連線
不用協議
傳輸層
負責可靠的資料傳輸
tcp,udp等
網路層
負責將資料傳輸到目標位址
ip,arp,rarp等
資料鏈路層
負責物理層面的互連,節點之間的通訊傳輸
802.11,wifi等
物理層負責物理電路的位元流互換傳輸
rs-443等
使用到協議的應用層,傳輸層,網路層,和資料鏈路層這四層
可歸納為tcp/ip協議族的四層模型中。
面向連線:在通訊傳輸前,需要先開啟乙個連線,連線關閉時是無法傳送資料的。比如tcp。
面向無連線:無需確認對端是否存在,傳送端隨時可以傳送資料。
分組交換:將需要傳送的資料分成多個資料報,按照一定順序排列之後分別傳送,可以提高線路利用率。
單播:一對一通訊
多播:特定組內的通訊
廣播:同一資料鏈路內的所有計算機
任播:特定組內的任意一台計算機
ip位址 = 網路位址 + 主機位址
當主機位址部分全部設定為1時,就成為了該網路位址下的廣播位址
tcp通過序列號與確認應答(ack,用於指示希望下一次傳輸的序列號)提高可靠性。
一次連線的簡歷與斷開,正常過程需要來回傳送7個包才能夠完成;
「三次握手,四次揮手」
第一次握手:客戶端傳送syn(請求建立連線)
第二次握手:伺服器傳送ack(針對syn的確認應答),傳送syn(請求建立連線)
第三次握手:客戶端傳送ack(針對syn的確認應答)
成功建立連線
第一次揮手:客戶端傳送fin(請求切斷連線)
第二次揮手:伺服器傳送給ack(針對fin的確認應答)
第三次揮手:伺服器傳送fin(請求切斷連線)
第四次揮手:客戶端傳送ack(針對fin的確認應答)
udp不提供和tcp一樣的複雜的控制機制,利用ip提供面向無連線的通訊服務
在網路擁堵的情況下,udp無法進行流量控制等避免網路擁塞的行為,此外,傳輸途中即使丟包,udp也不會負責重發,甚至當包到達的時候也不會去糾正是否錯誤;
適用場景:
a.包總量較少的通訊(dns,snmp等)
c.限定於lan等特定網路中的應用通訊
d.廣播通訊(廣播,多播)
socket通常也稱作"套接字",用於描述ip位址和埠,是乙個通訊鏈的控制代碼。應用程式通常通過"套接字"向網路發出請求或者應答網路請求
伺服器:監聽指定的埠,等待客戶連線請求,客戶連線後,會話產生;在完成會話後,關閉連線。
客戶端:使用socket對網路上某乙個伺服器的某乙個埠發出連線請求,一旦連線成功,開啟會話;會話完成後,關閉socket。
前端工程師必備之 LESS
一 為什麼要用less?作為前端學習者的我們 或多或少都要學些 css 它作為前端開發的三大基石之一,時刻引領著 web 的發展潮嚮。而 css 作為一門標記性語言,可能 給初學者第一印象 就是簡單易懂,毫無邏輯,不像程式設計該有的樣子。在語法更新時,每當新屬性提出,瀏覽器的相容又會馬上變成絆腳石,...
前端工程師必備之 typescript
型別名 anylet name string bob let age number 37 首先我們看看數字列舉,如果你使用過其它程式語言應該會很熟悉。enum direction如上,我們定義了乙個數字列舉,up使用初始化為1。其餘的成員會從1開始自動增長。換句話說,direction.up的值為1...
前端工程師必備PS技能
ps參考線及其輔助 檢視 新建參考線 也可以快捷鍵ctrl r,顯示區的上側和左側就會出現標尺。任意點選中,並拖動標尺,便會出現淺藍色的輔助線。只有在移動工具下,才能拖動某一條參考線。刪除參考線的方式,來的回 去,拖動參考線把它移動到標尺處。上面的標尺對應的是水平參考線,左邊的標尺對應的是豎直參考線...