소켓 최대 연결 가능 갯수

SuYeong·2024년 2월 12일
1

안녕하세요.
오늘은 소켓을 사용했을 때 가능한, 최대 연결 갯수를 정리해보겠습니다.

좀 더 정확히 말씀드려보면,
한개의 IP를 가지는 여러 TCP 클라이언트가 한개의 TCP 서버에 접속하려 할 때의 최대 연결 가능 댓수입니다.

현재 설명하려는 상황은 아래 그림과 같습니다.

만약, 한개의 리눅스 TCP 서버가 수용할 수 있는 최대 소켓 갯수가 궁금하신 분은 아래 링크를 참고하시면 됩니다.
(https://www.baeldung.com/linux/tcp-ip-connections-limit)

결론

결론부터 말씀드리면, 1개의 TCP 서버에는 동일한 IP를 가지는 65,536개의 클라이언트가 연결될 수 있습니다.

위 사진을 기준으로 다시 설명해보면, 127.0.0.3 에 구동되고 있는 TCP 서버 프로그램에는 127.0.0.2에서 구동되는 65,536개의 TCP 클라이언트 프로그램이 연결 가능합니다.

이유

소켓은 [서버 IP, 서버 포트, 클라이언트 IP, 클라이언트 포트] 조합으로 1개의 유일한 소켓이 식별됩니다.
또한, 서로 다른 프로세스가 한개의 소켓을 공유할 수 없습니다.

앞서 가정한 상황은 서버 IP, 서버 포트, 클라이언트 IP가 모두 동일한 상황입니다.
따라서 한개의 컴퓨터가 가질 수 있는 최대 포트 갯수인 65,536이 한개의 IP를 가지는 여러 TCP 클라이언트가 한개의 TCP 서버에 접속하려 할 때의 최대 연결 가능 수 입니다.

조금 바꾸어 말해보면,
한개의 TCP 서버로, 클라이언트 IP당 65,536 개의 연결을 수용할 수 있다고 말할 수 있습니다.


정리해놓고 보니, 조금 당연한 말을 적어놓은 것 같습니다..
그럼에도, 개인적으로 갑자기 헷갈리던 부분이라서 기록으로 남겨둡니다.

감사합니다.

profile
안녕하세요

2개의 댓글

comment-user-thumbnail
2024년 2월 12일

도움이 됐습니다. 감사합니다.

답글 달기
comment-user-thumbnail
2024년 2월 14일

제목에 '갯수'를 '개수'로 바꿔주세요.
소중한 우리말
지키자 우리말
바른말 고운말

답글 달기