TCP 傳輸控制協議

2021-09-24 00:10:57 字數 2412 閱讀 9562

一、tcp為應用層提供的服務

tcp協議 :transfer control protocol 一種面向連線的、可靠的、基於位元組流的傳輸層的協議

特點:

面向連線意味著兩個使用tcp的應用(通常是server和client),在彼此交換資料之前必須先建立乙個tcp連線;

tcp通過下列方式來提供可靠性:

兩個應用程式通過tcp連線交換8bit位元組構成的位元組流,tcp不再位元組流中插入記錄識別符號,將這稱為位元組流服務(byte stream service),如果一方的應用程式先傳10位元組,又傳20位元組,再傳50位元組,接收方無法了解傳送端每次傳送了多少個位元組,接收方可以份4次接收這80個位元組,每次接收20位元組,一端將位元組流放到tcp連線上,同樣的位元組流將出現在tcp連線的另一端。

tcp對位元組流的內容不作任何解釋,tcp不知道傳輸的資料字節流是什麼型別的資料,對位元組流的解釋由tcp連線雙方的應用層解釋。這種對位元組流的處理方式與unix作業系統對檔案的處理方式很相似,unix核心對乙個應用讀寫的內容不做任何解釋,而是交給應用程式處理,對unix核心來說,它無法區分其是二進位制檔案還是乙個文字檔案。

二、tcp首部及各字段的釋義

tcp資料被封裝在乙個ip資料報中;

如果不計選項和填充字段,tcp首部通常是20位元組的固定長度,但其最多有60位元組的長度;

tcp頭部資訊字段釋義:

接收視窗

佔2個位元組,用於流量控制和擁塞控制,表示當前接收緩衝區的大小16bit欄位,所以視窗大小最大為65535位元組,不過新的視窗刻度選項允許該值按比例變化來提供更大的視窗;

在計算機網路中,通常是用接收方的接收能力的大小來控制傳送方的資料傳送量,tcp連線的一端根據緩衝區大小確定自己的接收視窗值,告訴傳送方,使對方可以確定傳送資料的位元組數;

校驗和佔2個位元組,覆蓋了整個tcp報文段,包括首部和資料兩部分,是乙個強制性的字段,一定是由傳送端計算和儲存,由接收端進行驗證,tcp檢驗和的計算與udp檢驗和的計算相似,使用乙個偽首部;

緊急指標

緊急指標是乙個偏移量,和序號欄位中的值相加標識緊急資料最後乙個位元組的序號,tcp的緊急方式是傳送端向接收端傳送緊急資料的一種方式;

tcp報文段中的資料部分是可選的,因為在建立乙個連線或終止連線時,雙方交換的報文段僅有tcp首部,如果一方沒有資料要傳送,也使用沒有任何資料的首部來確認接收到的資料,在處理超時時大都也會傳送不帶任何資料的報文段;

總結:

tcp將使用者書打包構成報文段,它傳送資料後啟動乙個定時器,另一端對接收到的資料進行確認,對失序的資料進行重新排序,丟棄重複資料,tcp提供端到端的流量控制,並計算和驗證乙個強制性的端到端的檢驗和。

tcp是乙個面向連線的協議,無論是哪一方向另一方傳送資料之前都必須現在雙方之間建立一條連線;

三、網路基於c/s模型 客戶端(client)和服務端(server)在tcp中互動步驟

四、tcp協議程式設計練習

注意:客戶端連線服務端時,必須先啟動服務端;

public

static

void

main

(string[

] args)

throws ioexception

//關閉資源

reader.

close()

; socket.

close()

; serversocket.

close()

;}

public

static

void

main

(string[

] args)

throws ioexception

五、基於tcp和udp協議進行socket程式設計的區別

基於tcp協議的socket程式設計

基於udp協議的socket程式設計

通訊雙方需要建立連線

通訊雙方不需要建立連線

連線建立時雙方存在主次之分

通訊雙方完全平等

流式服務:資料是一條資料來源,資料是沒有界限的,傳送次數和接收的次數沒有直接關係,

接收方將資料放在緩衝區,資料一次不能接收完,可以放在緩衝區,進行二次讀取;

資料報服務:傳送次數和接收次數相等,

如果接收端一次未能讀取完傳輸層的資料,剩餘的資料直接被丟棄掉。

TCP 傳輸控制協議

推薦 tcp ip 簡直是程式設計師的福音 tcp 協議是 面向連線的,可靠的,流傳輸,協議。流 是指 不間斷 的資料結構,可以想象成排水管道中的水流。當應用程式採用 tcp 傳送訊息的時候,雖然可以保證傳送的順序,但是還是猶如沒有任何間隔的資料流,傳送給接收端。可以這麼理解 在傳送端,應用程式傳送...

TCP傳輸控制協議

tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線。當主動方發出syn連線請求後,等待對方回答syn ack 1 並最終對對方的 syn 執行 ack 確認。這種建立連線的方法可以防止產生錯誤的連線,tcp使用的流量控制協議是可變大小的滑動視窗協議 tcp三次握手的過程如下 客戶端傳送syn ...

tcp傳輸控制協議

tcp服務 tcp是面向連線的,提供可靠的服務,對資料有校驗機制。tcp的首部 其格式如下 如上tcp的報文是tcp的首部和tcp的資料。tcp的首部是有源埠和目的埠,這個值和ip首部的源ip和目的ip構成了tcp唯一確定的乙個連線。序號是用來標示從tcp發端向tcp收端傳送的資料位元組。當建立乙個...