目錄
一、理論數(shù)值
二、實際部署
?參考
一、理論數(shù)值
????????首先知道一個基礎概念,對于一個 TCP 連接可以使用四元組(src_ip, src_port, dst_ip, dst_port)進行唯一標識。因為服務端 IP 和 Port 是固定的(如下圖中的bind階段),那么一個TCP服務器支持最多的連接數(shù)就是由客戶端 IP 和 端口決定的了。
????????端口數(shù)在 TCP 傳輸協(xié)議中占兩個字節(jié),所以一共有 2 ^ 16 = 65535 個端口(未減去保留端口,假設數(shù)量為 m)。
????????IP 在 IP 網(wǎng)絡協(xié)議中占四個字節(jié),所以有 2 ^ 32 個網(wǎng)絡地址(未減去廣播地址、多播地址和私有地址,假設他們數(shù)量之和為 n)。
????????所有理論上 TCP 服務器支持 ( 2 ^ 32 - n ) * ( 2 ^ 16 - m )條連接,簡單計算一下,理論上支持的 TCP 連接數(shù)是以億為量級的。
? ? ? ? 下圖是 TCP 服務器與客戶端的交互過程。
二、實際部署
????????實際使用中,TCP 服務器支持的最大連接數(shù)受服務端內存和文件描述符的約束。
(1)一條處于 ESTABLISH 狀態(tài)的 TCP 連接占用的大小是 3.44 KB,數(shù)據(jù)來源文末參考鏈接。
(2)服務器內每個 TCP 連接就是一個文件描述符,受如下 linux 系統(tǒng)參數(shù)的限制。
????????系統(tǒng)級:當前系統(tǒng)可打開的最大數(shù)量,通過? cat /proc/sys/fs/file-max?查看;
????????用戶級:指定用戶可打開的最大數(shù)量,通過? cat /etc/security/limits.conf?查看;
????????進程級:單個進程可打開的最大數(shù)量,通過?cat /proc/sys/fs/nr_open?查看;文章來源:http://www.zghlxwxcb.cn/news/detail-811010.html
?參考
https://mp.weixin.qq.com/s/l9ggXLAEHp4LTjd2Qsyqtg文章來源地址http://www.zghlxwxcb.cn/news/detail-811010.html
到了這里,關于TCP服務器最多支持多少客戶端連接的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!