연결 지향형 서비스
연결 지향형 서비스 (Connection-Oriented Service)
1. 개요
네트워크 통신에서 데이터의 신뢰성과 순서를 보장하기 위해 사용하는 연결 지향형 서비스란, 데이터를 전송하기 전 송신측과 수신측 사이에 논리적인 연결 통로를 먼저 설정하고 데이터를 주고받은 뒤 연결을 해제하는 방식의 네트워크 서비스 모델이다. 이 서비스는 전송될 데이터의 경로를 미리 예약하거나 상태 정보를 공유함으로써, 데이터가 전송되는 동안 일관된 경로와 신뢰성을 보장하는 것을 목적으로 한다.
2. 동작 원리 및 단계
연결 지향형 서비스는 전형적으로 '연결 설정 → 데이터 전송 → 연결 해제'라는 3단계의 생명주기를 가진다.
2.1 단계별 상세 메커니즘
- 연결 설정 (Establishment): 송신측이 수신측에 연결 요청을 보내고, 수신측이 이를 수락하여 양측이 통신 준비가 되었음을 확인하는 단계이다. 이 과정에서 버퍼 크기, 시퀀스 번호 등 통신에 필요한 파라미터를 협상한다.
- 데이터 전송 (Data Transfer): 설정된 논리적 연결을 통해 실제 데이터를 전송한다. 이때 데이터는 설정된 경로를 따라 순차적으로 전달되며, 수신측은 데이터를 정상적으로 받았는지 확인 응답(ACK)을 보낸다.
- 연결 해제 (Release): 데이터 전송이 완료되면 점유하고 있던 네트워크 자원(메모리, 포트 등)을 반납하고 논리적 연결을 끊는 단계이다.
2.2 단계별 수행 작업 비교
| 단계 | 주요 수행 작업 | 목적 | 비고 |
|---|---|---|---|
| 연결 설정 | 핸드셰이킹, 파라미터 협상 | 통신 가능 여부 확인 및 환경 설정 | 오버헤드 발생 시작점 |
| 데이터 전송 | 세그먼트 전송, 순서 제어, 오류 검출 | 데이터의 정확하고 순차적인 전달 | 신뢰성 보장의 핵심 단계 |
| 연결 해제 | 종료 요청 및 확인, 자원 회수 | 시스템 자원 낭비 방지 및 세션 종료 | Graceful Shutdown 지향 |
3. 주요 특징 및 장단점
3.1 기술적 특징
- 신뢰성 있는 전송 (Reliable Delivery): 데이터 패킷의 손실이나 중복 발생 시 재전송 메커니즘을 통해 데이터의 완전성을 보장한다.
- 순서 보장 (In-order Delivery): 각 패킷에 시퀀스 번호를 부여하여, 수신측에서 원래의 순서대로 데이터를 재조립할 수 있게 한다.
- TCP\%20%EC%A0%9C%EC%96%B4%20%EB%A9%94%EC%BB%A4%EB%8B%88%EC%A6%98/%ED%9D%90%EB%A6%84%20%EC%A0%9C%EC%96%B4" class="wiki-link">흐름 제어 (Flow Control): 송신측이 수신측의 처리 능력보다 빠르게 데이터를 보내지 않도록 전송량을 조절한다. (예: 슬라이딩 윈도우 기법)
- 오류 제어 (Error Control): 체크섬(Checksum) 등을 통해 데이터 변조 여부를 확인하고, 오류 발견 시 재전송을 요청한다.
3.2 장단점 분석
- 장점: 데이터 유실 가능성이 낮고 전송 순서가 보장되므로, 데이터의 정확성이 필수적인 서비스에 적합하다.
- 단점: 연결 설정 및 해제 과정에서 추가적인 제어 패킷이 교환되므로 지연 시간(Latency)이 발생하며, 연결 상태를 유지하기 위한 메모리 및 CPU 자원 소모(오버헤드)가 크다.
4. 비연결형 서비스와의 비교
4.1 전송 방식 및 경로 다이어그램
연결 지향형은 가상 회선(Virtual Circuit) 방식을 사용하여 모든 패킷이 논리적으로 동일한 경로를 통해 전달되는 것처럼 동작하지만, 비연결형(데이터그램) 방식은 각 패킷이 독립적으로 최적의 경로를 찾아 이동한다.
[서비스 모델별 패킷 경로 개념도]
[연결 지향형: Virtual Circuit] [비연결형: Datagram]
(송신) ───(A)───(B)───(수신) (송신) ───(A)───(수신)
│ │ │ ↗
└──(C)┘ └──(B)┘
(설정된 가상 경로 A → B → 수신 고정) (패킷 1: A → 수신 / 패킷 2: B → 수신)
(논리적 연결 유지, 물리적 경로는 가변적일 수 있음) (각 패킷이 독립적 경로 선택)
4.2 핵심 차이점 비교표
| 구분 | 연결 지향형 (Connection-Oriented) | 비연결형 (Connectionless) |
|---|---|---|
| 연결 설정 | 필요 (Handshaking) | 불필요 |
| 전송 순서 | 송신 순서와 수신 순서 일치 | 순서가 바뀔 수 있음 |
| 신뢰성 | 높음 (재전송 및 확인 응답) | 낮음 (Best-effort 전송) |
| 전송 속도 | 상대적으로 느림 (설정 시간 필요) | 상대적으로 빠름 |
| 자원 사용 | 연결 상태 유지 필요 (Stateful) | 상태 유지 불필요 (Stateless) |
| 대표 예시 | TCP, ATM, Frame Relay | UDP, IP, Ethernet |
5. LLC 계층에서의 활용 및 예시
5.1 LLC(Logical Link Control) 계층의 구현
OSI 7계층의 데이터 링크 계층은 MAC(Medium Access Control) 하위 계층과 LLC 상위 계층으로 나뉜다. LLC 계층에서 연결 지향형 서비스가 구현되면, 인접한 두 노드 간에 논리적 연결을 설정하여 프레임의 전송 순서를 제어하고 흐름 제어를 수행함으로써 상위 네트워크 계층에 신뢰성 있는 링크를 제공한다.
5.2 TCP의 3-Way Handshake 과정
가장 대표적인 연결 지향형 프로토콜인 TCP(Transmission Control Protocol)는 연결 설정을 위해 다음과 같은 3-Way Handshake 과정을 거친다.
- SYN (Synchronize): 클라이언트가 서버에 연결 요청 패킷을 보내며, 자신의 초기 시퀀스 번호(ISN_c)를 전달한다.
- SYN-ACK (Synchronize-Acknowledgment): 서버는 요청을 수락하고, 클라이언트의 번호에 1을 더한 확인 번호(ACK = ISN_c + 1)와 자신의 초기 시퀀스 번호(ISN_s)를 함께 보낸다.
- ACK (Acknowledgment): 클라이언트가 서버의 응답을 확인하고, 서버의 번호에 1을 더한 확인 번호(ACK = ISN_s + 1)를 보내 연결 설정을 완료한다.
5.3 TCP의 4-Way Handshake 과정
연결 설정과 대칭적으로, TCP는 연결을 안전하게 종료하기 위해 4-Way Handshake 과정을 거친다.
- FIN (Finish): 통신을 종료하려는 측(주로 클라이언트)이 상대방에게 연결 종료를 요청하는 FIN 패킷을 보낸다.
- ACK (Acknowledgment): 상대방(서버)은 FIN 패킷을 받고 ACK를 보내 종료 요청을 확인한다. 이때 서버는 아직 보낼 데이터가 남아있을 수 있으므로 연결을 완전히 끊지 않고 'CLOSE_WAIT' 상태가 된다.
- FIN (Finish): 서버가 남은 데이터 전송을 모두 마치면, 클라이언트에게 연결 종료를 요청하는 FIN 패킷을 보낸다.
- ACK (Acknowledgment): 클라이언트는 서버의 FIN 패킷을 받고 마지막 ACK를 보낸 뒤 연결을 완전히 종료한다.
5.4 실제 활용 사례
연결 지향형 서비스는 데이터의 무결성과 순서가 보장되어야 하는 다음과 같은 서비스에서 필수적으로 사용된다.
- 웹 브라우징 (HTTP/HTTPS): 웹 페이지의 텍스트, 이미지, 스크립트 파일이 순서대로 정확하게 전달되어야 화면이 정상적으로 렌더링되므로 TCP 기반의 연결 지향형 서비스를 사용한다.
- 파일 전송 (FTP): 파일의 단 1바이트라도 유실되거나 순서가 바뀌면 파일이 손상되어 실행되지 않으므로, 강력한 신뢰성을 보장하는 TCP를 사용한다.
- 이메일 전송 (SMTP/IMAP/POP3): 메시지 내용의 누락 없이 정확하게 전달되어야 하므로 연결 지향형 방식을 채택한다.
- 원격 접속 (SSH/Telnet): 사용자가 입력한 명령어가 순서대로 서버에 전달되고 결과가 정확히 돌아와야 하므로 연결 지향형 서비스가 필요하다.
5.5 네트워크 장애 시나리오 및 해결책
| 장애 시나리오 | 발생 원인 | 해결책 (연결 지향형 메커니즘) |
|---|---|---|
| 패킷 유실 (Packet Loss) | 네트워크 혼잡으로 인한 버퍼 오버플로우 | 재전송 타이머: 수신측으로부터 일정 시간 내에 ACK가 오지 않으면 송신측에서 해당 패킷을 재전송함. |
| 패킷 순서 뒤바뀜 (Out-of-order) | 다중 경로 라우팅으로 인한 도착 시간 차이 | 시퀀스 번호(Sequence Number): 수신측 버퍼에서 시퀀스 번호를 확인하여 올바른 순서로 재조립 후 상위 계층으로 전달함. |
| 수신측 과부하 (Receiver Overload) | 송신측의 전송 속도가 수신측 처리 속도보다 빠름 | 윈도우 크기 조절 (Window Size): 수신측이 ACK 패킷에 현재 처리 가능한 버퍼 크기를 명시하여 송신량을 제한함. |
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.