TCP和UDP埠 簡介

介紹

連接到Internet的設備和計算器使用稱為TCP / IP的協議來相互通信。當紐約的計算機想要將一條數據發送到英國的計算機時,它必須知道它想要發送信息的目的地IP地址。該信息最常通過UDP和TCP兩種方法發送。

兩個互聯網主流:UDP和TCP

UDP?TCP?我知道你很困惑,但我保證我會用非常基本的術語來解釋這個,這樣你才能理解這個概念。

TCP代表傳輸控制協議。使用此方法,發送數據的計算機直接連接到它將數據發送到的計算機,並在傳輸期間保持連接。使用這種方法,兩臺計算機可以保證數據安全,正確地到達,然後斷開連接。這種傳輸數據的方法往往更快,更可靠,但由於必須監視連接和跨越它的數據,因此會給計算機帶來更高的負擔。與這種方法的真實比較是拿起電話並給朋友打電話。你有一個對話,當它結束時,你們都掛斷了,釋放了連接。

UDP代表用戶數據報協議。使用這種方法,發送數據的計算機將信息打包成一個漂亮的小包,並將其發佈到網絡中,希望它能到達正確的位置。這意味著UDP不像TCP那樣直接連接到接收計算機,而是將數據發送出去並依賴於發送計算機和接收計算機之間的設備來獲取應該正常運行的數據。這種傳輸方法並不能保證您發送的數據能夠到達目的地。另一方面,這種傳輸方法具有非常低的開銷,因此非常普遍用於對第一次嘗試不重要的服務。您可以用於此方法的比較是普通的舊郵政服務。您將郵件放在郵箱中,並希望郵政服務將其送到正確的位置。他們大多數時間都這樣做,但有時它會在途中迷路。

現在您已瞭解TCP和UDP是什麼,我們可以開始詳細討論TCP和UDP端口。讓我們繼續下一節,我們可以更好地描述端口的概念。

TCP和UDP端口

如您所知,Internet上的每臺計算機或設備都必須分配一個稱為IP地址的唯一編號。此IP地址用於識別連接到Internet的數百萬臺其他計算機中的特定計算機。當信息通過Internet發送到您的計算機時,您的計算機如何接受該信息?它通過使用TCP或UDP端口接受該信息。

理解端口的一種簡單方法是想象您的IP地址是有線電視盒,端口是該有線電視盒上的不同頻道。有線電視公司知道如何根據與該盒子相關聯的唯一序列號(IP地址)將電纜發送到您的有線電視盒,然後您將在不同的頻道(端口)上收到各個節目。

端口的工作方式相同。您有一個IP地址,然後是該IP地址上的許多端口。當我說很多時,我的意思是很多。您可以擁有總共65,535個TCP端口和另外65,535個UDP端口。當您的計算機上的程序通過Internet發送或接收數據時,它會將該數據發送到遠程計算機上的IP地址和特定端口,並在其自己的計算機上的通常隨機端口上接收數據。如果它使用TCP協議發送和接收數據,那麼它將連接並將自身綁定到TCP端口。如果它使用UDP協議發送和接收數據,它將使用UDP端口。下面的圖1是分解為其許多TCP和UDP端口的IP地址的表示。請注意,一旦應用程序將自身綁定到特定端口,該端口就不能被任何其他應用程序使用。它是先到先得。

012345................6553165532655336553465535

圖1.帶端口的IP地址

這一切可能仍然讓你感到困惑,並且沒有任何問題,因為這是一個複雜的概念。因此,我將舉例說明它如何在現實生活中發揮作用,以便您更好地理解。我們將在我們的示例中使用Web服務器,因為您都知道Web服務器是運行應用程序的計算機,允許其他計算機連接到它並檢索存儲在那裡的Web頁面。

為了使Web服務器接受來自遠程計算機(例如您自己)的連接,它必須將Web服務器應用程序綁定到本地端口。然後,它將使用此端口偵聽並接受來自遠程計算機的連接。Web服務器通常綁定到TCP端口80,這是http協議默認使用的,然後將等待並偵聽來自遠程設備的連接。連接設備後,它會將請求的網頁發送到遠程設備,完成後斷開連接。

另一方面,如果您是連接到Web服務器的遠程用戶,它將以相反的方式工作。您的Web瀏覽器將從特定範圍的端口號中選擇一個隨機TCP端口,並嘗試連接到Web服務器IP地址上的端口80。建立連接後,Web瀏覽器將發送對特定網頁的請求,並從Web服務器接收該請求。然後兩臺計算機將斷開連接。

現在,如果您想在同一個Web服務器上運行FTP服務器(即允許您從遠程計算機傳輸和接收文件的服務器),該怎麼辦?FTP服務器使用TCP端口20和21發送和接收信息,因此您不會與在TCP端口80上運行的Web服務器發生任何衝突。因此,FTP服務器應用程序啟動時將自身綁定到TCP端口20和21 ,並等待連接以發送和接收數據。

大多數主要應用程序都有一個他們監聽的特定端口,並且他們將這些信息註冊到名為IANA的組織。您可以在IANA註冊表中查看應用程序列表和他們使用的端口。隨著開發人員註冊其應用程序與IANA一起使用的端口,兩個程序嘗試使用同一端口並因此導致衝突的可能性將會降低。


分享到:


相關文章: