TCP, UDP, HTTP, HTTPS, SOCKET

TCP, UDP, HTTP, HTTPS, SOCKET

IP:網路層協議;

TCP和UDP:傳輸層協議;

HTTP:應用層協議;

SOCKET:TCP/IP網路的API。

   TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。
TCP和UDP使用IP協議從一個網路傳送資料包到另一個網路。把IP想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP,檔案傳輸協議FTP這樣的協議等。
TCP和UDP是FTP,HTTP和SMTP之類使用的傳輸層協議。雖然TCP和UDP都是用來傳輸其他協議的,它們卻有一個顯著的不同:TCP提供有保證的資料傳輸,而UDP不提供。這意味著TCP有一個特殊的機制來確保資料安全的不出錯的從一個端點傳到另一個端點,而UDP不提供任何這樣的保證。
HTTP(超文字傳輸協議)是利用TCP在兩臺電腦(通常是Web伺服器和客戶端)之間傳輸資訊的協議。客戶端使用Web瀏覽器發起HTTP請求給Web伺服器,Web伺服器傳送被請求的資訊給客戶端。
記住,需要IP協議來連線網路;TCP是一種允許我們安全傳輸資料的機制,,使用TCP協議來傳輸資料的HTTP是Web伺服器和客戶端使用的特殊協議。
Socket 介面是TCP/IP網路的API,Socket介面定義了許多函式或例程,用以開發TCP/IP網路上的應用程式。

TCP

TCP(Transmission Control Protocol,傳輸控制協議)是面向連線的協議,也就是說,在收發資料前,必須和對方建立可靠的連線。一個TCP連線必須要經過三次“對話”才能建立起來,其中的過程非常複雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發出連線請求資料包:“我想給你發資料,可以嗎?”,這是第一次對話;主機B向主機A傳送同意連線和要求同步(同步就是兩臺主機一個在傳送,一個在接收,協調工作)的資料包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個資料包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話。三次“對話”的目的是使資料包的傳送和接收同步,經過三次“對話”之後,主機A才向主機B正式傳送資料。

UDP

UDP(User Data Protocol,使用者資料包協議)
(1) UDP是一個非連線的協議,傳輸資料之前源端和終端不建立連線,當它想傳送時就簡單地去抓取來自應用程式的資料,並儘可能快地把它扔到網路上。在傳送端,UDP傳送資料的速度僅僅是受應用程式生成資料的速度、計算機的能力和傳輸頻寬的限制;在接收端,UDP把每個訊息段放在佇列中,應用程式每次從佇列中讀一個訊息段。
(2) 由於傳輸資料不建立連線,因此也就不需要維護連線狀態,包括收發狀態等,因此一臺服務機可同時向多個客戶機傳輸相同的訊息。
(3) UDP資訊包的標題很短,只有8個位元組,相對於TCP的20個位元組資訊包的額外開銷很小。
(4) 吞吐量不受擁擠控制演算法的調節,只受應用軟體生成資料的速率、傳輸頻寬、源端和終端主機效能的限制。
(5)UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連結狀態表(這裡面有許多引數)。
(6)UDP是面向報文的。傳送方的UDP對應用程式交下來的報文,在新增首部後就向下交付給IP層。既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程式需要選擇合適的報文大小。
我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通訊是否正常,其實“ping”命令的原理就是向對方主機傳送UDP資料包,然後對方主機確認收到資料包,如果資料包是否到達的訊息及時反饋回來,那麼網路就是通的。

HTTPS 與HTTP

HTTPS是一個安全通訊通道,它基於HTTP開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層(SSL)進行資訊交換,簡單來說它是HTTP的安全版。它是由Netscape開發並內建於其瀏覽器中,用於對資料進行壓縮和解壓操作,並返回網路上傳送回的結果。HTTPS實際上應用了Netscape的安全套接字層(SSL)作為HTTP應用層的子層。

區別:
第一:HTTPS協議需要到CA申請證書,一般免費證書很少,需要交費。
第二:HTTP是超文字傳輸協議,資訊是明文傳輸,HTTPS則是具有安全性的SSL加密傳輸協議。

第三:HTTP和HTTPS使用的是完全不同的連線方式用的埠也不一樣,前者是80,後者是443。