TCP協議中的埠指什麼,為什麼要有埠

2021-08-09 07:38:30 字數 735 閱讀 3726

ip能鎖定一台物理機器,對應著一張網絡卡,外界發來的資料報網絡卡都會接收。但是問題來了,網絡卡給程式提供了介面,你監聽一下我,要是有訊息來了,我就**給你。這樣應用程式就能收到資料了。但是問題來了,程式a和程式b都需要監聽網絡卡接髮資料,網絡卡說那我把接到的資料都發給你兩,你們自己看著辦吧。好,小a小b都接受了。但是又來了cdef……,不行了,每個包都被發到了所有應用程式,每個應用程式都累得不行,最終垮了。

好,那網絡卡說我給你們加個表示吧,我們之間可以用乙個號碼來作為標識,我和小a之間就用1來標識,如果外界發給1號標識的資料我就**給你,你監聽我的時候得告訴我你監聽的時1,我就**1的資料報給你。好了其他的bcd…都自己弄乙個標識號,只要不重複就行。這樣大家都省事了。

最後設計到安全,乙個標識號只能被乙個應用程式監聽,因為如果小a程式和小b同時監聽乙個標識號號,那就壞了,我傳的資料都被ab接到,這樣資料安全性就沒辦法保證了。

這個標識號就是埠,最初設計網路資料交換的設計者不知道是怎麼想的。這是我的理解。

其實網絡卡都是被系統層封裝了,埠和程序之間的關係也是系統封裝好的。我們只需要用socket就行,給定乙個埠號就行了。其他的事都交給作業系統去做。

有個很有意思的事情就是流量跳轉的問題,我把本地往外出到某個埠的流量給遮蔽掉,這樣就造成了相關的應用無法訪問網頁。(ps:為什麼我不遮蔽掉本機的某些埠呢,因為遮蔽本機埠沒有用,本機的埠都是隨機分配的,我們說的固定埠都是指伺服器的埠)

這就是我的理解,希望大家指正拍磚。

TCP協議中的埠具體指的是什麼,為什麼要有埠

ip能鎖定一台物理機器,對應著一張網絡卡,外界發來的資料報網絡卡都會接收。但是問題來了,網絡卡給程式提供了介面,你監聽一下我,要是有訊息來了,我就 給你。這樣應用程式就能收到資料了。但是問題來了,程式a和程式b都需要監聽網絡卡接髮資料,網絡卡說那我把接到的資料都發給你兩,你們自己看著辦吧。好,小a小...

為什麼說TCP協議是可靠的

由於ip 資料報的 mtu 有長度限制,tcp報文段過大時,需要切割。切割之後傳送出去,由於網路鏈路的不確定性,接收端接收到包的次序和傳送次序很大概率是不一致的。接收端如何把接收到的 同一批 tcp報文段資料拼接成預期的二進位制資料?傳送方傳送了乙個tcp報文,怎麼樣確認接收方接收到了這個報文?傳送...

為什麼說TCP協議是可靠的?

我們都知道 ip 協議是 不太靠譜 因為 ip 協議是不可靠的,所以 ip 資料報可能在傳輸過程中發生錯誤或者丟失。這就意味著,tcp 協議不得不面對以下三個問題。1 每個資料報有可能傳送不成功 2 資料報在傳輸過程中有可能被丟棄 3 接收端有可能接受不到資料報 tcp 為了解決這丟包問題,提出兩個...