Implement parallel Happy Eyeballs as described in RFC 8305
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- JavaScript
- Star
- 122k
- Fork
- 37.4k
- Merge trung bình
- 4 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 283
Mô tả
What is the problem this feature will solve?
autoSelectFamily is enabled by default in Node.js 20. However, it does not properly implement parallel connection attempts, which are an integral part of the Happy Eyeballs algorithm. This can cause timeouts to occur that did not occur in versions prior to Node.js 20. See, for example, this discussion.
What is the feature you are proposing to solve the problem?
Implement the algorithm as described in Section 5 of RFC 8305:
Starting a new connection attempt does not affect previous attempts, as multiple connection attempts may occur in parallel.
What alternatives have you considered?
Disabling autoSelectFamily and restoring the pre-20 behavior, see https://github.com/nodejs/node/issues/47644#issuecomment-1554440759.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với Section 5 của RFC 8305 và so sánh các yêu cầu về việc thử kết nối song song trong đó với hành vi autoSelectFamily hiện tại của Node.js. Sử dụng cuộc thảo luận được liên kết và hành vi trước phiên bản 20 được tham chiếu trong issue để hiểu hồi quy; được xem là hoàn tất khi các lần thử kết nối có thể tiến hành song song mà không ảnh hưởng đến các lần thử trước đó và hành vi timeout được báo cáo đã được xử lý.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, nodejs
- Lĩnh vực
- networking
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100