이것저것

TCP Active open, Passive open 비교

기억보다는 기록을... 2024. 12. 20. 13:23

TCP Active open과 Passive open은 TCP 연결 설정 과정에서 서버와 클라이언트가 수행하는 역할의 차이.

 

구분 Active open Passive open
역할 클라이언트 측에서 수행 서버 측에서 수행
동작방식 클라이언트가 서버에 연결을 요청하는 상태
SYN 패킷을 서버로 전송하여 3-way 핸드셰이크 시작
서버가 클라이언트의 연결을 기다리는 상태
LISTEN 상태로 진입하여 연결 요청을 대기
주요작업 connect(): 서버에 연결 요청을 전송 bind(): 특정 포트에 바인딩
listen(): 연결 요청을 수신할 준비
accept(): 클라이언트의 연결 요청을 수락
사용 포트 임의의 포트 사용 잘 알려진 포트 사용(예: HTTP 80 포트)
연결 속도 클라이언트가 연결을 시작해야 하므로, 서버 상태에 따라 연결 시간이 달라질 수 있음 LESTEN 상태로 대기하고 있어 빠른 연결이 가능
리소스 클라이언트가 필요할 때만 연결 생성하여, 리소스를 효율적으로 사용 연결을 수용할 수 있도록 리소스를 미리 할당
사용 사례 웹 브라우저, 이메일 클라이언트, 모바일 앱 등. 웹 서버, 데이터베이스 서버, 메일 서버 등
기타 일회성 연결 - 필요한 시점에 연결을 시작하고, 작업이 완료되면 연결을 종료 다중 클라이언트 처리 - 여러 클라이언트의 동시 접속 요청을 수용할 수 있도록 설계