290 likes | 513 Views
Wap Protocol 분석. ㈜ 퓨전소프트 개발 2 파트 허광호. Contents. Wap Protocol Stack 의 소개 Wap Protocol Stack 의 계층적 역활 WTP OverView WSP OverView. Wap Protocol Stack. WAP protocol stack 은 mobile device 가 통신을 하기 위하여 논리적으로 요구하는 서비스 들을 레이어로 표현하여 묶어 놓은 것이다 .
E N D
Wap Protocol 분석 ㈜퓨전소프트 개발2파트 허광호 1
Contents • Wap Protocol Stack 의 소개 • Wap Protocol Stack 의 계층적 역활 • WTP OverView • WSP OverView 2
Wap Protocol Stack • WAP protocol stack 은 mobile device 가 통신을 하기 위하여 논리적으로 요구하는 서비스 들을 레이어로 표현하여 묶어 놓은 것이다. • 각 레이어는 기능적으로나 논리적으로 다른 기능을 수행하기 때문에 물리적으로 나누어 진다. • Wap Protocol Stack은 OSI 레퍼런스 모델과 유사하며 차이점은 OSI 모델은 레이어가 7개 인데 비해 WAP 프로토콜 스택은 5개로서 비교적 간단하다. • 인터넷 프로토콜은 mobile device 와 같이 저 대역 이며 대기(호출) 시간이 긴 어플리케이션에 적합하지 않다. 3
WAE WSP WTP WTLS WDP Wap Protocol Stack 의 계층적 역활 • WSP(Wireless Session Protocol) 는 클라이언트 / 서버 어플리케이션 컨텐츠 를 조직적으로 교환 할 수 있는 수단을 제공한다. • HTTP/1.1에 상응하는 기능을 정의 • 세션을 정의하고, 세션 관리를 위해 suspend/resume 기능도 제공 • 프로토콜 기능에 대한 협상도 가능하게 함 WAE(Wireless Application Environment) 는 이동 어플리케이션과 서비스의 개발을 위한 어플리케이션 환경을 지원한다. • WTP(Wireless Transcation Protocol) 는 신용의 정도에 따라 트렌잭션을 처리하는 수단을 제공한다. • 트랜잭션 형태의 데이터 전송 기능을 제공 • 신뢰성 및 비신뢰성 전송 기능을 제공하고 오류복구를 위해 재전송 기능도 담당 WTLS(Wireless Transport Layer Security) 는 증명 , 사생활, 보안 등에 관한 연결을 어플리케이션 사이에서 처리하는 수단을 제공한다. WDP(Wireless Datagram Protocol) 는 End-To-End 전송을 위해 port 어드레싱을 제공 하고 인터넷의 UDP와 같은 전송 기능을 담당 한다. Fig1. Wap Protocol Stack 4
WTP OverView • WTP 는 request 에 대한 비-신뢰적 , 신뢰적 트랜잭션 서비스 Class 를 제공한다. • 제공되는 Class 는 다음과 같다. • Class 0 : 비-신뢰적 호출 메시지 • Class 1 : 신뢰적 호출 메시지 • Class 2 : 신뢰적 호출 메시지 에 대한 결과 메시지 5
WTP : Transcation Class 0 • Class 0 는 비-신뢰적 데이터 그램 서비스에 대한 트랜잭션 을 제공한다. • Class 0 는 Push 서비스와 같이 서버(Initiator) 에서 클라이언트로(Responder) 임의로 데이터를 전송 할 때 사용한다. • Responder 는 응답 메시지를 전송 하지 않는다. • Class 0 는 재전송을 수행하지 않으며 트랜잭션 도중에 중단할 수 없다. • 메시지는 Responder 에게 도착하자 마자 처리되거나 소멸된다. Initiator Responder start Invoke( TID=N,TG,c0…) end Fig2. Class 0 Transaction 6
WTP : Transcation Class 1 [1/2] • Class 1 는 신뢰적 데이터 그램 서비스에 대한 트랜잭션을 제공한다 • Class 1 는 신뢰성을 필요로 하는 Push 서비스 에서 사용된다. • Responder 는 처리 결과 메시지를 전송 하지 않지만 수신 확인 메시지를 Initiator 로 전송 한다. • Responder 는 Initiator 로 부터 메시지를 수신한 후 메시지를 잃어 버리 거나 Initiator 로 부터 재전송 받는 것에 대비하여 세션이 유지되는 동안 상태정보를 지속한다. • Initiator 에서 수신 확인 메시지를 받으면 트랜잭션 이 끝난다. 트랜잭션 은 실행도중 어느 순간에도 멈출 수 있다. 7
WTP : Transcation Class 1 [2/2] Initiator Responder start Invoke( TID=N,TG,c1…) Ack( TID=N*) end 수신 확인 Fig3. Class 1 Transaction 8
WTP : Transcation Class 2 [1/4] • Class 2 는 기본적인 호출 / 응답 트랜잭션 을 제공한다. • 클래스 2 트랜잭션 의 기본적인 행동은 다음과 같다. • 하나의 호출 메시지를 Initiator(클라이언트) 에서 Responder(서버) 로 전송한다. • Responder 는 호출된 서비스에 정확한 하나의 결과 메시지로 응답한다. • 만약 Responder 가 호출에 대한 서비스 시간이 길어지면 Responder 는 결과 메시지를 전송하기 전에 “hold on” acknowledgement 를 전송한다. • 이것은 Initiator로 부터 불필요한 메시지를 재 전송하는 것을 방지 한다. • Responder 는 결과 메시지를 Initiator 에게 돌려 준다. 9
WTP : Transcation Class 2 [2/4] • Initiator 가 결과 메시지를 인식 한다. • Initiator 는 acknowledgement 전송 후에 상태정보를 유지 한다. • Initiator 가 결과 메시지를 잃어 버리거나. Responder 가 결과 메시지를 재 전송 하는 경우를 대비하여 이 정보를 유지한다. • Responder 에서 acknowledgement 받으면 트랜잭션 이 끝난다. 트랜잭션 은 도중에 어떤 때에도 멈출 수 있다. 10
WTP : Transcation Class 2 [3/4] Initiator Responder start Invoke( TID=N,TG,c2…) Result( TID=N*,TG,…) Ack( TID=N ) end Fig4. Class 2 Transaction 11
WTP : Transcation Class 2 [4/4] Initiator Responder start Invoke( TID=N,TG,c2…) “Hold On” Ack( TID=N* ) Result( TID=N*,TG,…) Ack( TID=N ) end Fig5. Class 2 Transaction EX) “Hold On” 12
WSP OverView [1/2] • WSP(Wireless Session Protocol) 는 정규화된 형태로 어플리케이션 사이에서 데이터 교환을 가능하게 해준다. 이것에 관한 프로토콜은 2가지이다. • 연결 기반 세션 서비스 : WTP 로 동작 한다. • 비 연결 기반 세션 서비스 : WDP 로 동작한다.(HTTP 의 UDP) • Session service 는 클라이언트와 서버 사이의 연결을 설정 해주도록 한다. • Primitive 는 클라이언트가 서버로 서비스를 요구 하기 위해 보내는 메시지 이다. • WSP 는 HTTP/1.1 의 기능과 대부분 유사하며 Mobile Device 에 최적화 하기 위하여 바이너리 형태로 제공된다. 13
WSP OverView [2/2] • WSP 에서 제공하는 기능 • 클라이언트 에서 서버 까지 믿을만한 세션을 확립 하고 세션을 해제 (세션 관리). • capability negotiation 은 사용한 프로토콜 기능성의 일반적 레벨에 대한 동의. • 간결한 인코딩을 사용한 서버와 클라이언 간의 컨텍스트 교환 • 세션의 정지와 재시작(세션 관리). • 클라이언트의 요구가 없이도 서버가 컨텐츠를 전달할 수 있는 push 기능 14
WSP Session Management [1/6] • 세션은 클라이언트와 서버 사이에서 Method나 Push 트랜잭션 등을 수행하기 위하여 논리적으로 유지되는 연결을 의미한다. • S-Connect primitive • 클라이언트에서 서버로 세션을 설정하기 위하여 사용되며, WTP 클래스 2 트랜잭션을 사용한다. • 클라이언트 는 서비스 사용자로부터 전달된 정보들을 Connect 메시지로 만들어 서버로 전달한다. • 서버는 Connect 메시지에 대하여 Redirect 또는 ConnectReply 메시지로 응답한다. • 요구자가 기능을 제안하고 응답자가 협상된 기능을 알려주는 단 방향 기능 협상을 수행한다. • 세션 헤더 정보가 교환되면, 세션이 종료될 때까지 응용계층에서 유지 하여 필요에 따라 사용할 수 있다. 15
WSP Session Management[2/6] Client Provider Server WTP Class 2 Transcation S-Connect.req Connect S-Connect.ind S-Connect.res ConnectReply S-Connect.cnf Fig6. Connect 16
WSP Session Management[3/6] • S-Disconnect primitive • 클라이언트 또는 서버에서 세션을 종료할 때 사용되며 WTP Class 0 트랜잭션을 사용한다. • 서비스 제공자는 세션 식별자 정보가 있는 Disconnect 메시지를 전달한다. • 특히, 세션 연결 도중 서버에서 이 이벤트가 발생하면, Redirect 메시지를 전달하게된다. • Redirect 메시지는 세션을 재 설정할 서버에 대한 정보를 가진다. • 그 외, 세션을 일시 중지하기 위한 S-Suspend 프리미티브 및 세션을 재개하기 위한 S-Resume 프리미티브가 있다. 17
WSP Session Management[4/6] Client Provider Server WTP Class 0 Transcation S-Connect.req S-Connect.ind Disconnect S-Connect.ind Fig7. DisConnect 18
WSP Session Management[5/6] Client Provider Server WTP Class 2 Transcation S-Connect.req Connect S-Connect.ind S-Disconnect.req Redirect S-Disconnect.ind S-Disconnect.ind Fig8. Redirect 19
WSP Session Management[6/6] Client Provider Server WTP Class 0 Transcation S- Suspend.req Suspend S-Connect.ind S- Suspend.ind WTP Class 2 Transcation S-Resume.req Resume S-Resume.ind S-Resume.req Reply S-Resume.ind S-Disconnect.req Reply S-Disconnect.ind S-Disconnect.ind Fig9. Supend & Resume 20
WSP Method Invoke [1/3] • 메소드 호출 기능 • S-MethodInvoke 및 S-MethodResult Primitive • S-MethodInvoke는 HTTP 메소드 요구를 위하여 전달하는 메시지를 나타낸다. • S-MethodResult는 HTTP 메소드 요구에 대한 응답을 전달 받기 위한 메시지를 나타낸다. • WTP 클래스 2 트랜잭션을 사용하여 수행된다. • 클라이언트는 Method 메시지를 전달하여 서버에서 수행될 메소드와 그 동작을 지정한다. • 서버는 수행된 결과를 Reply 메시지로 응답한다. 21
WSP Method Invoke [3/3] Client Provider Server WTP Class 2 Transcation S-MethodInvoke.req Method S-MethodInvoke.ind S-MethodInvoke.res S-MethodResult.req S-MethodInvoke.cnf Reply S-MethodResult.ind S-MethodResult.res S-MethodResult.cnf Fig10. Methoinvoke & MethodResult 22
WSP Push [1/2] • Push 는 클라이언트가 정보를 요청하지 않은 상태에서 서버가 임의로 정보를 전달할 수 있는 기능을 제공하며 비-신뢰적 Push와 신뢰적 Push 두 가지가 있다. 그러나, 사용하는 메시지의 형식은 동일하다. • S-Push Primitive • 비-신뢰적 Push 서비스를 위하여 사용된다. • 비-신뢰적 Push는 WTP 클래스 0 트랜잭션을 사용한다. • WTP 클래스 0는 재전송 기능이 없으므로 비-신뢰적 이다. • S-ConfirmedPush Primitive • 신뢰적 Push 서비스를 위하여 사용된다. • 신뢰적 Push는 WTP 클래스 1 트랜잭션을 사용하여 구현된다. • WTP 클래스 1은 재전송 기능을 가지고 있어서, 데이터의 신뢰적 전달이 보장된다. 23
WSP Push [2/2] Client Provider Server WTP Class 0 Transcation S-Push.req S-Push.ind Push Client Provider Server WTP Class 1 Transcation S-ConfirmedPush.req S-ConfirmedPush.ind ConfirmedPush S-ConfirmedPush.res S-ConfirmedPush.cnf Fig11. Non-Confirmed Push & Confirmed Push 24
HTTP/1.1 Header Accept-Language: en 인코딩 된 Header 0x83 0x99 • WSP Header Incoding • 헤더 인코딩 • WSP 헤더는 HTTP/1.1[2]의 헤더을 모두 수용 하며 WAP에서 사용하기 위한 헤더가 추가되어 있다. • WSP 헤더는 텍스트 형식이므로 전송되는 데이터의 양을 줄이기 위하여 헤더 정보를 축약 된 바이너리 형태로 인코딩 한다. • WSP 헤더는 필드 이름과 필드 값으로 구성되어 있으며 인코딩 기법에 의하여 인코딩 된 헤더의 예는 아래와 같다. 25
WSP Capabilities • 기능 협상 및 인코딩 은 클라이언트와 서버 사이의 서비스 수준 을조절하고 서비스 제공자의 수행을 최적화하기 위해 사용된다. 기능 협상시에 협상되는 기능은 다음과 같다. • 클라이언트와 서버 사이에서 전송되는 최대 메시지 크기 • 세션 수행 중에 동시에 수행될 수 있는 최대 메소드 및 신뢰적 Push 트랜잭션의 수 • 세션 일시 중지 나 재시작 또는 Push 기능의 사용 여부 • 기능 협상 요구는 인코딩 되어서 전달된다. • 인코딩은 길이, 기능 식별자, 파라미터로 구성된다. 26
WSP – WTP : Method Invoke Client Server WSP WTP WSP S-Method.req TR_invoke.req TR_invoke.ind S-Method.ind S-Method.res TR_invoke.res TR_invoke.cnf S-Method.cnf S-Reply.req TR_Result.req TR_Result.ind S-Reply.ind S-Reply.res TR_Result.res TR_Result.cnf S-Reply.cnf Fig12. WSP – WTP Layer Transport 27