1.osi參考模型及各層作用。
開放式系統互聯模型的作用是為了解決異種網路互聯時引起的相容性問題,其最主要的功能是幫助不同的主機實現資料傳輸。最大的優點是將服務、協議、介面這三個概念明確的分開來。
1)物理層:在通道上傳輸原始位元流。
2)資料鏈路層:加強物理層傳輸原始位元流同能,為保證傳輸,從網路層接受的資料被分割成特定的可被物理層傳輸的幀,按順序傳送出去並處理接收方回送的確認幀。
4)傳輸層:進行流量控制或是根據接收方接收資料的快慢程度控制傳送速度,按照網路能處理的最大資料對較長的資料進行強制切割。
5)會話層:建立通訊鏈結,保持通訊鏈路通暢。
6)表示層:將資料按網路能夠理解的方式進行格式化,格式化因網路型別不同而不同。
7)應用層:為使用者的應用程式(如檔案傳輸,檔案管理,電子郵件等)提供服務。
2.tcp和udp有什麼區別?
tcp是傳輸控制協議,是面向連線的、可靠的位元組流服務。當客戶和伺服器彼此交換資料前,先建立一條tcp連線。tcp提供超時重發、丟棄重複資料,檢驗資料、流量控制等功能,保證資料能從一端傳到另一端。(類似打**)
udp是使用者資料報協議,是面向資料報的傳輸協議,不面向連線,不提供可靠性。它只把應用程式傳給網路層的資料報傳送出去,但並不保證到達目的地。速度比tcp快。
3.在各層之間,資料以什麼單位進行傳輸的?
物理層,資料基本單位是位元;資料鏈路層,資料的基本單位是幀;網路層,資料的基本單位是資料報;在傳輸層,資料的基本單位是資料段。
4.tcp握手過程。
半關閉連線:連線的一端在結束了它的傳送後還能接收來自另一端資料的能力。具體體現在:傳送乙個fin(檔案結束符)給另一端,直到另一端發了fin。
半開啟連線:tcp連線的一方崩潰了,但是另一方不知道。
5.解釋未連線佇列、backlog引數、syn-ack重傳次數、半連線存活時間等概念。
未連線佇列:在三次握手過程中,伺服器維護乙個未連線佇列,隊列為每個客戶端的syn包開設乙個條目,表明伺服器收到客戶端的syn包,發出syn+ack包,進入syn_rcvd狀態,等待客戶端的確認。如果收到了客戶端的確認包,則從佇列中刪除該條目,伺服器進入established狀態。
backlog引數:未連線佇列的最大容納數目。
syn-ack重傳次數:伺服器傳送完syn-ack後,沒有收到客戶端的確認包,於是進行首次重傳,一段時間後還是沒收到客戶確認包,進行第二次重傳,當重傳次數超過系統規定的最大重傳次數,則從未連線佇列中刪除該條目。
6.tcp/ip四層模型及每層功能。
鏈路層:通常包括作業系統的裝置驅動程式和計算機中對應的網路介面卡,一起處理與電纜的物理介面細節。
傳輸層:進行流量控制或是根據接收方接收資料的快慢程度控制傳送速度,按照網路能處理的最大資料對較長的資料進行強制切割。(tcp、udp)
應用層:為使用者的應用程式(如檔案傳輸,檔案管理,電子郵件等)提供服務。
7.計算機網路層次結構之兩級模型。
通訊子網:提供通訊,即資料傳輸的能力。由通訊控制機,通訊鏈路以及訊號變換器等構成。
8.tcp/ip模型和osi模型異同比較。
相同點:
都有相同的4層,且功能相似。
不同點:
1)osi模型有7層,tcp/ip只有4層。
2)osi模型在網路層支援面向連線的tcp通訊和支援無連線的udp通訊,在傳輸層只支援面向連線的tcp通訊。
tcp/ip在網路層只有無連線的udp通訊,在傳輸層支援tcp和udp通訊。
9.視窗滑動機制
作用:tcp的一種流量控制方法(可靠性和流控制性)。
視窗:可以被傳送者傳送的一段位元組序列,其連續的範圍稱作視窗。
滑動:指這段「可以被傳送的範圍」是隨著傳送的過程變化的,方法是按順序滑動。
流量控制:接收方傳遞訊息給傳送方,使其不要傳遞資料太快,主要的方式是通過返回的ack包中會包含自己接收視窗的大小。
零視窗:視窗左邊沿到達右邊沿。如果接收緩衝區已滿,接收方會給傳送方乙個零視窗通知,此時傳送方啟動持續計時器,時間到則發乙個1位元組的探測報文,接收方會回應視窗大小,如果仍為0,則重設計數器,繼續等待。
注意:1)傳送視窗是傳送緩衝區的一部分,應用層需要傳送的所有資料都被送到了傳送者的傳送緩衝區。
2)傳送視窗四個相關概念:已傳送並收到確認的資料(不在傳送視窗和傳送緩衝區之內)、傳送,但未被確認的資料(在傳送視窗之內)、允許傳送但尚未傳送的資料、不能夠傳送的資料(在傳送視窗外,傳送緩衝區內)。
視窗運動的三個術語:
1)視窗合攏:視窗左邊沿向右邊沿靠近。發生在資料被傳送和確認時。
3)視窗收縮:視窗右邊沿向左運動。
10.push標誌位的作用。
傳送資料放使用該標誌通知接收方將所收到的資料全部交給接收程序。此資料報括已經放在接收緩衝區的資料和與push一起傳送的資料。
11.negle演算法
流量控制除了視窗滑動,另乙個重要點是流量控制中的效率。
如果傳送乙個位元組的資料,需要加上20位元組的ip首部和20位元組的tcp首部,這些小分組會增加擁塞出現的可能。
negle演算法要求每乙個tcp連線上只有1個未被確認的未完成小分組。tcp收集這些小分組,並在確認到來時以乙個分組傳送出去。
對一些快響應,對延時敏感的的應用需關閉negle演算法。
11.tcp擁塞控制機制
擁塞控制:防止過多的的資料注入到網路,不至於使網路中的路由器或鏈路過載。
常用的方法:
1)慢啟動(減少主機傳送到網路中的分組數,使路由器有足夠的時間把佇列中積壓的分組處理完畢)
2)快重傳,快恢復(減少因為擁塞導致資料報丟失帶來的重傳時間,從而避免傳遞無用的資料到網路)
慢啟動演算法:
1)慢啟動為tcp傳送發維護乙個擁塞視窗(cwnd,以位元組為單位),該視窗與接收視窗共同決定了傳送者的傳送視窗。
2)擁塞視窗初始化為1位元組的報文段,當收到確認時,傳送2位元組的報文段。
3)若再收到2位元組的報文,就傳送4位元組的報文,依次下去,當達到滿開始門限時,改用擁塞避免演算法。
4)傳送方取擁塞視窗和接收視窗的最小值作為傳送上限。
注意:擁塞視窗是傳送方使用的流量控制,接收視窗是接收方使用的流量控制。
擁塞避免演算法:每經過乙個往返時間就把擁塞視窗加1。
當出現網路擁塞,就把慢開始門限減半,擁塞視窗置1,重新開始慢啟動演算法。
快重傳機制:
超時重傳是一段時間後沒有收到該資料對應ack,就重新傳送資料。
快重傳就是傳送方接收到3次以上的重複ack,就重新傳送資料,而不需要等到超時。此時,傳送發執行快恢復演算法。
快恢復演算法:
1)滿開始門限減半。
2)擁塞視窗設為滿開始門限值。
3)執行擁塞避免演算法。
12.tcp和udp的包頭多長,包含哪些字段?
13.socket模型。
14.select和epoll區別。
15.描述一下多播協議,應用場景。
16.程序間通訊方式。
1)管道:
2)訊號:
3)訊號量:
4)訊息佇列:
5)共享記憶體(加什麼級別鎖?):
6)套接字
參考:程序與執行緒
17.tcp三次握手有哪些漏洞,有沒有被攻擊的可能,怎麼被攻擊。
如果利用虛假的源ip,大量發起到伺服器的訪問,但是不進行第三次握手的確認,很容易耗盡服務端的tcp佇列。這就是半連線flood攻擊。
面試 計算機網路 計算機網路概述
隨著技術的發展,電信網路和有線電視網路都逐漸融入了現代計算機網路的技術,這就產生了 網路融合 的概念。連通性 共享 網際網路的拓撲結構雖然非常複雜,並且在地理上覆蓋了全球,但從其工作方式上看,可以劃分為以下的兩大塊 2 核心部分 由大量網路和連線這些網路的路由器組成。這部分為邊緣部分提供服務 提供連...
計算機網路面試
採用兩次握手,那麼若client向server發起的包a1如果在傳輸鏈路上遇到的故障,導致傳輸到server的時間相當滯後,在這個時間段由於client沒有收到server的對於包a1的確認,那麼就會重傳乙個包a2,假設伺服器正常收到了a2的包,然後返回確認b2包。由於沒有第三次握手,這個時候cli...
面試 計算機網路
https協議 與網路層的區別 四次揮手 客戶端傳送fin 1,seq u,進入fin wait1狀態 不再傳送 伺服器接受並傳送ack 1,seq v,ack u 1,進入close wait狀態 不再接受 伺服器將所有資料傳送完畢後,傳送請求fin 1,seq w,ack u 1,進入last ...