주제
- 전화망 서비스 개발을 위한 기초 지식 정리
1. 인터넷 전화 통신에 대한 이해
1.1 PSTN과 VoIP
1.1.1 PSTN(Public Switched Telephone Network)
PSTN은 전통적인 전화 시스템으로, 음성 통신을 위해 회선 교환 방식을 사용합니다.
- 회선 교환: 통화가 시작될 때 두 지점 사이에 물리적인 회선이 설정되고, 통화가 끝날 때까지 유지됩니다.
- 아날로그 신호: 대부분의 경우 아날로그 신호를 사용하여 음성을 전달합니다.
- 고정 인프라: 구리선이나 광섬유 등의 물리적 인프라를 기반으로 합니다.
- 높은 신뢰성: 수십 년간 사용되어 왔으며, 안정성과 신뢰성이 높습니다.
- 긴급 서비스 접근: 911 등 긴급 서비스 접근이 용이합니다.
1.1.2 VoIP(Voice over Internet Protocol)
VoIP는 인터넷을 통해 음성 통신을 제공하는 기술입니다.
- 패킷 교환: 음성 데이터를 작은 패킷으로 나누어 전송합니다.
- 디지털 신호: 음성을 디지털 신호로 변환하여 전달합니다.
- 인터넷 기반: 인터넷 인프라를 사용하여 통신을 수행합니다.
- 유연성: 다양한 디바이스(컴퓨터, 스마트폰 등)에서 사용할 수 있으며, 원격지에서도 동일한 서비스 이용이 가능합니다.
- 비용 절감: 특히 장거리 통화에서 비용 절감 효과가 큽니다.
1.1.3 mVoIP(mobile Voice over Internet Protocol)
mVoIP는 모바일 인터넷 연결(4G, 5G, Wi-Fi)을 통해 사용되는 음성 통화 기술
- 주로 모바일 디바이스에서의 통화와 메시징에 사용됩니다.
- 카카오톡의 보이스톡, Facebook Messenger 등
2. 통신 프로토콜과 기술
2.1 통신 프로토콜
2.1.1 SIP(Session Initiation Protocol) 프로토콜
- 역할: 세션(통화)을 설정, 수정, 종료하는 데 사용됩니다.
- 특징: 텍스트 기반의 프로토콜로, HTTP와 유사한 방식으로 작동합니다.
- 기능: 음성 통화 외에도 비디오 통화, 인스턴트 메시징, 멀티미디어 배포 등을 지원합니다.
- 주요 메시지: INVITE, ACK, BYE, CANCEL, OPTIONS 등.
연결 예시) INVITE → TRYING → RINGING → OK → ACK
종료 예시) BYE → OK
SIP의 동작 예시
- 세션 설정:
- A 사용자가 B 사용자에게 전화를 걸 때, A의 클라이언트는 B의 URI를 포함한 INVITE 메시지를 SIP 프록시 서버에 보냅니다.
- 프록시 서버는 B 사용자의 위치를 찾아 INVITE 메시지를 전달합니다.
- B 사용자의 클라이언트는 TRYING, RINGING, 그리고 응답으로 200 OK 메시지를 보냅니다.
- A 사용자의 클라이언트는 ACK 메시지를 보내어 세션이 확립됩니다.
- 세션 종료:
- A 사용자가 통화를 끝내기 위해 BYE 메시지를 보냅니다.
- B 사용자의 클라이언트는 200 OK 메시지를 보내어 세션 종료를 확인합니다.
2.1.2 RTP
RTP는 실시간 음성 및 영상 데이터를 전송하는 데 사용됩니다.
- 기능: 음성 및 영상 데이터의 전송을 담당하며, 패킷 지터 및 데이터 순서를 관리합니다.
- 포트: 일반적으로 다이내믹 포트 범위를 사용하며, UDP를 통해 전송됩니다.
2.1.3 RTCP
RTCP는 RTP 세션의 제어 및 품질 모니터링을 담당합니다.
- 기능: RTP 패킷의 품질을 모니터링하고, 피드백을 제공하여 통신 품질을 향상시킵니다.
- 포트: RTP와 짝을 이루는 포트를 사용합니다.
2.1.4 SDP
SDP는 멀티미디어 세션의 초기화에 사용되는 프로토콜로, 세션의 매개변수를 기술합니다.
- 기능: 세션의 속성(코덱, 포트 번호, IP 주소 등)을 기술하는 데 사용, SIP와 함께 사용됩니다.
- 과정: SIP 메시지와 함께 사용되어 통화 세션의 미디어 속성을 협상.
2.1.5 SRTP, SIPS
- SRTP (Secure Real-time Transport Protocol):
- 기능: RTP를 통해 전송되는 미디어 스트림을 암호화하여 보호합니다.
- 과정: 음성 데이터를 암호화하고 인증하여 통신 보안 강화.
- SIPS (SIP Secure):
- 기능: SIP 메시지를 암호화하여 보안성을 높입니다.
- 과정: SIP 메시지를 TLS(Transport Layer Security)를 사용하여 암호화.
2.1.6 DTMF
DTMF(Dual-tone multi-frequency) 통신은 전화나 통신 네트워크에서 사용되는 아날로그 신호 방식 중 하나
- 특정 주파수의 두 개의 음향 신호를 조합하여 숫자, 문자 및 기타 신호를 전송하는 기술
- 주로 전화 시스템에서 사용되며, 사용자가 전화 키패드에서 숫자나 기타 명령을 입력할 때, 해당 신호가 DTMF 형식으로 변환되어 통신 네트워크를 통해 전송
2.1.7 정리
세션 설정 및 관리 통신 : SIP
미디어 전송 통신 : RTP, RTCP
세션 기술 통신 : SDP
보안 통신 : SRTP, SIPS
신호 및 제어 통신 : DTMF
2.2 필요한 기술
2.2.1 SIP Trunking
SIP Trunking은 VoIP 서비스의 일종으로, SIP(Session Initiation Protocol)을 사용하여 기업의 PBX(Private Branch Exchange) 시스템을 인터넷 전화 서비스 제공업체의 네트워크에 연결하는 방식입니다. 주요 특징은 다음과 같습니다:
- 세션 제어 프로토콜: SIP를 사용하여 음성 통화, 영상 통화, 메시징 등 다양한 멀티미디어 세션을 설정하고 관리합니다.
- 비용 효율성: 기존의 PSTN 회선을 대체하여 통신 비용을 절감할 수 있습니다.
- 확장성: 사용자의 요구에 따라 채널을 유연하게 추가하거나 제거할 수 있습니다.
- 유지 보수 용이성: 물리적인 회선 관리가 필요 없으며, 소프트웨어 기반으로 관리가 용이합니다.
- 기능 확장: 음성 통화 외에도 영상 통화, 인스턴트 메시징 등 다양한 기능을 제공할 수 있습니다.
PSTN과 VoIP의 주요 차이점은 통신 방식과 인프라에서 비롯되며, SIP Trunking은 VoIP 기술을 기업 환경에서 보다 효과적으로 활용할 수 있도록 도와주는 솔루션입니다.
2.2.2 WebRTC
WebRTC(웹 실시간 통신)는 브라우저와 모바일 애플리케이션을 위한 무료로 제공되는 오픈 소스 프로젝트로, 실시간 음성, 영상 및 데이터 통신을 가능하게 하는 기술입니다. WebRTC는 플러그인 없이 웹 브라우저에서 직접적으로 다양한 형태의 실시간 통신을 구현할 수 있도록 설계되었습니다.
인터넷 전화 서비스에서 WebRTC는 다음과 같은 용도로 사용됩니다:
- 음성 통화: WebRTC를 사용하여 브라우저 간에 음성 통화를 할 수 있습니다. 이는 특히 웹 기반의 응용 프로그램에서 두 사용자 간에 통화를 설정하고 관리하는 데 유용합니다.
- 영상 통화: 브라우저에서 직접적으로 영상 통화를 할 수 있습니다. WebRTC는 고화질의 영상 스트림을 브라우저 간에 전송하고 표시할 수 있는 기능을 제공합니다.
- P2P 파일 전송: WebRTC는 사용자 간에 파일을 직접 전송할 수 있는 기능도 제공합니다. 이를 통해 추가적인 서버 리소스 없이 브라우저 간에 파일을 공유할 수 있습니다.
- 화면 공유: WebRTC는 브라우저에서 현재 화면을 공유할 수 있는 기능을 지원합니다. 이는 원격 교육, 회의, 지원 서비스 등 다양한 시나리오에서 유용하게 활용될 수 있습니다.
- 실시간 데이터 전송: WebRTC는 실시간 데이터를 전송할 수 있는 기능도 포함하고 있습니다. 이를 통해 채팅 애플리케이션, 게임 등에서 실시간으로 데이터를 교환할 수 있습니다.
WebRTC는 웹 기술 기반의 음성 및 영상 통화 서비스를 쉽게 구현하고 접근성을 높이는 데 기여하고 있습니다. 또한, 플러그인 없이 동작하며, 다양한 플랫폼과 기기에서 지원되기 때문에 많은 개발자들이 이 기술을 이용하여 다양한 실시간 커뮤니케이션 솔루션을 개발하고 있습니다.
상담 웹 애플리케이션에서 상담원의 전화 연결을 위해 사용될 수 있다.
# 참고자료
- ChatGPT
'# DevOps > Network' 카테고리의 다른 글
Application 간의 주요 통신 방법 비교 (HTTP, AMQP, Socket) (0) | 2023.11.19 |
---|