【Socket 網絡通信】TCP/IP 簡介1

網絡應用分爲客戶端(Client)和服務端(Server)例如我們常用的瀏覽器,就屬於客戶端,服務於瀏覽器的服務端,我們稱爲Web服務器。

 上圖是以web爲例,客戶端和服務端在以太網中的通信過程,其它類型客戶端和服務端也是一樣的。

上圖是國際標準化組織的計算機通信開放系統互連模型,共七層,以及協議族中所在的各層的映射關係。

TCP協議是一個面向連接的協議,爲用戶提供可靠的全雙工字節流。它關心確認、超時、重傳等細節。

當TCP向另一端發送數據時,它要求對端返回一個確認。如果沒有收到確認,它會自動重傳,關等待更長的時間。在數次重傳失敗後,TCP纔會關閉連接。

TCP有動態估算客戶端和服務器往返時間的算法(RTT)以便知道等待一個確認需要多少時間。

TCP在發送數據時,會給每一條數據加上一個序列號,以便接收端收到消息後,對錯亂的消息進行重排和丟棄重複消息。(注意:互聯網傳輸比較複雜,並不是先發的消息就會被先接收到)。

TCP還提供流量控制,它總是告訴對端一次能接收多少字節,稱爲通告窗口或滑動窗口,確保發送端數據不會使接收端緩衝區溢出。這個窗口是動態變化的,當讀取消息的時候,窗口會變大,收到消息後,窗口變小。當窗口大小爲0,會告訴對端,沒有地方接收消息了。

 

微信號:ITComputerGraph

更多精彩內容,關注公衆號《IT木子李

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章