2018 9 14 網路模型

2021-08-28 03:13:01 字數 3415 閱讀 9151

物理層:利用傳輸介質為資料鏈路層提供物理連線,位元流傳輸

資料鏈路層:為網路層提供服務,解決兩個相鄰結點之間的通訊問題,負責透明傳輸資料幀,傳送的協議資料單元稱為資料幀,資料幀中包含實體地址(mac)、控制碼、資料及校驗碼等資訊,該層的主要作用是通過校驗、確認和反饋重發手段,將不可靠的資料鏈路層轉換為對網路層來說無差錯的資料鏈路,此外,資料鏈路層還要協調收發雙方的資料傳輸速率,即進行流量控制,以防止接收方因來不及處理傳送方來的高速資料而導致緩衝器溢位及線路阻塞

資料鏈路層分為倆個子層:邏輯控制鏈路層和介質訪問控制子層

每個網絡卡都有乙個唯一的mac位址

網路層: 為傳輸層提供服務,負責主機通訊,傳送的協議資料單元稱為資料報或分組。解決如何使資料報通過各結點傳送的問題,即通過路由選擇演算法將資料報送到到目的地。此外,為避免通訊子網中出現過多的資料報而造成網路堵塞,需要對流入的資料報數量進行控制(擁塞控制)。當資料報要跨越多個通訊子網才能達到目的地時,還要解決網際互連問題

ipv4位址表示方法位用點隔開的4各數字,每個數字的取值為0~255,即每乙個位元組的大小,如192.168.1.1

傳輸層: 傳輸層的作用是為上層協議提供端到端的可靠和透明的資料傳輸服務,負責程序間通訊,包括差錯處理控制和流量控制等問題。該層向高層遮蔽了下層資料通訊的細節

傳輸層上最重要的倆個協議是tcp和udp。tcp是面向連線的協議,udp是無連線的協議

tcp(傳輸控制協議):tcp在傳輸資料之前必須建立乙個連線 tcp做了很多任務作來確保傳輸的可靠性,包括 **建立、管理和終止連線,確認和重傳。同時tcp還提供分段和重組,流量控制等

udp(使用者資料報協議):udp是一種簡單的傳輸層協議,所以它並不能提供可靠的資料傳輸。udp只是把應用程式發給它的資料打包成乙個udp資料報,然後再把這個資料報傳給ip。

tcp會把應用程式發來的資料根據需要分成若干個大小合適的tcp段,而udp只是把所有資料打包成乙個udp資料報

有很多的應用程式同時使用tcp和udp,他們都會把資料交給tcp/udp,而tcp/udp也會接受來自ip的、包含指向不同應用程式的資料,所以就需要一種方法來區別應用程式,這種方法就是通過埠號來進行多路復用多路分解。埠號是乙個16為的二進位制數

多路復用:多路復用只是應用程式把資料交給tcp和udp的時,tcp會把這些資料分成若干個tcp段,udp則會產生乙個udp資料報,在這些tcp段和udp資料報中,會填入應用程式指定的源埠號和目標埠號,源埠號用於標識傳送的應用程式,目標埠號用於指明在目標機器上應該接收資料的目標應用程式。

多路分解:多路復用的逆過程,擋在==當在目標機器上的tcp或者udp接收到tcp段和udp資料報時,會檢查它們的目標埠號,然後根據不同的目標埠號把愛資料分發給不同的應用程式。

會話層:兩個應用程式程序之間的邏輯連線,兩個應用程式通過邏輯連線在一段時間內交換資料,會話層的作用就是為建立、管理和終止會話提供必要的方法

會話層負責管理和確定傳輸模式,計算機可以由三種模式來傳輸資料:單向、半雙工、全雙工

表示層:資料的表示,資料的轉換、壓縮、加密。工作在表示層的加密協議–ssl。

應用層的其他協議:

應用層:tftp,http,snmp,ftp,smtp,pops,dns

傳輸層:tcp,udp

網路層:ip,icmp,ospf,eigrp,igmp

資料鏈路層:slip,cslip,ppp,mtu

每乙個抽象層都建立在低一層提供的服務上,並為上層服務。

socket處於應用程式的傳輸層和應用層之間,設計了乙個socket抽象層,傳輸層的低一層的服務提供給socket抽象層,socket抽象層再提供給應用層,這三層之間以tcp/ip為基礎進行通訊

tcp/ip協議第一次握手:客戶端嘗試連線伺服器,向伺服器傳送syn包,syn=j,客戶端進入syn_send狀態等待伺服器確認

第二次握手:伺服器接收客戶端syn包並確認(ack=j+1),同時向客戶端傳送乙個syn包(syn=k) ,即syn+ack包,此時伺服器進入syn_recv狀態

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手

tcp三次握手的原因:

假設客戶端請求建立連線,發給伺服器syn包等待伺服器確認,伺服器收到確認後,如果是倆次握手,假設伺服器給客戶端在第二次握手時傳送資料,資料從伺服器發出,伺服器認為連線已經建立,但在傳送資料的時候資料丟失,客戶端認為連線沒有建立,會進行重傳syn包。假設每次傳送的資料都在丟失,那麼客戶端就會一直重傳syn,伺服器端產生多個無效鏈結,占用資源,這個伺服器可能會奔潰,syn洪水衝擊,第三次握手是為了防止:如果客戶端沒有收到伺服器返回確認的報文,客戶端會放棄連線,重新啟動一條連線請求,但問題在於:伺服器不知道客戶端有沒有收到,會收到倆個連線,浪費連線開銷

第一次揮手:客戶端給伺服器傳送fin包,用來關閉客戶端到伺服器的資料傳送

第二次揮手:伺服器接收到fin後,發回有乙個確認訊號ack

第三次揮手:伺服器傳送fin包,請求關閉伺服器到客戶端的資料傳送

第四次揮手:客戶端收到伺服器傳送的fin後,發回ack確認

客戶端傳送fin後,進入終止等待狀態,伺服器收到客戶端連線釋放報文段後,就立即給客戶端傳送確認,伺服器就進入close_wait狀態,此時tcp伺服器程序同指高層應用程序,因而從客戶端到伺服器的連線就釋放了。此時是「半關閉狀態」,客戶端不可以傳送給伺服器資料,而伺服器可以傳送給客戶端。此時,如果伺服器沒有資料報傳送給客戶端,其應用程式就通知tcp釋放連線,然後傳送給客戶端連線釋放資料報,並等待確認。客戶端傳送確認後,進入time_wait狀態,但是此時tcp連線還沒有釋放,然後經過等待計時器設定的2msl後,才進入到close狀態。

為什麼要2msl時間?

msl就是最大報文生存時間,是任何報文在網路上的存在的最長時間,超過這個時間報文將被丟棄,tcp的time_wait需要等待2msl,當tcp的一段發起主動關閉,三次**完成後傳送第四次揮手的ack包後就進入這個狀態,等待2msl為了防止最後乙個ack包沒有收到,那麼對方在超時後將重發第三次揮手的fin包,主動關閉端接到重發的fin包後可以再發乙個ack應答包。

為什麼四次揮手?

雙方關閉連線要經過雙方都同意。所以,首先是客服端給伺服器傳送fin,要求關閉連線,伺服器收到後會傳送乙個ack進行確認。伺服器然後再傳送乙個fin,客戶端傳送ack確認,並進入time_wait狀態。等待2msl後自動關閉。

9 1 1 網路模型

9.1.1 osi七層模型。1.應用層 一般指應用程式,該層主要負責確定通訊物件。常用協議有ftp,http,snmp 2.表示層 資料的編碼和轉化,根據不同的應用目的將資料處理為不同格式,表現出各種副檔名。3.會話層 負責在網路中的兩個結點之間建立,維護,控制會話。提供單工,半雙工,全雙工 x,h...

0905網路模型

pid t waitpid pid t pid,int status,int options pid 1 等待程序組識別碼為 pid 絕對值的任何子程序。pid 1 等待任何子程序,相當於 wait pid 0 等待程序組識別碼與目前程序相同的任何子程序。pid 0 等待任何子程序識別碼為 pid ...

6 1 網路應用模型

一 客戶 伺服器模型 在客戶 伺服器模型中,有乙個總是開啟的主機稱為伺服器,它服務於許多來自其他稱為客戶機 的主機請求。其工作流程如下 1 伺服器處於接收請求的狀態。2 客戶機發出服務請求,並等待接收結果。3 伺服器收到請求後,分析請求,進行必要的處理,得到結果並傳送給客戶機。客戶程式必須直到伺服器...