天天看點

TCP UDP及socket程式設計學習(一)

TCP基礎知識要點(一)

TCP 特性

TCP/UDP: 傳輸層,提供程序到程序的通信能力

IP:網絡層,隻能将IP資料包尋址到主機

是以要實作程序間通信隻靠主機位址是不夠的,還要加入程序的表示,即端口号(軟體端口号)

TCP的确認和逾時重發機制

1.确認機制:

TCP的基本傳輸單元是TCP資料段,其長度是可變的。由于TCP要提供的是端對端無差錯的資料傳輸,是以TCP接收到資料後,将對資料進行校驗,如果資料正确,則TCP将向對端發送确認。當接收端發出确認資訊,表明之前的資訊已正确收到,确認資訊為希望接收的下一個位元組的序列号。

2.逾時重傳機制:

TCP在發完一個資料包後,資料資訊還儲存在TCP的緩沖區中,知道接收方收到對端的确認資訊(ACK)後才從緩沖區删掉,如果一段時間沒有收到确認資訊,發送方将重新發送,直到重發次數超過一定次數,那麼TCP發送端将認為對端不可達,斷開TCP連結。(比如收到了 30 31 33 34 35, 那麼接收方将發送32,表示下一個希望發送的是32)。

TCP采用回帶技術,在發送資料的段中回帶對方的确認資訊,這樣可以省大量資料包,确認資訊不用單獨使用資料包傳輸。

影響逾時重傳的關鍵因素是定時時長,這個時長應當随着網絡狀況的變化而變化。目前TCP采用RTT(round trip time)為發送到接收到确認的時間長度,TCP根據每次連接配接的性能來定RTT值。

3.TCP滑動視窗

接收方通告的接收視窗大小。TCP通過滑動視窗協定來實作擁塞控制。就是發送方最多能發送控制視窗大小的資料,此後發送方将不發送資料,知道接收到發送方發來的ACK,視窗才能向前移動。控制視窗的大小有兩個因素決定:一個是發送端自身的擁塞視窗控制,一個是接收方根據剩餘緩沖區的數量發來的視窗大小,控制視窗的大小是兩者中最小的。

在沒有擁塞時,擁塞視窗和接收方通告的視窗相同,當TCP發現擁塞發生時,将減小擁塞視窗,擁塞消除後,增大擁塞視窗。

繼續閱讀