Một lợi thế nhiều kết nối đồng thời có thể cung cấp cho bạn (tuân theo cùng một cảnh báo được đề cập bởi chim bồ câu và Brian) là bạn sẽ có thể khắc phục tốt hơn vấn đề có cửa sổ nhận TCP quá nhỏ.
Nguyên tắc này liên quan đến là bandwidth delay product. (Có một lời giải thích chi tiết hơn here).
Tóm tắt ngắn gọn: trong môi trường có độ trễ cao, băng thông cao, truyền thông tin cậy như TCP thường bị giới hạn bởi lượng dữ liệu đang bay tại bất kỳ thời điểm nào. Nhiều kết nối là một cách xung quanh điều này, vì sản phẩm trễ băng thông áp dụng cho từng kết nối riêng lẻ.
Cụ thể hơn, hãy xem xét những điều sau: bạn có băng thông đầu cuối 10^8 bit mỗi giây (10 megabit/giây) và độ trễ chuyến đi là 100ms (0,1 giây). Do đó, có thể có tới 10^7 bit (10 megabits = ~ 1.25 megabyte) dữ liệu được gửi trước khi sự thừa nhận của bit dữ liệu đầu tiên đã được trả lại cho người gửi.
Điều này sẽ khác nhau tùy thuộc vào ngăn xếp TCP của hệ điều hành của bạn, nhưng giá trị không phổ biến cho kích thước cửa sổ nhận TCP là 64Kbytes. Điều này rõ ràng là quá nhỏ để cho phép bạn tận dụng tối đa băng thông kết thúc; một khi 64kbytes (512kbit) dữ liệu đã được gửi đi, quá trình gửi của bạn sẽ chờ cập nhật cửa sổ từ người nhận cho biết rằng một số dữ liệu đã được tiêu thụ trước khi đưa thêm dữ liệu vào dây.
Việc mở nhiều phiên TCP được thực hiện bằng cách thực tế là mỗi phiên TCP sẽ có bộ đệm gửi/nhận riêng. Tất nhiên, trên internet rất khó để xác định băng thông đầu cuối có sẵn thực sự, do kích thước cửa sổ TCP, tranh chấp, v.v. Nếu bạn có thể cung cấp một số số liệu mẫu, chúng tôi có thể hỗ trợ nhiều hơn.
Tùy chọn khác bạn nên xem xét là thiết lập cửa sổ nhận lớn hơn khi bạn tạo ổ cắm của mình, trên toàn cầu bằng cách sử dụng cài đặt OS hoặc trên cơ sở mỗi socket sử dụng tùy chọn socket.
Nguồn
2008-11-03 21:00:58
Ứng dụng của tôi đang chuyển dữ liệu một chiều mà không cần bất kỳ cuộc trò chuyện cấp ứng dụng nào. Chỉ cần đẩy dữ liệu vào ổ cắm từ xa. – JtR
Tôi có lẽ đã ra khỏi ken ở đây nhưng nếu không quá khó, cách chắc chắn nhất là thiết lập bản dùng thử, imho. nó chắc chắn có vẻ như có tiềm năng ở đó, bởi vì nó là một cách. – dove
Bạn đang tìm kiếm một ổ cắm đáng tin cậy (kết nối dựa trên)? Nếu không, có thể sử dụng UDP thay vì TCP có thể giúp đỡ? – AshtonKJ