-
1 # 獸師兄
-
2 # 我皮我怕誰
這就像是內網IP請求公網IP的過程,可以參考路由器的NAT技術。
IPv4的地址資源並不多,而且現在也已經用的差不多了,所以一般家庭寬頻都不是公網IP,而伺服器使用的是公網IP。
舉個例子:
區域網下的客戶端IP:192.168.1.100
客戶端所在的公網IP:5.5.5.5
伺服器IP:6.6.6.6
區域網下的客戶端在向公網服務端發出請求的時候,會經過路由器,此時路由器接受到的請求內容是(From:192.168.1.100:80,To:6.6.6.6:80),路由器會修改當前請求的內容,生成一個唯一的埠號1000(不一定是1000,但生成的埠不會與其他請求生成的埠號重複),並儲存到session裡,處理過的請求內容為(From:5.5.5.5:1000,To:6.6.6.6:80),
這時伺服器接受到的請求就是(From:5.5.5.5:1000,To:6.6.6.6:80)了。
伺服器處理完之後,伺服器返回資料的時候會返回到5.5.5.5:1000埠號上,路由器的1000埠接受到返回資料之後,可以從session裡得知1000埠上的請求來自192.168.1.100:80,然後路由器再把伺服器返回的資料轉發回發出這個請求的客戶端。
-
3 # ToughLearner
socket套接字(ip+port)。不同的上層應用在傳輸時使用不同的埠,埠在傳輸前會協商一個ID後面的ID會隨著傳輸的往來依次加1。這樣方便接收方確認和傳送方超時重傳。ID會隨著底層傳輸協議封裝後透過網路層出去。詳見傳輸層三次握手的協同過程
-
4 # 梁天曬網
首先這個問題就是不完整的,tcp/ip是作用在三層的所以他負責的通訊是ip到ip的傳輸,這時候傳輸的是資料包,在經過你電腦網絡卡時候會進行封裝,這時候叫資料幀,在透過網線光纖轉化成光電訊號,進行資料傳輸。在解封裝的時候過程是相反的,首先在經過路由器的時候進行解封裝把幀頭解封,看看ip是否能到如果能再把目的地址幀頭封裝進行傳輸,直到飯目的區域網,直接全部解封裝,傳輸完成。當然在不知道對方的情況下會透過廣播來找對方 就是挨家挨戶都發一份,不是的就把資料包丟掉是的就反饋給交換機路由等裝置,方便下次通訊。
-
5 # 風科技
題主的意思應該是TCP是怎麼區分不同的電腦!或者說為什麼電腦A發出的資料會返回給A而不是B?
TCP是傳輸層協議位於OSI第四層!他的上層就是應用層 可以簡單理解為應用程式! 比如瀏覽器 QQ等 他的下層就是第三層是IP協議
TCP和應用層的資料一起作為資料封裝在IP裡!!
可以看到TCP的報文格式中有一個16bit的的源埠和16bit的目的埠(這個埠是一個協議埠或者是虛擬的不是指路由器或交換機上插網線的物理埠)
IP頭中有源IP地址和源MAC地址(MAC地址是網絡卡的物理地址,不可更改,全球唯一)
路由器就是靠IP報文頭中的源IP地址和源MAC定位A電腦,而靠TCP報文頭中的源埠識別是哪個程式的!
希望可以幫到你
回覆列表
問題不清,什麼是不同id,如果是web賬號之類的高層資料是靠應用層區分的。說得直接點就是編server的人靠if等程式設計語句區分,如果id是指不同應用程式,那是系統透過埠區分。