Cold TCP Connection 이란?
- 아직 설정되지 않은 커넥션 혹은 오랫동안 유휴 상태인 커넥션을 말한다.
- 장기간 유휴 상태가 되면 타임아웃 혹은 기타 문제가 발생할 수 있기 때문에 연결을 다시 설정해야 할 수 있다.
- 연결을 다시 설정하면 TCP three-way handshake (SYN, SYN-ACK and ACK) 의 오버헤드가 발생한다.
Warm TCP Connection 이란?
- 클라이언트와 서버간 여러 요청에 재사용 할 수 있는 이미 설정된 커넥션을 말한다.
- 영구 연결 (persistent) 혹은 연결 유지 (keep-alive) 커넥션이라고도 알려져 있다.
- three-way handshake 와 연관된 오버헤드를 최소화 할 수 있다.
- 연결을 재사용함으로써 데이터 전송을 즉시 시작할 수 있고 데이터 송수신 전체에 걸리는 시간이 감소한다.
- 웹서버에서 여러 리소스를 로드할 때와 같은 경우 특히 유용하다.
Cold TCP Connection 이 필요한 경우
위의 설명대로면 Cold TCP Connection 은 네트워크만 지연되게 하는데 왜 쓰는 걸까?
최초 연결할 때
- 최초로 서버에 연결할 때는 3-way handshake 의 오버헤드를 피할 수 없다.
보안 및 세션 관리할 때
- 보안과 세션 관리 시에는 민감한 인증 정보가 있기 때문에 Cold TCP Connection 이 필요할 때가 있다.
커넥션 리소스를 확보해야 할 때
- 커넥션 리소스를 확보할 때도 Cold TCP Connection 이 필요하다.
- 계속 모든 연결이 유지되면 남는 리소스가 없다.
- 새 요청이 들어오면 전에 맺어져있던 커넥션을 끊어야 한다.
로드 밸런싱
- 여러대의 서버를 두고 로드밸런싱을 할 때는 연결을 계속 유지시키기보다 부하가 균일하게 가도록 다른 여러 서버로 요청이 가도록 해야 한다.
- Cold TCP Connection 은 여러 서버에 부하를 분산하여 최적의 리소스 활용도를 보장하고 다닝ㄹ 서버에 과부하가 걸리는 것을 방지할 수 있다.
커넥션 타임아웃과 리셋
- 커넥션에서 패킷 손실이나 타임아웃 혹은 다른 네트워크 문제를 겪었을 때, 새로운 Cold TCP Connectino 이 맺어지고 데이터 무결성이 보장되도록 해야 한다.
반응형
'네트워크' 카테고리의 다른 글
웹에서 자주 보게 되는 RFC 문서란 무엇일까? (0) | 2024.01.13 |
---|---|
웹소켓 (WebSocket) 이란? (0) | 2022.10.14 |