準備春招,複習筆記1 TCP

2021-10-01 17:04:26 字數 1258 閱讀 1039

「傳輸控制協議(tcp)是一種網路通訊協議,旨在通過internet傳送資料報。tcp是osi層中的傳輸層協議,用於通過傳輸和確保通過支援網路和internet傳遞訊息來在遠端計算機之間建立連線。」

網路通訊協議是指

「網路通訊協議是一種網路通用語言,為連線不同作業系統和不同硬體體系結構的網際網路絡提供通訊支援,是一種網路通用語言。」

通俗來講,就是同來連線不同作業系統和硬體的一種語言

tcp怎麼建立連線?

tcp一般涉及到3次握手

稍微畫個圖方便自己理解

描述tcp3次握手

首先客戶端會向伺服器傳送tcp請求,客戶端會傳送帶有標誌位syn=1,seq=x的資料報給伺服器,然後狀態處於syn-sent,等待伺服器確認。伺服器收到請求後,通過syn=1得知客戶端請求建立連線,會傳送隨機生成seq=y,並且生成ack=x+1,ack=1打包成資料報返回給客戶端,這時伺服器處於syn-rcvd狀態,客戶端收到伺服器返回的資料,判斷ack是否等於x+1,ack是否為1,如果都正確,客戶端會把ack置為1,ack置為y+1,傳送資料報給伺服器,伺服器檢驗ack為1和ack是否為y+1,如果都正確,則兩者連線建立。他們狀態都為established,他們這個時候可以傳送資料。

剛開始理解的時候我也很暈,什麼syn,seq,ack,ack等等

syn是用來幹嘛的?我覺得syn就是為了讓伺服器知道這個資料報是用來請求建立連線的,讓伺服器區別是別的請求還是建立連線請求的乙個標誌位。

seq是乙個隨機生成的順序碼。客戶端傳送請求後,接受伺服器收到後返回的資料報,對其ack做檢驗,是否為之前傳送請求隨機生成seq+1,確保接受回來的資料報是回應上乙個發出建立連線的請求。那為啥要隨機呢?主要是為了防止黑客偽造序列號進行攻擊。

小寫的ack就是剛剛提到了為了校驗是否為上乙個的請求的回應。

大寫的ack是乙個標誌位,為了告訴別人上乙個收到的請求正確,如果收到的資料報有誤,或錯序,就會申請重發。nck是否定的意思,ack就是肯定的意思。

3次握手時為了防止客戶端向伺服器傳送建立連線請求的時候,因網路原因該請求丟失或者延遲,這時候客戶端長時間沒收到資訊,就會觸發重傳機制,重新再發。然後後面客戶端和伺服器正常連線後斷開。這個時候剛剛因網路原因的請求去到伺服器。如果只有2次的話,伺服器收到會進入established狀態,而客戶端早就已經關閉了,所以伺服器的資源會被白白浪費,而如果是3次握手的話,伺服器要收到客戶端再次確認請求才會處於established狀態。

春招準備日記day01

寫本日記的目的 1.為了讓自己每個月的一段時間內有固定的事做,不用幹什麼不知道。3.總結每日得失,第二天改正,每日一篇更新到找到實習。2017 10 16 2017 10 31 為完成以上計畫順便學 組合語言 王爽第二版,x86從實模式的保護模式 計畫一天一章,昨晚習題和實驗 並順便完成2018天勤...

2019春招準備 16 tcp

內容 補充 內容 tcp和udp的區別 tcpudp 連線tcp面向連線 如打 要先撥號建立連線 udp是無連線的,即傳送資料之前不需要建立連線 服務的可靠性 無差錯,不丟失,不重複,且按序到達 不保證可靠交付 實時性實時性低 實時性高,適合高速率的有效性傳輸 傳播方式 因為面向連線,因此1 1 一...

決戰春招Spring學習筆記2

經過上次的學習和練習掌握了基於xml的ioc配置,用註解的配置不是很熟練但無傷大雅繼續往下學,以後在實戰中複習 aop為aspect oriented programming的縮寫,意為 面向切面程式設計 ioc是為了給 結耦,用反射的方式建立,降低 互相的依賴 那aop存在的意義是什麼?答 為了解...