計算機埠是英文port的譯義,可以認為是計算機與外界通訊交流的出口。其中硬體領域的埠又稱介面,如:USB埠、串列埠等。軟體領域的埠一般指網路中面向連線服務和無連線服務的通訊協議埠,是一種抽象的軟體結構,包括一些資料結構和I/O(基本輸入輸出)緩衝區。 在網路技術中,埠(Port)有好幾種意思。集線器、交換機、路由器的埠指的是連線其他網路裝置的介面,如RJ-45埠、Serial埠等。我們 這裡所指的埠不是指物理意義上的埠,而是特指TCP/IP協議中的埠,是邏 輯意義上的埠。 那麼TCP/IP協議中的埠指的是什麼呢?如果把IP地址比作一間房子 ,埠就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的埠 可以有65536(即:256×256)個之多!埠是透過埠號來標記的,埠號只有整數,範圍是從0 到65535(256×256)。 在Internet上,各主機間透過TCP/TP協議傳送和接收資料報,各個資料報根據其目的主機的ip地址來進行網際網路絡中的路由選擇。可見,把資料報順利的傳送到目的主機是沒有問題的。問題出在哪裡呢?我們知道大多數作業系統都支援多程式(程序)同時執行,那麼目的主機應該把接收到的資料報傳送給眾多同時執行的程序中的哪一個呢?顯然這個問題有待解決,埠機制便由此被引入進來。 本地作業系統會給那些有需求的程序分配協議埠(protocal port,即我們常說的埠),每個協議埠由一個正整數標識,如:80,139,445,等等。當目的主機接收到資料報後,將根據報文首部的目的埠號,把資料傳送到相應埠,而與此埠相對應的那個程序將會領取資料並等待下一組資料的到來。說到這裡,埠的概念似乎仍然抽象,那麼繼續跟我來,別走開。 埠其實就是隊,作業系統為各個程序分配了不同的隊,資料報按照目的埠被推入相應的隊中,等待被程序取用,在極特殊的情況下,這個隊也是有可能溢位的,不過作業系統允許各程序指定和調整自己的隊的大小。 不光接受資料報的程序需要開啟它自己的埠,傳送資料報的程序也需要開啟埠,這樣,資料報中將會標識有源埠,以便接受方能順利的回傳資料報到這個埠。
計算機埠是英文port的譯義,可以認為是計算機與外界通訊交流的出口。其中硬體領域的埠又稱介面,如:USB埠、串列埠等。軟體領域的埠一般指網路中面向連線服務和無連線服務的通訊協議埠,是一種抽象的軟體結構,包括一些資料結構和I/O(基本輸入輸出)緩衝區。 在網路技術中,埠(Port)有好幾種意思。集線器、交換機、路由器的埠指的是連線其他網路裝置的介面,如RJ-45埠、Serial埠等。我們 這裡所指的埠不是指物理意義上的埠,而是特指TCP/IP協議中的埠,是邏 輯意義上的埠。 那麼TCP/IP協議中的埠指的是什麼呢?如果把IP地址比作一間房子 ,埠就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的埠 可以有65536(即:256×256)個之多!埠是透過埠號來標記的,埠號只有整數,範圍是從0 到65535(256×256)。 在Internet上,各主機間透過TCP/TP協議傳送和接收資料報,各個資料報根據其目的主機的ip地址來進行網際網路絡中的路由選擇。可見,把資料報順利的傳送到目的主機是沒有問題的。問題出在哪裡呢?我們知道大多數作業系統都支援多程式(程序)同時執行,那麼目的主機應該把接收到的資料報傳送給眾多同時執行的程序中的哪一個呢?顯然這個問題有待解決,埠機制便由此被引入進來。 本地作業系統會給那些有需求的程序分配協議埠(protocal port,即我們常說的埠),每個協議埠由一個正整數標識,如:80,139,445,等等。當目的主機接收到資料報後,將根據報文首部的目的埠號,把資料傳送到相應埠,而與此埠相對應的那個程序將會領取資料並等待下一組資料的到來。說到這裡,埠的概念似乎仍然抽象,那麼繼續跟我來,別走開。 埠其實就是隊,作業系統為各個程序分配了不同的隊,資料報按照目的埠被推入相應的隊中,等待被程序取用,在極特殊的情況下,這個隊也是有可能溢位的,不過作業系統允許各程序指定和調整自己的隊的大小。 不光接受資料報的程序需要開啟它自己的埠,傳送資料報的程序也需要開啟埠,這樣,資料報中將會標識有源埠,以便接受方能順利的回傳資料報到這個埠。