sip(session initiation protocol)

15
SIP(Session Initiation SIP(Session Initiation Protocol) Protocol)

Upload: maxima

Post on 06-Jan-2016

59 views

Category:

Documents


0 download

DESCRIPTION

SIP(Session Initiation Protocol). 정의. 전화통화에 상대방을 쉽게 초대할 수 있게 하기 위해 만들어진 프로토콜 어떤 프로토콜 스택에 메여 있지 않음 HTTP 와 같은 텍스트 기반으로 정의 확장이 용이하며 , 쉽게 사용이 가능 기존에 사용하는 e-mail 주소를 사용하고 , 위치 지정 메시지를 통해 이동성을 제공 전화를 지정한 장소에서 받는 것이 가능. 디자인 목적 자체가 네트워크를 위해 만들어짐 SIP 는 HTTP 를 모토로 만들어짐 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SIP(Session Initiation Protocol)

SIP(Session Initiation Protocol)SIP(Session Initiation Protocol)

Page 2: SIP(Session Initiation Protocol)

전화통화에 상대방을 쉽게 초대할 수 있게 하기 위해 만들어진 프로토콜

어떤 프로토콜 스택에 메여 있지 않음• HTTP 와 같은 텍스트 기반으로 정의 •확장이 용이하며 , 쉽게 사용이 가능

기존에 사용하는 e-mail 주소를 사용하고 , 위치 지정 메시지를 통해 이동성을 제공• 전화를 지정한 장소에서 받는 것이 가능

정의정의

Page 3: SIP(Session Initiation Protocol)

디자인 목적 자체가 네트워크를 위해 만들어짐

SIP 는 HTTP 를 모토로 만들어짐• SIP 의 Syntax 가 HTTP 와 매우 흡사

ASCII 텍스트 기반으로 SIP 기반의 어플리케이션을 구현하거나 디버깅 작업이 용이

Page 4: SIP(Session Initiation Protocol)

User Agent(UA)• 전화를 걸고 받을 수 있고 SIP 플토콜의 기능을 지원하는 터미널을 의미

• 호를 요청하는 쪽 UAC(User Agent Client)• 호를 받는 쪽 UAS(User Agent Sever)

Network Server • SIP 네트워크 망을 제어

• H.323 의 게이트키퍼와 비슷한 역할• 네트워크 서버의 종류는 전체를 포괄적으로 처리해주는 Proxy Server 와

사용자의 이동성을 보장하기 위한 Redirect Server Registrar

• SIP 사용자 단말기가 SIP 네트워크의 일부분으로 등록을 하기 위해 필요한 컴포넌트

Location Server • SIP 네트워크에서 주소를 확인한 후에 확인한 주소에 맞는 위치를

검색하기 위한 컴포넌트

구성 컴포넌트구성 컴포넌트

Page 5: SIP(Session Initiation Protocol)

연결방법

• Proxy Sever 를 통한 연결방법

• 상대방과 직접 연결을 할 수 있는 방법

전화를 거는 쪽에서는 SIP 에 맞는 주소방식을 사용하여 INVITE

메시지를 통화를 원하는 쪽에게 전화를 통화를 요청

SIP 에서 사용되는 주소를 살펴보면 크게 3 가지로 분류

• 사용자가 사용하는 네트워크이름과 호스트의 이름에 사용자가 로그인하는 아이디를

합쳐 그것을 SIP 주소로 사용

• IP 주소 그 자체를 SIP 주소로 사용할 수 있음

• E-MAIL 주소나 기존에 홈페이지에서 사용하는 DNS 이름을 SIP 의 주소로 사용할

수 있으며 지금 가장 구체화된 것은 기존의 E-MAIL 주소를 사용하는 방식

주소주소

Page 6: SIP(Session Initiation Protocol)

SIP 프로토콜의 어드레스 형식은 인터넷의 전자메일 ( E-mail) 어드레스 형식과 아주 유사

아래 예는 전형적인 SIP 어드레스 sip:[email protected]

sip: 은 프로토콜을 표시 /errorfree 는 User ID / gkn.com 은 User 가 소속된 도메인을 의미

도메인이 없어서 DNS 서비스를 받지 못할 경우에는 도메인 파트에 IP 주소를 사용할수 있음

예를 들면 sip:[email protected] 이렇게 표기 할 수있음

또 User ID 를 전화번호 (E.164 어드레스 ) 로 표시 할수 있습니다 .sip:[email protected];user=phone

이때 User ID 027831188 은 E.164 어드레스 임을 표시 만약 뒤의 User=phone 이라는 부분이 없다면 027831188 은 단순히 숫자로된 User ID 를

의미 또 SIP 프로토콜에서는 User ID 에 대해 비밀번호를 설정 하여 인증 시 사용 할 수도 있음

sip:whoni;[email protected]

SIP SIP 주소주소

Page 7: SIP(Session Initiation Protocol)

호 설정은 상황에 따라나눔 Proxy 서버를 통해 호 설정을 할 것인지 아니면 직접 상대방에게 호

설정을 할 시도할 것인지를 결정• 만약 상대방의 주소를 알고 있고 직접 상대방에게 호 설정을 할 수

있으면 직접 호 설정을 하게 됨 • Proxy 를 통해 이루어질 경우에는 DNS 룩업 테이블을 참고하여

상대방의 주소를 알아내고 호 설정을 하게 됨 요청반응 프로토콜을 이용하여 상대방의 주소를 찾아 호를 설정하는

방법• 요청 메시지는 TCP 나 UDP 를 사용하여 미리 정해진 잘 알려진

포트번호를 이용하여 전달하게 됨 • 클라이언트 사용자 에이전트는 네트워크 망을 살펴보는 도중에 위에서

정의된 잘 알려진 포트로 메시지가 수신되면 반응 메시지를 보내 전화나 화상회의에 참가하게 되다 . 만약 받은 메시지나 보낸 메시지가 사용자에이전트나 서버에 의해 문제점이 발생하면 ICMP 메시지의 포트도달 불가 메시지를 전송하여 문제가 발생했다는 것을 알려줌

호 설정호 설정

Page 8: SIP(Session Initiation Protocol)

SIP 의 모든 메시지는 텍스트 기반이며 메시지를 전달할

때에는 TCP 나 UDP 를 사용하여 여러개의 메시지가

하나의 TCP 세그먼트나 UDP 데이터 그램에 의해 보냄

SIP 의 데이터의 크기는 MTU 를 알고 있는 네트워크에

대해서는 MTU 의 값을 넘지 않는 한도에서 데이터를

보내고 MTU 를 알 수 없는 네트워크에 대해서는

1KByte 이하의 데이터를 보낼 수 있도록 정의되어 있음

메세지메세지

Page 9: SIP(Session Initiation Protocol)
Page 10: SIP(Session Initiation Protocol)

메시지 포맷

SIP SIP 메시지 포맷메시지 포맷

Page 11: SIP(Session Initiation Protocol)

METHODS : 메시지의 START LINE 을 표기하며 메시지종류 ,

요청아이디 SIP 의 버전을 표기

HEADER : SIP 의 헤더는 문맥 의미 차원에서 MIME 헤더 필드와 비슷

• SIP 의 헤더에는 지나가는 노드의 주소 (PATH), 송 · 수신자의 주소 , 같은 주소에 몇

번이나 연결이 되었나를 나타내는 순서 번호와 TTL 로 이루어져있음

• 헤더에 포함된 PATH 값을 네트워크 안에서 정의하기 위해서는 메시지 전달과정에서

메시지의 수정이 가능해야 하며 , 이것은 메시지에 대한 보안 문제를 발생시킴

BLANK LINE : 헤더와 메시지 바디의 경계를 표기

MESSAGE BODY : 메시지의 내용과 통신에 필요한 속성 값을 담아

전달하는 곳

메시지 포맷메시지 포맷

Page 12: SIP(Session Initiation Protocol)

SIP SIP 메시지 사용의 예메시지 사용의 예

Page 13: SIP(Session Initiation Protocol)

SIP Proxy 서버

• Proxy 서버는 UAC 로 부터의 SIP 콜을 받아서 자기가 대신 콜을 만들어 주는 역할을 수행

SIP Redirect 서버

• Redirect 서버는 UAC 로 부터의 SIP 콜을 받게 되면 실제 Destination (UAS) 의 어드레스를

알려주는 역할을 합니다 . 그렇게 함으로써 UAC 는 UAS 로 직접 콜이 가능해 집니다 .

대부분의 벤더에서 판매하고 있는 SIP 서버 제품들은 두 가지 구성이 모두 가능하도록 되어있음

• 따라서 관리자가 설정 하는 바에 따라 Proxy 또는 Redirect 서버로 동작 될 수 있음

별도의 SIP 서비스 서버

• Location 서버 와 Registrar 서버있음

• UA 들은 Registrar 서버에 Registration ( 등록 ) 을 함으로써 자신의 어드레스와 위치 정보등을 제공

• 즉 , 자신의 SIP 어드레스와 자신의 IP 어드레스를 같이 등록 합니다 .

• Registrar 서버는 이들 정보를 Location 서버로 제공 합니다 .

• Location 서버는 Proxy 서버 나 Redirect 서버 로 부터 SIP 콜의 목적지 노드 의 주소가 요청 되면

이를 Resolution 하는 역할

SIP SeverSIP Sever

Page 14: SIP(Session Initiation Protocol)

연결 절차연결 절차 Proxy Mode 에서의 SIP 동작

UAC( 송신측 ) 에서 UAS( 수신측 ) 을 초대하기 위해 NETWORK 서버에 초대

메시지를 보냄

NETWORK SERVER 에서 수신측 (UAS) 의 주소를 가지고 위치를알기 위해 LOATION SEVER 에게 문의LOCATION SERVER 는 수신측 (UAS) 의 위치를 NETWORK

서버에게 알려줌

LOCATION SERVER 로 부터 받은 위치 정보를 이용해 수신측에게 초대 메시지를 보냄 ( 수신측은 초대 메시지를 받으면

전화벨이 울려 전화가 온것을 알림 )

200OK 메시지를 송신측에게 보내 연결이 만들어 진 것을 알림

200OK 대해서 송신측은 ACK 로 응답하고 통화가 시작

Page 15: SIP(Session Initiation Protocol)

연결절차연결절차 Redirect Mode 에서의 SIP 의 동작

송신측 (UAC) 에서 수신측 (UAS) 을 초대하기위해 NETWORK 서버에 초대 메시지를

보냄

NETWORK SERVER 에서 에서 수신측 (UAS) 의 주소를 가지고 위치를 알기위해 LOCATION SERVER

에 문의 LOCATION SERVER 는 수신측의 위치를

NETWORK 서버에 알려줌 LOCATION SERVER 로 부터 받은 위치 정보를 보고 수신측의 위치가 변경되었다는 것을 알고 송신측에게 변경된 위치를 알려줌 문의송신측 (UAC) 는 MOVED 정보를 받았다고 ACK 로

응답

송신측 (UAC) 은 이동된 곳의 위치로 초대 메시지를 보냄

수신측 (UAS) 은 200OK 메시지를 이용하여 응답

송신측 (UAC) 은 수신측 (UAS) 에게 200OK 메시지에 대한 응답으로 ACK 를 보냄