1. 程式人生 > >TCP/IP HTTP Socket 和UDP的區別聯絡

TCP/IP HTTP Socket 和UDP的區別聯絡

分層原理

網路由下往上分為: 對應

物理層–
資料鏈路層–
網路層– IP協議
傳輸層– TCP協議 UDP協議
會話層–
表示層和應用層– HTTP協議

Socket和TCP/IP

Socket是對TCP/IP協議的封裝,相當於TCP/IP的介面,使得程式設計師可以使用到TCP/IP協議,它的底層就是TCP/IP協議。

UDP和TCP

UDP和TCP UDP是無連線的不安全的協議,而TCP是有連結的安全的協議。 那什麼是建立連線的什麼是不建立連線的,舉個例子:TCP就像打電話,要等對面接聽我們才能相互通話。UDP就是發簡訊,我們發了簡訊,但是不知道對面有沒有接受到,什麼時候接受到的,這些都不知道!

TCP建立連線的三次握手

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入SYN_SENT狀態,等待伺服器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。

第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;

第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1),此包傳送完畢,客戶端和伺服器進入ESTABLISHED(TCP連線成功)狀態,完成三次握手。

HTTP協議

HPPT是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連線方式,HTTP1.1版本中給出一種持續連線的機制,絕大多數的Web開發,都是構建在HTTP協議之上的Web應用