什麼是TCP(傳輸控制協定)
Transmission Control Protocol的縮寫。傳輸層的連線導向協定。以三向交握建立連線,再以序號、確認應答(ACK)與重傳,讓資料不缺漏、不重複,並依傳送的順序送達。也以流量控制與壅塞控制調整傳送量。網頁存取(HTTP/1.1、HTTP/2)、電子郵件、SSH等都使用TCP。
日文名稱: TCP
「TCP(傳輸控制協定)」出現在2領域的17道練習題中(電腦網路基礎, Web技術基礎等)。
這個名詞所屬的領域: 電腦網路基礎
Transmission Control Protocol的縮寫。傳輸層的連線導向協定。以三向交握建立連線,再以序號、確認應答(ACK)與重傳,讓資料不缺漏、不重複,並依傳送的順序送達。也以流量控制與壅塞控制調整傳送量。網頁存取(HTTP/1.1、HTTP/2)、電子郵件、SSH等都使用TCP。
日文名稱: TCP
「TCP(傳輸控制協定)」出現在2領域的17道練習題中(電腦網路基礎, Web技術基礎等)。
這個名詞所屬的領域: 電腦網路基礎
TCP替傳送資料的每一個位元組加上連續編號(序號)。接收端回傳「下一次請從這個編號開始送」的確認應答(ACK),傳送端若在規定時間內沒有收到ACK,就重新傳送該資料(重傳逾時)。若連續收到3個相同編號的ACK(重複ACK),則不等逾時就立即重傳(快速重傳)。接收端會把順序錯亂送達的資料重新排好、丟棄重複的部分,並以檢查和找出損壞的資料。從應用程式看來,資料是沒有分隔的位元組流(串流)。
傳送端在等待ACK之前,可以連續送出最多一個視窗大小的資料。配合接收端告知的緩衝區剩餘空間(接收視窗)是流量控制;傳送端依網路的擁擠程度增減自己的壅塞視窗則是壅塞控制,實際上會取兩者中較小的一方。由於每個往返時間(RTT)只能送出一個視窗的量,吞吐量大約是視窗÷RTT。例如視窗64 KB、RTT 100 ms時,上限約為5 Mbit/s,因此要善用高速的遠距線路,就要以視窗縮放選項加大視窗。
TCP標頭在沒有選項時為20位元組,包含來源與目的地的連接埠號碼、序號、確認應答號碼、SYN、ACK、FIN、RST等旗標、視窗大小與檢查和。一條連線由來源與目的地的IP位址及連接埠號碼這4個值區分。連線以三向交握開始,雙方向各自送出FIN後關閉。只要遺失一個區段,即使後面的資料已經送達,也無法交給應用程式而必須等待(線頭阻塞),因此HTTP/3改用UDP之上的QUIC。
TCP會建立連線,以確認應答、重傳與順序控制確實送達資料。UDP沒有建立連線的程序也不重傳,只是把資料包送出,因此標頭小、延遲也少。需要完整性的網頁與檔案傳輸使用TCP;比起偶爾遺失,更重視低延遲的通話,以及很短的DNS查詢則使用UDP。
有兩種時機:一是送出後超過重傳逾時時間(由RTT的量測計算)仍未收到ACK;二是連續收到3個相同確認應答號碼的ACK,後者稱為快速重傳。若重傳持續失敗,逾時時間會一次次加倍。
因為每個往返時間只能送出視窗大小的資料,對方越遠、視窗越小,吞吐量就越低。封包遺失使壅塞控制縮小視窗時,或接收端應用程式讀取較慢時,吞吐量也會下降。
TCP/IP模型由下而上分為連結層(網路介面層)、網際網路層、傳輸層、應用層4層。
在TCP/IP的四層模型中,TCP與UDP屬於哪一層?因此,TCP在開始傳送資料之前至少需要一個往返時間(RTT)。
在建立TCP連線的三向交握中,交換封包的順序下列何者正確?首先,TCP的三向交握需要1個往返(用戶端可以把TLS的第一則訊息與最後的ACK一起送出)。
以HTTPS(在TCP之上的TLS 1.3)重新連線到RTT(往返時間)為100 ms的Web伺服器,從送出第一個請求…TCP的傳送端不必等待確認應答(ACK),就可以連續傳送多個區段。
在TCP的流量控制中,接收端向傳送端通知視窗大小(接收視窗)的目的,下列何者正確?TCP標頭的視窗欄位為16位元,最大為65535位元組,但可用視窗縮放選項加大。
某TCP連線的接收視窗固定為65536位元組,RTT為10 ms,線路頻寬足夠大且沒有遺失。此連線可得到的傳輸量上限最…封包 HTTP(超文字傳輸協定) RTT(往返時間) IP(網際網路協定) UDP(使用者資料包協定) DNS(網域名稱系統) TLS QUIC 壅塞控制 路由器