Mobile Cloud Messaging Package 경희대학교 클라우드 및 보안 연구실 석사 2기 봉재식
Outline Mobile Cloud Messaging Package Public Push services Network Address Translators STUN Hole Punching MQTT RmCRC Mobile Cloud Messaging Package
Mobile Cloud Messaging Package 기능 Mobile-to-Server, Mobile-to- Mobile 실시간 메시지 전달 역할 mVDI의 가상화된 App과 차세대 모바일 단말간 메시지 전달 모바일 플랫폼에 비 종속적인 Push Service 제공
Public Push Services Apple Push Notification Service (APNS) Google Cloud Messaging for Android (GCM)
Public Push Services (Cont.) Mobile → GCM Server sender id, application id GCM Server → Mobile registration id Mobile → Cloud Server Server → Database Cloud Server → GCM Server Message, registration id Message
Public Push Services (Cont.) 신뢰성 부족 배터리 소모 제한된 메시지 전송량 플랫폼에 의존적인 서비스
Network Address Translators private IP를 public IP로 바꿔주는데 사용하 는 통신망의 주소 변환기 특징 외부에서 NAT환경에 있는 단말에 직접적으로 연결을 시도할 경우, 이를 차단함 하지만, NAT환경에 있는 단말이 외부 환경에 있는 단말로 연결을 시도한 경험이 있는 경우, 외부에서의 접속을 차단하지 않음 목적 인터넷의 public IP 절약 private network 보호 문제점 각 Device간 직접적인 통신이 어려움 Public and private IP address domain
STUN (Session Traversal Utilities for NAT) NAT Traversal을 해결하기 위해 사용할 수 있는 Tool로서의 프로토콜 Binding (STUN Agent의 External Transport Address를 알아내는 것)이 목적 동작 방식 Binding Request Packet을 NAT1로 전송 Packet의 출발지 주소 변경 후 NAT2로 전송 Packet의 출발지 주소 변경 후 Server로 전송 - Server로 전송된 최종 출발지 주소는 Server와 가장 가까운 NAT에 의해 할당된 public ip 출발지 주소 정보를 포함해 NAT2로 전송 출발지 주소 정보를 포함해 NAT1로 전송 출발지 주소 정보를 포함해 Client로 전송 - Client는 서버와 가장 가까운 NAT의 public ip를 알 수 있게 됨 Public Network Private Network2 Private Network1 STUN Client STUN Server NAT1 ① ② ③ ④ ⑤ ⑥ NAT2 * NAT Traversal : NAT를 통과하는 TCP/IP 세션을 생성하고 관리하는 기술
Hole Punching 2개의 Client가 모두 NAT 뒤에 있더라도, 중개 서버를 통해 직접적인 P2P 세션을 구성하는 기법 이미 두 Client가 중개서버와 활성화된 세션을 가지고 있다고 가정 Connection Reversal 두 Client가 중개 서버에 연결되어 있고, 오직 하나의 Client만이 NAT환경에 있는 경우 통신을 가능하게 하는 기술
Hole Punching (Cont.) Peers Behind a Common NAT
Hole Punching (Cont.) Peers Behind a Different NAT
Hole Punching (Cont.) Peers Behind Multiple Levels of NAT
MQTT (Message Queue Telemetry Transport) 센서, 원격 검침 영역 등에 사용하기 위해 개발 통신 대역폭과 전원이 한정적인 환경에 최적화 특징 Message Queue를 이용한 발행/구독(Pub/Sub) 방식 QoS 지정 가능 QoS 0 : 1번만 전달, 전달 여부 확인 X QoS 1 : 적어도 1번 이상 전달, 전달 여부 확인 O QoS 2 : 4단계의 Handshaking을 통해 정확히 한 번 전달
RmCRC Mobile Cloud Messaging Package STUN Client STUN Server Address Table AP Push Management System (Web) Push Client Push Provider Client Push Message Queue Message Broker Mobile Client Server
What is OPENSHIFT? Red Hat의 Open PaaS 사용자에게 빠른 개발 환경을 제공 Gear와 Cartridge라는 독특한 구조로 뛰어난 확장성 보유 다음과 같은 세 가지 버전으로 서비스 제공 Online Enterprise Origin Hosted PaaS Service Public Cloud Private PaaS Product Private Cloud Open Source PaaS Project Community Cloud
H/W (Bare-metal, VM, Cloud infrastructure) How OPENSHIFT works Node 3 Gear 1 SELinux Cartridges Gear 2 Gear 3 Broker Node 1 Node 2 RHEL RHEL RHEL RHEL H/W (Bare-metal, VM, Cloud infrastructure)
Application Container Gear 하나, 또는 그 이상의 카트리지를 실행하기 위한 자원 컨테이너를 제공 관리자는 다양한 크기와 종의 기어를 생성 할 수 있음 서비스가 구동되고 있는 VM과 비슷한 의 미 cf) Node 노드는 Physical machine 또는 Virtual Machine에서 운영되는 여러 개의 기어들 에 대한 리소스 공유를 수행 함
OpenShift Architecture Overview Broker
Communication between the Broker and Node hosts
Interface … OPENSHIFT(origin) … OPENSTACK UI Horizon Quantum Nova Image / Voice UI/UX Interface PKG Media PKG PUSH PKG Data Federation Broker Service Instance … OPENSHIFT(origin) … OPENSTACK Horizon (Dashboard) UI Quantum (Networking) Nova (Compute Node) Glance (Image Store) Swift (Object Store) Cinder (Volume Service) Keystone (Identity Service)