當Iphone在dns回應中獲得多個IP位址時,如何選擇IP位址?

當Iphone在dns回應中獲得多個IP位址時,如何選擇IP位址?

我試圖了解 Iphone 如何從下面這個特定場景中 dns 回應中傳回的 2 個 IP 位址中決定使用哪個 IP 位址。

場景是這樣的:

1- Iphone 發送 Arecord 的 dns 查詢,如“bsf.mncxx.mccxx.pub.3gppnetwork.org”,並在回應中取得 2 個 IP 位址。

2- Iphone 向其中一個 IP 位址發送 GET 請求以驗證自身身分(在此步驟中選擇哪個 BSF IP 並不重要)

3- BSF 返回 401 Unauthorized 並帶有身份驗證質詢

4- Iphone 計算回應並在第二個 GET 請求中發送它。

問題從這裡開始。 iPhone這裡隨機選擇BSF。預期是將第二個 GET(有計算出的回應)傳送到步驟 2 中的同一個 BSF。所有其他手機(三星、華為、索尼等)在步驟 2 中將其發送到 BSF。但iPhone似乎只是隨機選擇。如果選擇其他BSF,則認證失敗。

作為解決方法,我們將 BSF 配置為在 http 401 回應中發送 Connection:keep-alive,但不幸的是它沒有幫助。 iPhone 仍然隨機選擇它。

在我們的設定中,BSF IP 位址位於封閉子網路中(BSF1 = 172.31.59.165,BSF2= 172.31.59.181)

非常奇怪的是,在另一個設定中(與我們的不完全相同的BSF,但http 請求和回應相似)相同的Iphone 總是在步驟2 和步驟4 中選擇相同的BSF(BSF1 = 10.216.138.78, BSF2 = 10.210.149.79)。如果在步驟 2 中選擇 BSF1,則在步驟 4 中繼續選擇 BSF1。 BSF2 也是一樣。

Iphone 在決策過程中是否有可能檢查子網路?任何其他猜測或建議將不勝感激。

謝謝白

相關內容