2012-02-06 30 views
7

Tôi đang phát triển một ứng dụng được nối mạng chạy trên một vài máy tính khác nhau trên mạng LAN. Một trong những nhu cầu cốt lõi là để ứng dụng duy trì một danh sách các đồng nghiệp trên mạng LAN mà nó đã truyền đạt trong quá khứ, để nó có thể khôi phục các phiên trước đó. Các giải pháp ngây thơ sẽ là chỉ cần nhớ IP và lưu trữ nó trong một bảng, nhưng những gì sẽ xảy ra khi IP của một peer thay đổi?điều gì cần thiết để làm cho độ phân giải tên máy chủ hoạt động trên một làn đường?

Thay vào đó, tôi nghĩ rằng tôi muốn lưu trữ tên máy chủ của các đồng nghiệp để ngay cả khi IP thay đổi, chúng vẫn có thể truy cập được qua tên máy chủ của chúng. (Tôi biết tên máy chủ cũng có thể thay đổi nhưng điều đó là đủ tốt).

Vì vậy, câu hỏi của tôi là chính xác những gì cần thiết để làm cho độ phân giải tên máy chủ hoạt động trên mạng LAN với các máy khách Windows/Mac/Linux hỗn hợp?

+0

Nếu đây là mạng công ty, bạn có thể đăng ký tên máy chủ của mình với máy chủ DNS. Nếu bạn đang sử dụng mạng LAN riêng, có các tùy chọn khác nhau để sử dụng ứng dụng này trên một mạng LAN phụ hoặc một mạng có thể được phân đoạn thành các miền phát sóng riêng biệt. (mạng con riêng biệt) Mạng của bạn sẽ trông như thế nào? – resmon6

+0

Ứng dụng sẽ chạy trong một mạng LAN phụ. Nhưng nó sẽ được triển khai cho hàng ngàn khách hàng khác nhau trong mạng LAN của họ. Vì vậy, tôi không thể đưa ra giả định về bộ định tuyến mà họ đang sử dụng hoặc những dịch vụ mạng nào có sẵn. – lms

Trả lời

6

Nếu không sử dụng cơ quan trung ương, cách đáng tin cậy duy nhất để đạt được điều này là thông qua việc sử dụng độ phân giải tên zerconfiguration. Điều này có nghĩa là không có bộ định tuyến multicast, bạn sẽ chỉ có thể tự động giải quyết các đồng nghiệp trên cùng một mạng con như máy chủ phân giải. Bạn có thể sử dụng một cái gì đó như bonjour cho mac, netbios hoặc ssdp cho windows hoặc avahi cho Linux nhưng bạn không thể giả định rằng chúng được kích hoạt. Tôi có thể xem xét một số giao thức phổ biến hơn mà thực hiện chức năng này tốt nhưng tôi cá nhân sẽ ném cùng một giao thức phân giải tên phát nhanh udp nhanh cho ứng dụng của bạn. Hãy nhìn vào những đối với một số ý tưởng hơn:

Zeroconf Name resolution

Universal local network name resolution method without DNS?

http://en.wikipedia.org/wiki/Zero_configuration_networking#Name_resolution

http://en.wikipedia.org/wiki/Broadcast_address#IP_networking

tôi sẽ chọn một cổng udp cụ thể để lắng nghe trên (cho phép nói 12000) và sau đó khi bạn đã sẵn sàng giải quyết các máy chủ, hãy gửi gói "udp" chào mừng đến 255.255.255.255 trên cổng 12000 và tất cả các máy chủ lưu trữ khác trên mạng của bạn đang chạy ứng dụng của bạn nên trả lời bằng một gói chứa tên máy chủ của họ, có thể là thông tin khác.

Các vấn đề liên quan