還是埠回流問題 TCP協議解析

2022-08-26 00:54:07 字數 1315 閱讀 4296

在一內部區域網中,

client  內網位址為 10.0.0.2    

web  伺服器內網位址為 10.0.0.1    外網位址為  211.6.15.1    網域名稱為  xx.love.com

問題:在內網10.0.0.2的機器上訪問   外網位址 211.6.15.1 或者網域名稱  xx.love.com  都無法訪問,

它不允許資料流從內部流到外部再流回內部,所以連線會超時

這裡從tcp協議的角度來分析下:

包  動作

包 目的位址                

包  源位址                

10.0.0.2發出包(第一次握手)

211.6.15.1

10.0.0.2

到達路由器外網埠  nat 轉換後

10.0.0.1

10.0.0.2

10.0.0.1接包後  回覆包(第二次握手)

10.0.0.2

10.0.0.1

包到達交換機 直接被**(不過路由器)

10.0.0.2 接到包

10.0.0.2

10.0.0.1

10.0.0.2此刻在等待211.6的第二次握手

10.0.0.2卻接到10.0.0.1的第二次握手  丟棄

10.0.0.1 卻還在等待 10.0.0.2的第三次握手

沒有結果的等待……

!在這一步中  包也可能經過交換機到達路由器的內網介面,由於是發往內部主機的,路由器還是不會啟用pat轉換,而是通過直連路由直接**給你的客戶機10.0.0.2,這樣你的客戶機10.0.0.2仍然收不到源位址為211.6.15.1的回應包,還是不能成功建立連線。   

!在這裡還有一種情況   ,如果路由器將你發往211.6.15.1的資料報算做是發往外網,對其做了pat轉換,或路由器是強制位址轉換的,那麼該資料報的源位址將變為211.6.15.1到達路由器外部介面,而路由器如果有相關防錯功能,也許該資料報就直接被乾掉了。

如果可以繼續**那麼該資料報將以源位址為200.200.200.1目標位址192.168.0.1到達web伺服器。而伺服器回應的資料報就會以目標位址200.200.200.1 源位址200.200.200.1到達路由器外部介面。而路由器外部介面此時就暈了。

解決方法:

有些路由器內部設定可以  糾正此問題。

如果不通過路由器解決,可以在內網建一台dns伺服器。

自建dns太費時間,也可以修改機器的host檔案

對問題 Http是TCP協議還是UDP協議的回答

1 tcp ip是個協議組,可分為三個層次 網路層 傳輸層和應用層。在網路層有ip協議 icmp協議 arp協議 rarp協議和bootp協議。在傳輸層中有tcp協議與udp協議。在應用層有ftp http telnet smtp dns等協議。因此,http本身就是乙個協議,是從web伺服器傳輸超...

tcp協議的埠狀態

listening syn sent syn rcvd established close wait time wait 對方主動關閉 對方呼叫close 我方的狀態變為 close wait 我方主動關閉 我方呼叫close 我方的狀態變為 time wait 統計各種埠狀態的數目 netstat...

TCP埠占用問題

服務端開發的同學,可能經常發現,bind的時候會提示 bind failed address already in use 本文我們就對這個問題分析一下。當連線的一方主動關閉連線,在接收到對端的 fin 報文之後,主動關閉連線的一方會在 time wait 這個狀態裡停留一段時間,這個時間大約為 2...