TCP的三次握手與四次揮手及UDP與TCP的區別

2021-10-02 21:19:35 字數 2291 閱讀 2152

tcp是傳輸層控制協議(tcp,transmission control protocol)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。

1.建立乙個套接字(socket())

2.將套接字和本地的ip位址和埠繫結(bind())

3.將套接字設定為被動監聽狀態,監聽連線的到來,並將到來的連線放入未決佇列中(listen()),listen()的第二個引數是設定已完成三次握手的佇列長度,在unix系統中表示未完成和已完成的兩個佇列長度之和

4.從未決連線中取出乙個未決連線處理,建立連線(accept()),三次握手成功後,客戶端和伺服器端就建立起了tcp連線,這時呼叫accept()函式就可以獲取此連線

5.讀取資料(receive())

6.處理資料

7.傳送資料(send(2))

8.關閉本次連線(close())

9.關閉監聽

1.建立乙個套接字(socket())

2.與伺服器建立連線(connect()),connect函式執行後就開始三次握手

3.傳送資料(send())

4.讀取資料(receive())

5.處理資料

6.關閉本次連線(close())

不可以兩次,因為第一次是使伺服器端確認客戶端擁有傳送資料的能力,第二次是讓客戶端知道伺服器端擁有接收資料和傳送資料的能力,第三次是讓伺服器端知道客戶端擁有接受資料的能力,缺一不可;三次握手已經得到了雙方的所有通訊所需資訊,所以不需要第四次握手

利用tcp協議的攻擊原理是a向b傳送乙個syn包,b返回ack和syn包,但a不再傳送ack確認包,那麼b將就這樣一直等待a返回的確認包,占用了連線資源這樣的狀況稱為半開連線,直到連線超時才會發生關閉連,如果a向b傳送大量的syn包,b的網路連線資源將被耗盡,就構成了攻擊,還有更壞的一種方式是在傳送的syn包中把源位址設為乙個不存在的位址,伺服器向乙個不存在的位址傳送請求包自然得不到回應。

time_wait狀態是第三次揮手中,b收到了a想要斷開連線的報文後,確認收到斷開報文,此時b進行第四次揮手,傳送乙個確認報文給a,若此時b立馬斷開連線,a可能收不到b傳送給自己的確認斷開報文,所以為了確保a能夠收到b的確認報文,在傳送確認報文之後進入time_wait狀態等待計時器設計的時間2msl後再關閉b。

1.udp是無連線的,傳送資料之前不需要建立連線,傳送資料完畢後也不用斷開連線,減少了開銷和傳送資料前的延遲

2.udp是盡最大努力交付,不保證可靠交付,因此主機不需要維持複雜的連線狀態表

3.udp是面向報文的,傳送方的udp對應用程式交下來的報文,再新增首部和尾部後就向下交付給ip層,udp對應用層交下來的報文,既不合併也不拆分,而是保留這些報文的邊界,這就是說,應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文

4.udp沒有擁塞控制,網路出現的擁塞不會使源主機傳送速率降低,但是不適用擁塞控制的udp可能引起網路產生嚴重的擁塞問題

5.udp支援一對一,一對多,多對多,多對一的互動通訊

6.udp的首部開銷小,只有8個位元組,比tcp的首部20個位元組要短

總結:udp是不面向連線,不可靠的

tcp:

1.tcp是面向連線的運輸層協議,在通訊前必須先建立連線,在傳送資料完畢後必須釋放連線

2.每一條tcp連線是能有兩個端點,一對一

3.tcp提供可靠交付的服務,通過tcp連線傳送的資料,無差錯,不丟失,不重複,並且按序送達

4.tcp提供全雙工通訊,tcp允許通訊雙方的應用程序在任何時候都能傳送資料

5.面向位元組流,tcp中的"流"指的是流入到程序或從程序流出來的位元組序列,面向位元組流的含義就是:雖然應用程式和tcp的互動是一次乙個資料塊(大小不等),但是tcp把應用程式交下來的資料僅僅看成是一串無結構的位元組流來處理

總結:tcp是面向連線,可靠的

Tcp三次握手與四次揮手

tcp三次握手 四次揮手 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 syn 同步序列編號 synchronize sequence numbers 第二次...

TCP三次握手與四次揮手

也許三次握手你會經常聽到,但你知道三次握手的真正意義嗎,為什麼需要三次握手呢?首先我們必須明白tcp是面向連線的協議,無論哪乙個方向在傳送資料之前,都必須先在雙方之間建立連線。這一點與udp協議是不一樣的,udp在傳送資料報之前是不需要建立連線的。建立tcp連線的過程中,通訊的雙方需要互相發報文進行...

tcp三次握手與四次揮手

一.tcp三次握手 簡述 a傳送乙個請求給b,b發回確認,然後a再加以確認,來回共3次 1 第一次握手 客戶端傳送syn包 syn x 到伺服器,並進入syn send狀態,等待伺服器確認。2 第二次握手 伺服器收到syn包之後,必須確認客戶的syn ack x 1 同時自己也傳送乙個syn syn...