1. 程式人生 > >網路通訊中埠的分類及作用

網路通訊中埠的分類及作用

熟悉並瞭解TCP和UDP協議的報文段格式的同學,對於這個詞一定不陌生。在這些報文段格式中我們總能看到源埠和目的埠這些欄位,那關於埠今天這篇文章我們便來了解一下。

我們知道兩個程序要想在計算機內部盡享通訊,可以有管道、共享記憶體、訊號量、訊息佇列等方法。兩個程序如果需要進行通訊最基本的前提是能夠唯一的表示一個程序,在本地程序通訊中我們可以使用【PID(程序識別符號)】來唯一標識一個程序。

但PID只在本地唯一,如果把兩個程序放在不同的兩臺計算機上,然後他們進行通訊的話PID就不可以了,所以就需要另外一種手段。

解決這個問題的方法就是在運輸層使用【協議埠號】,簡稱【】。
IP層的ip地址可以唯一標識一臺主機,而TCP協議和埠號可以唯一標識主機的一個程序,這樣我們就可以利用(ip地址+協議+埠號)唯一標識網路中的一個程序。我們把這種模式稱為【套接字(socket)】。

這就是說,雖然通訊的重點是程序,但我們只要把傳送的保溫交給目的主機的摸一個合適的埠,剩下的工作就有TCP來完成了。

TCP 用一個 16 位埠號來標識一個埠,可允許有 65536 ( 2的16次方) 個不同的埠號,範圍在 0 ~ 65535 之間。

埠號根據伺服器使用還是客戶端使用,以及常見不常見的維度來區分,主要有以下類別:

  1. 伺服器端使用的埠號
    • 熟知埠號
    • 登記埠號
  2. 客戶端使用的埠號

埠號的分類

伺服器端使用的埠號

熟知埠號:
取值範圍:0 ~ 1023。

伺服器機器一接通電源,伺服器程式就執行起來,為了讓因特網上所有的客戶程式都能找到伺服器程式,伺服器程式所使用的埠就必須是固定的,並且是眾所周知的。

一些常見的埠號:

應用程式 熟知埠號
FTP 21
TELNET 23
SMTP 25
DNS 53
TFTP 69
HTTP 80
HTTPS 443
SNMP 161

登記埠號:
取值範圍:1024 ~ 49151。
這類埠沒有熟知的應用程式使用,但是需要登記,以防重複

客戶端使用的埠號

取值範圍:49152 ~ 65535。
這類埠僅在客戶端程序執行時才動態選擇。

又叫短暫埠號,表示這種埠的存在時間是短暫的,客戶程序並不在意作業系統給它分配的是哪一個埠號,因為客戶程序之所以必須有一個埠號,是為了讓傳輸層的實體能夠找到自己。

相關推薦

網路通訊中埠分類作用

熟悉並瞭解TCP和UDP協議的報文段格式的同學,對於埠這個詞一定不陌生。在這些報文段格式中我們總能看到源埠和目的埠這些欄位,那關於埠今天這篇文章我們便來了解一下。 我們知道兩個程序要想在計算機內部盡享通訊,可以有管道、共享記憶體、訊號量、訊息佇列等方法。兩個程

網路協議中埠型別分類

埠:在網路技術中,埠有兩層意思:一個是物理埠,即物理存在的埠,如:集線器、路由器、交換機、ADSL Modem等用 於連線其他裝置的埠;另一個就是邏輯埠,用於區分服務的埠,一般用於TCP/IP中的埠,

java基礎----記憶體的分類作用

java將記憶體大致分為5塊:棧記憶體、堆記憶體、方法區、本地方法棧、PC計數器(暫存器)。 棧記憶體:計算。所有的方法以及程式碼塊的執行都是在棧記憶體中。每一個執行緒獨享一個棧。 堆記憶體:儲存物件。 方法區:儲存類資訊,常量(字面量、自定義常量)。 本

Java學習(一)訪問修飾符的分類作用

訪問修飾符的分類及作用 private:只允許在本類中進行訪問 預設:允許在當前類、同包子類/非子類呼叫;跨包子類/非子類不允許呼叫 protected:允許在當前類、同包子類/非子類、跨包子類呼

程式碼塊的分類作用

程式碼塊:用{}括起來的程式碼。 分類: 區域性程式碼塊:用於限定變數的生命週期,及早釋放,提高記憶體利用率。 構造程式碼塊:把多個構造方法中相同的程式碼可以放到這裡,每個構造方法執行前,首先執行構

C/C++與java網路通訊問題彙總解決方法

前段時間做了一個簡單的C/S系統, 分別用C++和java開發服務端和客戶端, 並通過tcp通訊. 以前沒有這方面的經驗, 只是知道理論上可行, 實際上還有不少問題要注意. 本文會陸續擴充和修改. 專案1: 校園導航 2006.6平臺: X86, windowsXP+SP2,

【TCP/IP協議】計算機網路中埠分類

埠號   任何時候,多個程序都可能同時使用TCP,UDP和SCTP這三種傳輸層協議中的任何一種,這三種協議都是用16位整數的埠號來區分這些程序。   簡單來說:    IP地址是標識在網路內的

網路程式設計之網路通訊要素(ip,埠,協議)Socket

1.IP地址:InetAddress物件 網路中裝置的標識 不易記憶使用主機名字 本地迴環地址 :127.0.0.1,主機名:localhost www.baidu.com 全球資訊網.主機名.所屬組織(在cmd中 pinglocalhost package

回合制遊戲網路通訊協議心跳機制調研

回合制策略遊戲 回合制策略遊戲是策略遊戲的一種子型別,所有的玩家輪流自己的回合,只有自己的回合,才能夠進行操縱。早期的戰略由於硬體運算能力有限,在考量遊戲樂趣的情況下,多半採取這種型式。 主要分類 戰棋類遊戲 SLG:角色扮演因素較少,戰鬥以整體策

android 三種網路通訊介面各個介面的程式碼示例

第一部分 Android網路基礎    Android平臺瀏覽器採用了WeBKit引擎,這款名為Chorme Lite的Web瀏覽器擁有強大擴充套件特性,每個開發者都以為編寫自己的外掛,使得瀏覽器的功能更加完善。    目前Android平臺有3種網路介面。   第

java基礎----網路協議網路通訊

網路協議: TCP:傳輸控制協議(傳輸層),三次握手建立連線,保證連線準確性;四次揮手斷開連線,報頭最小長度20位元組 客戶端:同步訊號SYN=1,隨機序列號SEQ=X 服務端:同步訊號SYN=1

網路程式設計之即時通訊程式(聊天室)------(一)通訊流程簡介通訊協議定製

      在開始講之前,我想先跟大家描述一下,這個所謂的通訊程式具體是一個什麼樣的東西。該通訊程式類似一個弱版本的qq,登入時需要進行註冊,登入成功後,可以實現即時的通訊,群聊,私聊,同時還可傳檔案。先上個圖 服務端:                           

c++網路通訊多人聊天室Server端執行程式碼,小白的學習情況和經驗總結

c++網路通訊多人聊天室Server端 一、描述 1> 採用c++語言 2>編譯環境是vs2015 3>使用的是阻塞式套接字 二、功能描述 1>一個伺服器對多個客戶端 2>通過廣播的方式使得客戶端與伺服器端都能夠接收到彼此的訊息 3>伺

Android 資料加密安全網路通訊雜談(一)

Android 資料加密及安全網路通訊雜談 前言:本人多年從事軟體開發,發現大多數程式設計師(其中包括不少是資深的)、CTO、PM們對資訊保安的瞭解幾乎為零!很多時候,專案負責人在不得不面對資訊保安需求時,隨意指派某個程式設計師(通常還是入行時間最短、技術經驗最少的那位)負

Docker 網路模式詳解容器間網路通訊

  當專案大規模使用 Docker 時,容器通訊的問題也就產生了。要解決容器通訊問題,必須先了解很多關於網路的知識。Docker 作為目前最火的輕量級容器技術,有很多令人稱道的功能,如 Docker 的映象管理。然而,Docker 同樣有著很多不完善的地方,網路方面就是 Docker 比較薄弱的部分。因此,我

thinkphp3.2.3版本文件目錄作用

control avi runt 運行時 tab 技術 dex 文件目錄 代碼 下載thinkphp3.2.3版本,解壓縮後將文件夾名字改為thinkphp,然後放在www目錄下,裏面的文件夾和文件的名字和作用如下:(前面有Tab健的表示下一級,thinkphp是根目錄)

java的關鍵字this的意義作用

student 傳遞 沒有 實的 rdquo 提高 錯誤信息 特殊 turn 一、this關鍵字主要有三個應用: (1)this調用本類中的屬性,也就是類中的成員變量; (2)this調用本類中的其他方法; (3)this調用本類中的其他構造方法,調用時要放在構

JAVA關鍵字作用

加載 結合 便在 數據類型 同名 div bsp sync 修飾符 Java關鍵字及其作用 一、 總覽: 訪問控制 private protected public 類,方法和變量修飾符 abstract class extends

SQL語句分類基本結構

log 基本語句 miss com savepoint alter reat dcl epo 1.DML語句(數據操作語言) Insert、Update、Delete、Merge 2. DDL語句(數據定義語言) Create、Alter、Drop、Truncate 3

Java中IO流的分類應用

serializa 對象序列化 col io流 pip ava 應用 指定 pipe =======I/O========================================================================== File:代表了磁