Làm thế nào Android có thể giữ kết nối TCP sống khi thay đổi nhà cung cấp mạng?


7

Tôi tò mò về cách Android có thể duy trì kết nối TCP trong khi tôi chuyển từ 3G (dữ liệu di động) sang WiFi và ngược lại.

Tôi đang hỏi điều này sau khi tôi thấy rằng tôi có một luồng radio không bị gián đoạn nghĩ về radio TuneIn.

điều đó chỉ hợp lệ cho TuneIn (thông qua một số cách giải quyết mã) hay đó là một tính năng thú vị trong các lệnh gọi API của Android?

Cảm ơn trước sự giúp đỡ nào.

-- tội ác của tôi là tò mò :)

Câu trả lời:


5

Kết nối TCP không thể được duy trì trong quá trình thay đổi mạng vì bạn nhận được địa chỉ IP mới, khiến tất cả các kết nối bị chấm dứt.

TCP xây dựng dựa trên IP để nhận dữ liệu được phân phối. Nếu bạn thay đổi mạng, bạn cũng thay đổi địa chỉ IP công cộng được sử dụng bởi kết nối TCP để cho phép TuneIn phân phối dữ liệu cho bạn. Điều này làm mất hiệu lực kết nối hiện tại và buộc bạn phải thiết lập một kết nối mới.

Nhưng vẫn có cơ hội nhận được một luồng âm thanh không bị gián đoạn. Ứng dụng TuneIn rất có thể sẽ đệm luồng trong hai hoặc ba giây để bù cho các trục trặc kết nối hoặc thậm chí là kết nối lại.


TuneIn Radio có thể đệm tối đa 30 giây trong cài đặt, do đó, chuyển từ WiFi sang 3G và ngược lại sẽ không làm gián đoạn khả năng phát. Chỉ khi bạn có kết nối 3G yếu, bạn mới nhận thấy bất kỳ tạm dừng hoặc các vấn đề khác khi chơi.
HasH_BrowN

3

Mặc dù các câu trả lời được đưa ra cho đến nay là đúng trong thực tế hiện tại và chắc chắn khi chuyển đổi giữa nhà cung cấp internet di động của bạn và nhà cung cấp internet tại nhà, cả IPv4 và IPv6 đều có giải pháp di động, IPv4 bằng tiện ích mở rộng và IPv6 nguyên bản. Chúng cho phép người dùng di động có địa chỉ IP nhà tĩnh và địa chỉ IP di động động cho phép duy trì kết nối TCP trong khi chuyển từ mạng này sang mạng khác. Các chi tiết có thể được tìm thấy trong các RFC dưới đây:

Wikipedia

IP di động cho IPv4 RFC

IPv6 RFC

Theo như triển khai hiện tại của các giải pháp di động này, tôi không biết về bất kỳ thông tin nào và tôi không thể tìm thấy thông tin nữa. Tôi cho rằng giải pháp di động của IPv4 quá cồng kềnh khi triển khai (rốt cuộc nó vẫn là một địa chỉ) và không có đủ địa chỉ IPv4 để sử dụng vì vậy, hãy để một mình cho di động do đó sử dụng NAT nặng nề, vì vậy nó sẽ không bao giờ được dùng. Đối với IPv6 và lý do thiếu triển khai rộng rãi là khó khăn hơn để suy đoán, tôi đoán rằng với phần lớn web vẫn còn trên IPv4 và do đó sử dụng rất nhiều dịch từ IPv4 sang IPv6, giải pháp di động có thể khó triển khai môi trường này. Bất kể, ngay cả khi nhà cung cấp dịch vụ di động đã hỗ trợ như trên, cả nhà cung cấp dịch vụ di động và nhà của bạn đều cần một số mức hỗ trợ và ISP tại nhà không '

Các kết nối TL; DR TCP bị ngắt trên điện thoại của bạn khi thay đổi mạng (và do đó là nhà cung cấp mạng); tuy nhiên, có những giải pháp di động giải quyết vấn đề này, nhưng chúng chưa được triển khai (ít nhất là không rộng rãi).

PS Một thử nghiệm tốt hơn về việc ngắt kết nối TCP là cuộc gọi thoại hoặc video (rõ ràng là qua dữ liệu). Âm nhạc và phim ảnh có thể được đệm và chuyển đổi địa chỉ IP không được chú ý; tuy nhiên, cuộc gọi không thể.


3

Một trong những giải pháp mới nhất cho vấn đề này là MPTCP (TCP đa đường). Nhưng điều này cũng chưa được hỗ trợ rộng rãi (iOS7 của Apple hỗ trợ Multipath TCP cho lưu lượng truy cập do Siri tạo ra).

MPTCP có thể thiết lập nhiều kết nối TCP phụ và nếu được các thiết bị hỗ trợ trên một kết nối, thì kết nối có thể được giữ ngay cả khi IP của bạn thay đổi (Wifi thành 3G / 4G và ngược lại).

Nếu bạn muốn biết thêm về MPTCP, hãy đọc bài viết sau: http://queue.acm.org/detail.cfm?id=2591369


1

Không có cách nào để duy trì kết nối TCP nếu địa chỉ IP của bạn thay đổi (và nó sẽ thay đổi khi chuyển từ 3G sang WiFi). Mặc dù vậy, bạn không cần kết nối liên tục để phát lại không bị gián đoạn - hầu hết các ứng dụng "radio" đều tích hợp sẵn một số dữ liệu để duy trì phát nhạc ngay cả khi bạn mất kết nối trong một thời gian.

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.