計算機網絡(學習複習)

OSI開放式互聯參考模型(OSI七層協議)

第一層物理層

解決兩臺物理機之間的通信需求,即機器A向機器B發送bit流,物理層主要定義了物理設備的標準。傳輸bit流

第二層數據鏈路層

定義瞭如何格式化數據來進行傳輸,如何控制對物理介質的訪問,錯誤檢測和糾正。傳輸幀

第三層網絡層

將網絡地址翻譯成相應的物理地址,並定義如何將數據從發送方路由到接收方。數據包、IP

第四層傳輸層

接收上一層的數據,在必要的時候把數據進行分割,並將這些數據交個網絡層,且保證這些數據有效到達、TCP、UDP

第五層會話層

建立和管理應用程序之間的通信、應用程序自動調用TCP、IP收發信息

第六層表示層

幫我們解決不同系統之間語法不同的問題

第七層應用層

規定發送方和接收方必須使用一個固定長度的消息頭。指在使用戶更加方便的使用網絡。HTTP

OSI的實現“TCP/IP協議”

在這裏插入圖片描述
在這裏插入圖片描述

TCP的三次握手

IP

IP協議是一種無連接的協議,不會佔用通信線路,每條線可以滿足多個應用使用
IP數據包不能保證是否順序發送是否全部送到所以是不可靠的
需要由上層協議控制

傳輸控制機械TCP簡介

面向連接的、可靠的、基於自己留的傳輸層通信協議
將應用層的數據流分割成報文段併發送給目標節點的TCP層
數據包都有序號,對方收到則放鬆ack確認,未收到則重傳
運用奇偶校驗和來驗證數據在傳輸過程中是否有誤

說說TCP的三次握手

在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。

  • 第一次握手:建立連接時,客戶端發送SYN包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
  • 第二次握手:服務器收到SYN包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
  • 第三次握手:客戶端收到服務器端SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

爲什麼需要三次握手才能建立起連接

爲了初始化Sequence Number的初始值

首次握手的隱患—SYN超時

  • Server收到Client的SYN,回覆SYN-ACK的時候未收到ACK確認
  • Server會不斷重試直至超時,Linux默認重試5次也就是共等待63秒才斷開連接

TCP的四次揮手

“揮手”是爲了終止連接連接

  • 第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態;
  • 第二次揮手:Server收到FIN後,發送一個ACK給Client,確認序號爲收到序號+1(與SYN相同,一個FIN佔用一個序號),Server進入CLOSE_WAIT狀態;
  • 第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態;
  • 第四次揮手:Client收到FIN後,Client進入TINE_WAIT狀態,接着發送一個ACK給Server,確認序號爲接收序號+1,Server進入CLOSE裝填,完成四次揮手
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章