Cách trình duyệt xử lý nhiều IP [đã đóng]


11

Ai đó có thể hướng dẫn tôi thông tin về hành vi chính xác của trình duyệt khi trình duyệt nhận được nhiều bản ghi A cho một tên máy chủ nhất định (giả sử ip1 và ip2) và một trong số chúng không thể truy cập được.

Tôi quan tâm đến chi tiết CHÍNH XÁC, như (nhưng không giới hạn):

  1. Trình duyệt sẽ nhận được 2 IP từ HĐH, hay nó sẽ chỉ nhận được một IP?
  2. IP nào trình duyệt sẽ thử đầu tiên (ngẫu nhiên hoặc luôn luôn là đầu tiên)? Bây giờ, giả sử trình duyệt bắt đầu với ip1 thất bại
  3. Trình duyệt sẽ thử ip1 trong bao lâu?
  4. Nếu người dùng nhấn "dừng" trong khi nó chờ ip1, rồi bấm refresh
    • IP nào trình duyệt sẽ thử?
  5. Điều gì sẽ xảy ra khi hết thời gian - nó sẽ bắt đầu thử ip2 hay báo lỗi? (Và nếu có lỗi, ip nào trình duyệt sẽ thử khi người dùng nhấp vào làm mới).
  6. Khi người dùng nhấp vào làm mới, bất kỳ trình duyệt nào sẽ thử tra cứu DNS mới?

Bây giờ hãy giả sử trình duyệt đã thử làm việc ip2 trước.

  1. Đối với yêu cầu trang tiếp theo, trình duyệt vẫn sẽ sử dụng ip2, hoặc nó có thể chuyển đổi ngẫu nhiên ips không?
  2. Trong bao lâu các trình duyệt giữ IP trong bộ nhớ cache của họ?
  3. Khi các trình duyệt gửi một yêu cầu DNS mới và nhận SAME ips, nó sẽ TIẾP TỤC để sử dụng cùng một IP được biết là hoạt động, hoặc quá trình bắt đầu từ đầu và nó có thể thử bất kỳ một trong hai?

Tất nhiên tất cả có thể phụ thuộc vào trình duyệt và cũng có thể khác nhau giữa các phiên bản và nền tảng, tôi rất vui khi có tối đa chi tiết.

Mục đích của việc này - Tôi đang cố gắng hiểu chính xác những gì người dùng sẽ trải nghiệm khi sử dụng DNS vòng tròn được sử dụng và một trong các máy chủ bị lỗi.

Xin vui lòng, tôi KHÔNG hỏi về việc cân bằng tải DNS tồi tệ như thế nào và xin vui lòng không trả lời "đừng làm", "đó là một ý tưởng tồi", "bạn cần nhịp tim / proxy / BGP / bất cứ điều gì", v.v.


1
Có một phần mở rộng trình duyệt cho Firefox hiển thị (các) địa chỉ IP, cũng như địa chỉ IP nào hiện đang được sử dụng ( addons.mozilla.org/en-US/firefox/addon/showip/?src=search ). Bạn cũng có thể sử dụng tab 'Net' của Fireorms để hiển thị các yêu cầu IP được phục vụ bởi. Rõ ràng điều này chỉ liên quan đến Firefox nhưng tôi tin rằng bảng điều khiển dành cho nhà phát triển Chrome cho thấy các yêu cầu IP được phục vụ bởi.
Smudge

Cũng lưu ý rằng một số máy chủ DNS của ISP sẽ chỉ trả về một địa chỉ IP, tại sao họ làm điều này tôi không biết
Smudge

Cảm ơn Sam. Và có, bảng điều khiển chrome hiển thị tra cứu DNS, bộ đệm và hiển thị IP nào được yêu cầu.
Sandman4

Nếu bạn muốn nói về hành vi chính xác thì điều đầu tiên cần lưu ý về cách trình duyệt web xử lý một bản ghi là chúng không . Tên giải quyết được xử lý bởi ngăn xếp mạng. Vì vậy, bạn đang cố gắng hỏi về một số kỳ lạ cụ thể của trình duyệt mà bạn đã nhận thấy hoặc bạn đang hỏi về độ phân giải tên?
Rob Moir

Các trình duyệt DO nhận (từ ngăn xếp mạng) nhiều IP được liệt kê trong bản ghi A cho tên máy chủ. Trong Google Chrome, hãy thử chrome: // net-internals / # dns và tự mình xem.
Sandman4

Câu trả lời:


5

Rốt cuộc, tôi đã phải tự mình "nghiên cứu". Đây là hành vi Chromium (phiên bản 12.0.742.112) (chạy trên Ubuntu 11.04):

Nói chung, nó hoạt động như vậy: thử ip 1-st, một khi nó hết thời gian (sau 189 giây.) Hãy thử ip 2-nd. Không có thông báo lỗi cho đến khi tất cả các ips đã thử. Kết nối tiếp theo sẽ bắt đầu lại từ ip đầu tiên (ngay cả khi nó vừa bị lỗi một giây trước và ip thứ hai hoạt động - trình duyệt không quan tâm)

Một điều thú vị - Nỗ lực kết nối TCP không bị giảm khi người dùng nhấn hủy - tức là khi tôi nhấn hủy và sau 60 giây nhấp vào thử lại, trang sẽ hiển thị sau 130 giây (189 từ lần thử đầu tiên.) Nhưng nếu tôi nhấp vào hủy và nhấp làm mới sau 190 giây, quá trình sẽ bắt đầu lại từ đầu.

Về các mục trong câu hỏi ban đầu:

  1. Trình duyệt nhận cả IP từ HĐH, HĐH không thay đổi thứ tự IP.
  2. Trình duyệt luôn cố gắng kết nối với ip xuất hiện đầu tiên
  3. Nó cố gắng trong 189 giây
  4. Trong lần thử thứ 2, nó sẽ thử lại IP đầu tiên.
  5. Khi hết IP đầu tiên, trình duyệt âm thầm tiếp tục đến ip thứ hai. Nếu nó hoạt động - trang hiển thị, nếu không - chờ đợi tiếp tục.
  6. Không được kiểm tra. Blog này tuyên bố Chrome lưu trữ DNS chỉ trong tối đa 1 phút, khi chúng tôi xem chrome: // net-internals / # dns:

    Dung lượng: 100 Thời gian để sống (ms) cho các mục thành công: 60000 Thời gian để sống (ms) cho các mục thất bại: 0

Nếu IP đầu tiên hoạt động, quá trình sẽ giống nhau và nó sẽ luôn thành công ở lần thử đầu tiên.


4

Thay vì nói với mọi người những gì bạn không muốn, tại sao không giải thích những gì bạn đang cố gắng đạt được?

Nếu tất cả những gì bạn theo sau là dữ liệu đã biết, thì hãy tự mình điều tra hoặc đọc tài liệu của bất kỳ trình duyệt nào (có hàng trăm) bạn đang nói đến.

Nó có thể giúp bạn biết rằng điều này không liên quan gì đến DNS.

Nếu một trình duyệt nhận được yêu cầu, trước tiên, nó sẽ tìm trong các bộ đệm khác nhau để xem URL, hoặc nếu không phải là URL thì tên máy chủ, đã có mặt chưa.
Nếu không, nó sẽ nhấn trình phân giải hệ thống để phân giải tên máy chủ.

Nếu IP mà nó nhận được không phản hồi, chắc chắn nó sẽ lưu bộ đệm này vào bên trong như một kết quả tra cứu tiêu cực , do đó, trực tiếp yêu cầu lại cùng một URL với hy vọng đạt được một bản ghi A khác vì nó sẽ không phục vụ mục đích nào, vì nó sẽ không có mục đích, vì nó sẽ đã lưu trữ kết quả tên máy chủ cùng với kết quả IP âm.

Hoặc, bạn biết, bạn có thể cung cấp thêm thông tin.

EDIT: Tôi thấy bạn đã cung cấp một số thông tin ở giữa tất cả các yêu cầu khắt khe và thông minh.

Rất tốt:

  1. Nếu trình duyệt yêu cầu trình phân giải hệ thống cho tên máy chủ, nó sẽ lấy lại bất kỳ thông tin nào có cho tên máy chủ đó. Nếu điều đó có nghĩa là 2 IP, thì nó sẽ trả về 2 IP.
  2. Điều đó phụ thuộc vào trình duyệt.
  3. Điều đó phụ thuộc vào trình duyệt, nhưng tất cả các trình duyệt tôi đã từng sử dụng thực hiện một yêu cầu duy nhất và sẽ hết thời gian chờ sau khi hết thời gian chuẩn TCP CONNECT (); Tôi khá chắc chắn có RFC về điều đó ở đâu đó ...
  4. Điều đó phụ thuộc vào trình duyệt. Nó không có gì để làm với DNS hoặc mạng.
  5. Không.
  6. Không.

Bạn dường như cũng không biết rằng các bản ghi DNS được lưu trữ ở mọi nơi, đặc biệt là trên các máy khách. Các bản ghi này hết hạn, tùy thuộc vào chủ sở hữu tên miền dự định hoặc bộ đệm giữa bạn và anh ta được cấu hình. Một giờ đến một ngày là phổ biến, vì vậy đừng mong đợi trình giải quyết thực hiện một truy vấn DNS khác nếu bạn nhấn refresh như một kẻ điên.


2
Đã thêm giải thích về những gì tôi đang cố gắng để đạt được. Tôi sau khi biết dữ liệu, tôi hy vọng ai đó biết vì có thể mất nhiều ngày để tìm thông tin liên quan. Đòi hỏi? Tôi đang hỏi thông tin tôi cần, tôi không thể yêu cầu - mọi người có thể tự do trả lời hay không. Thông minh? Tôi bị tổn thương bởi bài viết của bạn và tôi không nghĩ rằng tôi xứng đáng với nó.
Sandman4

1
Tôi chỉ không muốn cuộc thảo luận biến thành ngọn lửa chống lại cân bằng tải DNS. Dù sao, cảm ơn vì đã chỉ cho tôi đến TCP CONNECT ().
Sandman4
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.