Bạn có thể nghĩ về số lượng cổng. Có 65536 cổng có sẵn trong TCP trong các phiên bản hiện tại của IPv4. Đây không chỉ là giới hạn của Linux, là một phần của giao thức. Địa chỉ IP của bạn xác định máy của bạn và cổng xác định chương trình trên máy của bạn.
Nhưng, số lượng kết nối không bị giới hạn bởi điều đó. Một kết nối bao gồm 5 mẩu thông tin, trong geek nói 5-tuple. Nó được xác định bởi giao thức (TCP, UDP), địa chỉ IP và cổng cục bộ, và địa chỉ IP và cổng từ xa. Vì vậy, hãy có một máy chủ web. Nó có thể phục vụ nhiều kết nối trên cùng một cổng (rất có thể là 80). Máy chủ web của bạn thậm chí có thể hỗ trợ nhiều kết nối đến cùng một máy khách. Giả sử, bạn đang kết nối với google.com từ hai cửa sổ. Máy của bạn sẽ chọn một cổng không sử dụng cho mỗi kết nối. Vì vậy, máy chủ của google sẽ phải theo dõi (TCP, google.com, 80, yourmachine, someport1) và (TCP, google.com, 80, yourmachine, someport2). Tại một số điểm, bạn sẽ gặp phải giới hạn, nhưng đó không phải là giới hạn cứng và phụ thuộc rất nhiều vào hệ thống.
Và vâng, mỗi ổ cắm là một bộ mô tả tệp, nhưng không phải tất cả các máy đều sử dụng quần short cho bảng fd. Trên hệ thống của tôi, một hệ thống không được điều chỉnh ở tất cả các hệ thống, cat /proc/sys/fs/file-max
mang lại cho 323997. Tôi chắc chắn rằng tôi có thể tăng cường nó nếu tôi cần.
Vì vậy, có giới hạn 65336, nhưng nó phải được thực hiện với địa chỉ, không phải số lượng kết nối. Số lượng kết nối bị giới hạn, nhưng nhiều hơn bởi cấu hình hệ thống và dung lượng bộ nhớ.