Phiên Hỏi & Đáp hôm nay đến với chúng tôi theo lịch sự của SuperUser - một phân khu của Stack Exchange, một nhóm các trang web Hỏi & Đáp dành cho cộng đồng.
Câu hỏi
Trình đọc siêu người dùng N. Hinkle đặt ra câu hỏi sau về quy trình kiểm tra và xác thực internet Windows:
In Windows 7, the notification area networking icon will show an error indicator if there is no internet access
How does Windows know whether or not it has a successful internet connection?
Presumably it is checking some online Microsoft service to see whether it has a successful connection, gets redirected to some other page, or doesn’t get any response at all, but I haven’t seen anywhere that this process or the services used are documented. Can anybody explain how this works?
Các kiểm tra như vậy là một trong nhiều điều chúng ta coi là có lợi khi sử dụng một hệ điều hành hiện đại, nhưng thậm chí nhiều nhất được lấy cho các yếu tố được cấp của trải nghiệm người dùng có một cơ chế cơ bản. Windows cho chúng tôi biết nếu có kết nối internet và liệu chúng tôi có cần đăng nhập vào cổng xác thực Wi-Fi không?
Câu trả lời
Người đóng góp SuperUser Tobias Plutat cung cấp một số thông tin chi tiết về quy trình:
After some digging (the sheer number of network and Internet related services in Windows is astonishing), I think I found it. Windows Vista and 7 have a variety of Network Awareness features, one of which is the Network Connectivity Status Indicator that performs connectivity tests that in turn are used by the network systray icon. The test for internet connectivity is simple:
- NCSI tries to load a specific page via HTTP (more precisely: a text document) and tests whether it can be retrieved.
- If that is not successful, Windows reports “No Internet access”.
The mechanism also checks whether the domain the document is hosted on resolves to the expected IP address. So, it might also assume proper internet access if this test is successful but the document can’t be retrieved.
The reason it reports “No Internet Access” when you haven’t authenticated on a Hotspot yet lies in the way a Hotspot works. It blocks all ports besides 80 and 443 (for HTTP and HTTPS, respectively), which get redirected to the Hotspot’s authentication server and might mess with DNS requests in one way or another. Thus, NCSI can neither resolve the domain its test file is hosted on, and even if it could it wouldn’t reach the actual file because HTTP traffic is redirected to the Authentication server.
Một người đóng góp khác, Jeff Atwood, nêu bật một số trích dẫn chính từ tài liệu tham khảo tài liệu Tobias:
Here are the details of the connection status determination process:
The following list describes how NCSI might communicate with a Web site to determine whether a network has Internet connectivity:
-
A request for DNS name resolution of
dns.msftncsi.com
-
Yêu cầu HTTP cho
https://www.msftncsi.com/ncsi.txt
trả lại 200 OK và văn bản
Microsoft NCSI
Điều này có thể bị tắt với cài đặt đăng ký. Nếu bạn đặt:
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services NlaSvc Tham số Internet EnableActiveProbing
đến
0
Windows sẽ không còn tìm kiếm kết nối Internet nữa.
Apple làm điều tương tự trong iOS để phát hiện kết nối internet và các trang wifi “đăng nhập” của khách sạn có thể, v.v.
Mặc dù toàn bộ quá trình này thường là 100% minh bạch cho người dùng cuối, đôi khi sau khi xác thực thông qua cổng web của điểm phát sóng Wi-Fi, bạn sẽ thấy mình đang nhìn chằm chằm vào nội dung thực tế của NSCSI.txt. Làm thế nào bạn đã kết thúc nhìn vào một tài liệu văn bản nondescript thay vì trang web bạn đang cố gắng để tải không còn là một bí ẩn khi kết hợp với các câu trả lời trước đó về chủ đề này.
Có cái gì để thêm vào lời giải thích? Âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange có hiểu biết công nghệ khác? Xem toàn bộ chuỗi thảo luận tại đây.