Làm thế nào để dịch vụ tin nhắn Cloud tiếp cận các thiết bị phía sau NAT / tường lửa?


8

Nhận thông báo đẩy với các thiết bị có IP cục bộ hoạt động tốt. Tôi chỉ tự hỏi làm thế nào là nó hoạt động. Có phải chỉ là uPnP? Thiết bị bắt đầu liên lạc với dịch vụ nhắn tin đám mây và sau đó IGD khởi động? Vì vậy, ánh xạ vẫn còn Máy khách thông báo đẩy có giữ kết nối liên tục đến máy chủ đám mây không? Tôi muốn nghĩ rằng đó không phải là trường hợp.

Tôi đặc biệt quan tâm đến việc làm thế nào thông báo đẩy biết cách tiếp cận thiết bị được cung cấp sau thiết bị NAT hoặc tường lửa. Có kịch bản nào mà thông báo đẩy của Google sẽ không thể truy cập thiết bị không?

Câu trả lời:


6

Như bạn có thể tưởng tượng, Google khá im lặng về các chi tiết triển khai. Vì vậy, tôi sẽ chỉ mô tả điều này trong trường hợp chung và ở dạng rất cơ bản.

Cách đẩy được thực hiện là máy khách (tức là điện thoại) mở kết nối TCP đến máy chủ nhắn tin (ví dụ: Google). Kết nối này có nghĩa là vẫn mở miễn là điện thoại được bật. May mắn thay, kết nối TCP hoàn toàn không sử dụng băng thông khi nó không truyền bất cứ thứ gì, vì vậy nó không lãng phí nhiều dữ liệu, bộ phát radio có thể tắt nguồn, v.v.

Kết nối có thể vẫn mở vô thời hạn, tuy nhiên đằng sau NAT, cơ sở hạ tầng NAT giữ một bảng các kết nối mở mà nó đang xử lý và bỏ các kết nối không hoạt động trong một thời gian, thường là 10 - 15 phút. Không có kết thúc nhận được thông báo về điều này. Vì vậy, điều này được xử lý bằng cách gửi một gói giữ TCP để làm mới mục nhập trong bảng kết nối NAT của trình điều khiển. Điều này chỉ tốn khoảng 50 byte hoặc hơn, và chỉ cần được thực hiện cứ sau vài phút.

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.