理解運輸層的埠

2021-09-11 03:28:21 字數 474 閱讀 8428

運輸層的資料最終是要傳遞給應用層的程序的,那麼如何準確的傳給目的程序就成為了乙個問題。因為源主機和目的主機很可能是不同的系統,因而無法使用程序標誌符(二者的識別符號系統可能不同)來確定程序。因此,埠產生了。

通訊的終點是乙個程序,但是只要把資料傳遞給指定的埠就行了,tcp\udp\sctp等協議負責將該埠的資料傳遞到目的程序。

由「作用」理解,埠是位於運輸層協議的下方。但是埠並不複雜,它僅僅是乙個16位的數字。源主機首先要知道目的主機的ip和埠號(合稱為套接字),建立連線後,在傳送的資料報或分組中註明源埠和目的埠。其中目的埠就是目的主機上的埠。資料傳送到目的埠後,運輸層協議負責將這些資料傳遞到指定的程序。

每個應用程式建立時都會得到乙個埠號(熟知埠或臨時埠,不展開敘述),每個埠只能同時被乙個程序使用。

ps:這裡關於埠與程序的關係表述並不完整,詳情可參見unp 43頁的tcp埠與併發伺服器。最終的效果是:每個程序都有唯一的套接字關聯。

運輸層的埠

執行在計算機中的程序是用程序識別符號來標識的。但執行在應用層的各種應用程序卻不應當讓計算機作業系統指派它的程序識別符號。這是因為在網際網路上使用的計算機的作業系統種類很多,而不同的作業系統又使用不同格式的程序識別符號。為了使執行不同作業系統的計算機的應用程序能夠互相通訊,就必須用統一的方法對tcp ...

Linux 運輸層的埠

既然提到埠,我們就來分析一下為什麼要使用埠的緣由吧。我們首先要知道的是,運輸層有復用和分用的功能。應用層所有的應用程序都可以通過運輸層再傳送到ip層,這就是復用。運輸層從ip層收到資料後必須交付到指明的應用程序,這就是分用。我們知道,單個程序是用程序識別符號來標誌的,但在計算機作業系統指派的程序識別...

理解運算子的操作

在數學中,運算是一種數 算,它包含零或多個輸入值 稱為運算元 以產生輸出值。常用操作 如加法 使用表示操作的特殊符號 如 這些符號稱為運算子。程式設計人員的工作方式相同,但名稱可能並不總是符號。運營商的工作類似於函式,輸入引數並返回乙個值,但它們更簡明。例如,4 2 3是讀比新增更容易 4,多 2,...