一.基礎小知識
1.tcp的特點
(1)tcp是面向連線的運輸層協議:這也就是說,應用程式在使用tcp協議之前,必須先建立tcp連線。在傳送資料完畢後,必須釋放已經建立的tcp連線。
(2)每一條tcp連線只能有兩個端點,每一條tcp連線只能是點對點的。
(3)tcp提供可交付的服務:通過tcp連線傳送的資料,無差錯,不丟失,不重複,並且按序到達。
(4)tcp提供全雙工通訊:tcp允許通訊雙方的應用程序在任何時候都能傳送資料,tcp連線的兩端都設有傳送快取和接收快取,用來臨時存放雙向通訊的資料。
(5) 面向位元組流:tcp中的流指的是流入到程序或從程序流出的位元組序列。
tcp特點一句話總結:面向連線的傳輸,端到端的通訊,高可靠性,確保傳輸資料的正確性,不出現丟失或亂序;全雙工方式傳輸,採用位元組流方式。
2.tcp通過哪些方式保證可靠傳輸
(1)以位元組為單位的滑動視窗:凡是已經傳送過的資料,在未收到確認之前,都必須暫時保留,以便在超時重傳時使用。傳送視窗裡面的序號表示允許傳送的的序號,傳送視窗後沿的後面部分表示已經傳送並且已經得到確認。
(2)超時重傳:tcp的傳送方在規定的時間內沒有收到確認就要重傳已傳送的報文段。
(3)流量控制:所謂的流量控制就是讓傳送方的傳送速率不要太快,要讓接收方來得及接收。(請你說一下tcp是如何實現流量控制的?答:tcp是通過滑動視窗來實現流量控制的,當傳送方向接收方傳送資料時,接收方會告訴傳送方自己的接收視窗的大小,此時傳送方的傳送視窗是不能超過接收方的接收視窗)。
(4)擁塞控制:什麼是擁塞?在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就要變壞,這種情況就叫做擁塞。(對資源的需求大於可用資源)。擁塞控制就是防止過多的資料注入到網路中,這樣就可以使用網路中的路由器或鏈路不至於過載。擁塞控制方法有:慢開始,擁塞避免,快重傳,快恢復。
插播一條問答題: 請問判斷網路擁塞的依據是什麼:出現了超時。
慢開始:在大量資料位元組注入到網路之前,先探測一下,由小到大逐漸增大傳送視窗,也就是說由小到大逐漸增大擁塞視窗。
擁塞避免:讓擁塞視窗緩慢地增大,即每經過乙個往返時間rtt就把傳送方的擁塞視窗cwnd加1。
快速重傳:採用快速重傳演算法可以讓傳送方盡早知道發生了個別報文段的丟失。
快速恢復:
運輸層 TCP的連線管理
我們通過下面的圖來理解tcp的連線 首先,最初兩端的tcp程序都處於一種closd的狀態,a作為客戶,b作為伺服器,這時候a主動開啟連線,b是被動開啟連線的,b的tcp伺服器先建立傳輸控制塊tcb transmission control block 準備接受連線的請求,進入到listen狀態,a的...
TCP連線管理
tcp是面向連線的協議,因此每個tcp連線都有三個階段 連線建立 資料傳送和連線釋放。tcp連線的管理就是使運輸連線的建立和釋放都能正常進行。在tcp連線建立的過程中,要解決以下三個問題 要使每一方都能確知對方的存在。要允許雙方協商一些引數 如最大視窗值 是否使用視窗擴 項 時間戳選項以及服務質量等...
TCP 連線管理
本節將介紹一條tcp連線是如何建立和拆除的。此處假設客戶機a上面的乙個程序想要和服務 器b上的乙個程序建立一條tcp連線。本文前面介紹的是比較正常的連線和拆除,特殊的會在後面介紹。第一步客戶機a的tcp會向伺服器的tcp傳送乙個不包含應用層資料的資料的tcp報文段。該報文段中首部標誌位s yn被置為...