신입사원 교육자료

Download Report

Transcript 신입사원 교육자료

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