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