유무선통합(FMC)의 의미와 전망

|
 
출처 아토피 희망 e-biz와 마케팅 전략, 건강과 알로에 | 정신차렷
원문 http://blog.naver.com/hongjig/150004123901

유무선통합(FMC)의 의미와 전망

 

컨버전스가 21세기 IT분야에서 화두로 등장하고 있다. 컨버전스는 활성화 정도에 따라 시장구조를 변화시켜 관련산업에 새로운 도약의 기회를 제공한다. 이용자에게는 서비스를 효율적으로 제공하게 된다는 점에서 사회적·산업적 중요성을 갖는다.

 정부에서도 IT839정책을 입안하면서 8대 서비스와 9대 동력은 단위 서비스나 산업 육성책으로, 3대 인프라는 이를 융합할 수 있는 기반제공 전략으로 구성했다. 특히 차세대 인프라인 광대역통신망(BcN)은 음성과 데이터 통합, 통신과 방송 융합, 유무선 통합이 가능한 올(ALL)-IP 망 등을 구축토록 유도함으로써 컨버전스를 완성하는 비전을 제시하고 있다.

 이 가운데 음성과 데이터 통합은 통합서비스나 네트워크 구축 측면에서 활발하게 진행되고 있다. 반면에 통신과 방송 융합은 기술적으로는 가능하지만 법령 등 규제논의가 진행중이어서 당장 서비스를 제공하지 못하고 있다

 

유무선 통합은 유선과 무선으로 구분된 역무제도, 결합서비스에 대한 규제 정책 및 이에 따른 사업자 간 이해관계가 복잡해 활발한 논의가 이루어지지 않았지만 와이브로와 WCDMA 등 All-IP 기반 무선망이 등장하면서 관심이 높아지고 있다

 일반적으로 유무선 통합은 유무선 연계를 통한 서비스 통합과 하나의 단말 플랫폼에서 제어와 관리 기능을 수행하는 네트워크 통합으로 분류할 수 있다.

 유무선 통합의 출발점은 유선과 이동통신 간 음성서비스를 비롯, 평생번호(개인번호), 통합 메시징 및 유무선 포털 등 기존 네트워크를 변형하지 않고 네트워크 간 상호 접속 및 연동형태로 제공하는 부가서비스형 통합을 예로 들 수 있다.

 다음 단계로 통합 단말을 이용해 유무선 서비스를 제공하는 원폰·네스팟스윙·구내전화와 이동통신의 결합인 인포 모바일 서비스 등 다양하다. 그러나 진정한 의미의 네트워크 통합이 이루어지지 않은 상황에서 시도된 이런 서비스는 다수 이용자의 호응을 얻지 못하고 제한적인 규모의 틈새시장을 형성하는 수준에 머무르고 있다.

 따라서 공간 제약을 벗어나 연속적인 정보 교환과 제공이 가능하면서 편리성 및 개인화를 추구하는 고객의 요구사항을 만족시켜 주는 유비쿼터스 환경을 조성하기 위해서는 유무선 통합 네트워크 구축이 필수적이다. 이러한 유무선 통합 네트워크는 인증·과금·서비스관리 기능이 하나로 통합된 제어플랫폼으로 FTTH·와이브로·WCDMA 등 다양한 형태의 유무선 액세스망을 제어·관리함으로써 ‘원 컨트롤 박스 및 멀티 액세스’가 가능한 네트워크가 될 것이다.

 유무선 통합망 구축 기술개발은 현재 거의 완료단계에 있다. 국제표준화단체인 ITU-T·3GPP 등에서는 유무선 통합 네트워크의 최적구조로 IP멀티미디어서브시스템(IMS)을 제시해 표준화를 완료했다. 해외사업자도 상용제품을 이용해 IMS 구조로 네트워크를 구축하기 시작했다. 국내에서도 KTF와 SK텔레콤 등 무선사업자는 물론이고 KT 등 유선사업자도 IMS 구조 도입을 고려중이다.

 이런 추세로 나타나게 될 유무선 통합환경에서는 접속망(any network)이나 단말장치(any device)에 관계 없이 언제(anytime) 어디서나(anywhere) 모든 종류의 서비스(any service)를 최적의 방법으로 값싸고 간편하게 이용할 수 있게 될 것이므로 소비자 후생이 크게 증대될 것이다. 통신 사업자도 컨버전스를 통해 새롭게 형성된 시장에서 사업자의 강점을 중심으로 서비스를 차별화함으로써 새로운 비즈니스 기회를 포착할 수 있을 것이다.

 우리나라는 이미 세계 최고 수준의 IT인프라를 보유중이고, 최첨단의 유무선 통합망 구축에 매우 좋은 환경을 갖추고 있다. 따라서 유무선 통합시장과 융합서비스에 대한 이해당사자의 인식전환과 더불어 사업자 분류제도 개선, 융합서비스 도입절차 간소화 등 규제의 유연성이 갖춰진다면 유무선 통합은 90년대의 CDMA, 2000년대 초반의 초고속인터넷을 이은 또 하나의 성공사례로 기록될 수 있을 것이다.

 서광주 KT 네트워크부문장


'Network > How_to_study' 카테고리의 다른 글

ns2 모듈 및 변수 함수 설명  (0) 2009.01.28
SMSC(Short Message Service Center)  (0) 2009.01.18
이동통신 기술 발전사 2  (0) 2009.01.18
무선 LAN 전송방식 비교  (0) 2009.01.18
Wi-Fi, Wibro, WIPI, Bluetooth 정의  (0) 2009.01.18
And

SMSC(Short Message Service Center)

|
 
출처 가슴이 따뜻한 사람과 만나고 싶다. | 바람아래
원문 http://blog.naver.com/juneyl/5408430
*SMSC(Short Message Service Center)

1. SMSC 개요

SMSC(Short Message Service Center)란 한마디로 Store and Forward Message Switch 이다. 즉, 이동단말기(MS:Mobile Station)와 이동단말기 간, 또는 이동단말기와 SME(Short Message Entity)들 사이에 한정된 크기의 문자(단문:短文) 형태로 전달하는 통신서비스로서 임의의 순간에 수신 할 수 없는 착신 가입자에게 전송되는 단문을 그 가입자가 수신할 수 있을 때까지 저장(Store) 하였다가 전달(Forward) 하여 주고 통화중인 착신 가입자에게도 전달하여 주는 기능을 갖고 있는 시스템을 SMSC라고 부른다.
원래 단문 서비스(SMS:Short Message Service)는 ETSI(European Telecommunication Standard Institute)가 유럽의 디지탈 셀룰라 통신 시스템에 적용하기 위해 최대 155 바이트의 문자를 착발신 단말간에 주고 받을수 있는 점대점(Point to Point) 서비스를 정의 함으로써 처음 제안되었다. 단문 서비스의 특성은 트래픽 채널 뿐만 아니라 제어 채널인 엑세스 채널 및 페이징 채널을 이용하여 단문을 데이터베이스 문자 형태로 전달 할 수 있어서 단말기의 운용 상태에 관계없이 서비스가 가능하다.
SMSC는 GSM(Groupe Special Mobile)과 IS-41C 망에서 모두 연결하여 사용할 수 있다. SMSC는 SS7(Signalling System 7) 망에서 고유의 SPC(Signalling Point Code)를 갖는 하나의 독립적인 노드로서, HLR(Home Location Register)과 MSC(Mobile Service Center)와 연결되어 수신자의 위치를 파악하여 PLMN(Public Land Mobile Network)을 통하여 이동 가입자들에게 단문을 전달하여 주는 기능을 갖고 있다. SMSC는 이동 통신망을 이용하여 다양한 문자 전달 시스템(PC통신 시스템, Internet 서버 시스템, 휴대폰등)과 가입자들 사이에 숫자, 문자들을 양 방향으로 주고 받을수 있다. 물론 이동 가입자가 이동 단말기(일반적으로 휴태폰)를 통하여 단문을 보낼 수 도 있다. 보낼 수 있는 단문의 길이는 SMSC가 사용되는 환경에 따라 다른다. GSM 환경에서는 최대 160자(영문), IS-41C 환경에서는 최대 200자(영문)/100자(한글)의 단문을 전송할 수 있다. SMSC에서는 GSM Technical Specification 03.40 과 09.02 그리고 TIA/EIA Technical Specification IS-41C(SP3588), IS-136-A(TDMA), IS-637(CDMA)에서 정의된 Protocol과 Function들이 구현 되어 있다.
SMSC는 SME(Short Message Entities)라고 불리는 외부 클라이언트들과 연결되어 있다. 예를 들면 음성우편 시스템(Voice Mail System)은 음성우편 경보(Voice Mail Alert) 기능을 제공하기 위한 음성우편 경보 SME를 갖고 있다. SMSC는 TCP/IP를 기본으로한 SMCI(Short Message Client Interface)를 통하여 SME들과 접속된다. 이러한 인터페이스를 통하여 단문을 보내고 받고 관리하도록 만든 프로그램들을 SMC(Short Message Client)라고 한다. SMC들은 다른 네트웍에 대한 게이트웨이 구실을 하기도 하고 유저 인터페이스 또는 지역적인 기능들을 제공하기도 한다. 각 클라이언트들과 SMSC, 그리고 TCP/IP 만 제공된다면 클라이언트들은 SMSC가 탑재된 컴퓨터에 있어도 되고, 다른 장소의 컴퓨터에 있어도 된다. 그리고 경우에 따라서는 X.25와 SMPP(Short Messge Peer to Peer Protocol)도 지원한다. SMPP는 ETSI(European Telecommunications Standards Institute) Protocol 이다.
SMC로부터 받은 단문은 이동 수신자 번호에 따라 내부 데이터 베이스에 저장된다. 그런 다음 SS7 TCAP(Transaction Capability Application Part)을 이용하여 수신자의 위치정보를 알기위하여 HLR(Home Location Register)로 경로문의를 한다. HLR로부터 경로에 대한 정보를 성공적으로 받으면 SMSC는 단문을 현재 발신자와 연결되어있는 MSC(Mobile Switching Centers)로 보내려고 시도한다. 가입자와 연결이 되지 않아서 단문이 제대로 전달되디 않으면, SMSC는 단문을 주기적으로 재전송 할 수 있다. 필요하다면 단문 전달후에 SMSC는 HLR로 전달 결과를 알려 주어 내부 정보 테이블을 새롭게 한다. 이동 가입자와 연결이 되면 HLR과 MSC로부터 확인통보를 받게 된다.
SMSC의 주요 동작 기능으로 문자 저장/관리 기능, 문자 전송기능, 그리고 문자 텔리서비스 기능등 크게 3가지로 나누어 볼 수 있다.

1.1. 문자 저장/관리 기능
단문 서비스 가입자가 전송 의뢰한 단문은 발신 가입자가 지정한 시간 또는 착신 가입자가 수신 가능한 상태에 이를 때까지 SMSC에 저장된다. SMSC에 의하여 착신 가입자에게 전달된 문자는 착신 가입자의 수신 확인 후 삭제되며 일정한 시간이 경과된 후 혹은 가입자가 지정한 유효 시간까지 전달되지 못한 단문은 삭제된다. 한 가입자당 전송대기할 수 있는 문자의 최대수는 SMSC의 용량에 따라 결정된다

1.2 문자 전송기능
SMSC는 착/발신 단문 단말기와의 문자 전송 기능을 제공한다. 즉, 발신 단문 단말기가 전송한 단문을 올바르게 수신하거나 착신 단문 단말기로 전달되어야 할 단문을 올바르게 송신하는 기능을 지니고 있다. 단문의 수신에 있어서 문자의 오류, 저장시의 오류등을 검사하여 수신에 실패하였을 경우 이를 단말기가 인식할 수 있도록 한다. 단문의 송신에 있어서 단문 단말기가 이동 단말기일 경우 다음과 같은 기능들을 고려하여야 한다.
- 착신 이동국의 위치를 찾아내어 그곳으로 단문을 전달하는 기능
- 이동국의 일시적인 접근 불가상태가 발생하였을 때 이를 관리하여 단문의 안전한 송신을 보장하는 기능

1.3. 문자 텔리서비스 기능
문자 텔리서비스는 단문서비스를 위한 최상위 계층의 서비스로서 이동망의 베어러 서비스 (Bearer Service)의 종단점(단문 단말기, SMSC)들에 의해 제공되며 하위의 전송 기능이 제공하는 프리미티브들을 이용하여 단문 단말기와 SMSC간, 궁극적으로는 단문 단말기와 단문 단말기 사이의 단문 처리를 담당한다. 단문 텔리서비스는 대표적으로 셀룰라 페이징 텔리서비스(CPT: Cellular Paging Teleservice)와 셀룰라 메세징 텔리서비스(CMT:Cellular Messaging Teleservice)등이 있으며 이들 텔리서비스들을 이용하여 여러 이동망 사업자나 서비스 제공자들은 기상 정보 제공 서비스, 교통 정보 제공 서비스, 증권 정보 제공 서비스 등과 같은 다양한 응용서비스들을 개발하여 가입자에게 제공할 수 있다

2. SMSC의 기능

SMSC는 착/발신 단문의 저장 및 전달, 망 접속기능 및 서비스 제공자와의 접속기능을 수행한는데 그 주요 기능들은 다음과 같다.

- 이동 단말기로 단문 전송 (Mobile Terminated Message Delivery)
이동 단말기로 단문을 전달하여 주는 서비스이다. 단문들은 다른 가입자의 이동 단말기 또는 여러 다른 SMSC 클라이언트들(Operator, Batch, E-mai, Voice Mail, 또는 Customized Client)로 부터 온다. 이동 단말기는 전화번호를 통하여 접근이 가능하다. GSM 네트웍에서의 전화번호란 MSISDN(Mobile Station Integrated System Digital Network)을 뜻하며 국가코드(Country Code), 네트웍코드(NetworkCode) 그리고 디렉토리번호(Directory Number)로 구성되어 있다. 반면에 IS-41C 네트웍에서의 전화번호란 휴대폰의 MIN(Mobile Identification Number)를 뜻하며 지역번호(Area Code)와 전화번호(Phone Number)로 구성되어 있고 (NPA) Nxx-xxxx 형태를 갖고 있다. 하나 이상의 단문들이 동일 번호로 전달하기위하여 기다리고 있는 상태에 있다면 요청되는 순서대로 큐(Queue)에 쌓인다. 만약 우선 순위도가 높은 단문이 있다면 일반적인 단문보다 먼저 전달된다. 큐에는 일반 큐(Normal Queue)와 우선 큐(Priority Queue)가 따로 있어 우선 순위도가 높은 단문들이 많이 있다면 이역시 요청되는 순서대로 우선 큐에 쌓이게 된다. 전송되어야 하는 모든 단문들은 전부 전송이 되거나 저장시간 경과 또는 전달실패등의 이유로 데이터베이스에서 폐기될 때까지 순서대로 처리된다.

- 이동 단말기에서 단문 전송 (Mobile Originated Mesage Delivery)
이동 가입자의 단말기에서 단문을 전송할 수 있는 서비스 이다. 다른 이동 단말기로 단문을 보내기 위하여서는 단문의 착신 전화번호를 입력시켜야 한다. 단문이 SMSC에 도착하여 데이터베이스에 저장이 되면 SMSC는 발신자에게 확인통보를 보내준다. 그런다음 이동 단말기로 단문을 전달하는 방법은 위에 설명한 “이동 단말기로 단문 전송” 기능과 동일하다. 발신자는 전달된 단문에 대한 결과를 통보 받는다. 그리고 SMSC는 단문 수신처의 범위를 제한 할 수 있다.

- 팩스/음성 우편 통보 서비스 (Fax/Voice Mail Notification)
SMSC는 음성우편 경보(Voice Mail Alert) 기능을 할 수 있도록 하기 위하여 VMC(Voice Mail Client)와 연동하여 일을 한다. 음성우편 경보 서비스는 다음과 같은 방법으로 수행된다. VMS(Voice Mail System)로 음성우편이 도착하거나, Fax가 도착하거나, 메일박스가 꽉차거나 하면 그 사실을 SMSC에게 알려준다. SMSC가 이러한 사실을 통보 받으면 즉각 텍스트 형태로 그 정보를 이동 단말기로 보내준다. SMSC와 VMS 또는 FMS(Fax Mail System)와의 인터페이스는 SMCI 또는 SMPP의 기반으로 이루어 진다.

- 이동 단말기에서 팩스 전송 (Faxing from MS)
SMSC는 이동가입자가 보낸 단문을 받아 FMS 클라이언트로 보내는 기능을 갖고 있다. 발신자는 수신자의 전화번호를 입력시켜야 한다. SMSC가 단문을 받아 SMSC 데이터베이스에 저장이 되면 발신자에게 확인통보를 하여 준다. 그런 다음 FMS로 단문을 전달하는 방법은 위에 설명한 “이동 휴대폰으로 단문 전송”기능과 동일하다. 물론 단문의 형태는 FMS에서 정의된 형태를 따라야 한다.

- SME로 단문 전송 (SME terminated message delivery)
SMSC에 의해 수신된 단문은 각종 지정된 SME로 전송된다. 이 때 각 SME는 전화번호와 유사한 기능을 갖는 번호를 배정받아 전송된다. 클라이언트로 단문을 전송하는 방법은 이동 단말기로 단문를 전송하는 방법과 동일하다. 단문이 전송 실패된 경우 SMSC는 지정된 시간 간격으로 지정된 횟수만큼 재전송을 시도한다. 이동 단말기에 대한 단문 전송의 경우와 마찬가지로 클라이언트로 전송되는 단문에 대해서도 과금과 통계 데이터가 수집된다

- 단문 데이터베이스 (Message Database)
모든 전송중인 단문은 모두 문자 데이터 베이스에 저장된다. SMSC에서 사용하는 데이터베이스는 INFORMIX C-ISAM 데이터베이스로서 Dynamic 데이터베이스이다. 전송 요구된 단문은 데이터베이스에 저장되어 동작중(Active)으로 표시되며 전송이 완료되면 제거된다. 또한 저장시간 경과, 삭제 혹은 전송실패 발생시 제거된다. 저장된 단문은 발신 SME에 의해 삭제가 가능하며 미등록 가입자, 부적격 가입자등 전송도중의 심각한 문제 발생시에도 삭제된다. 단문의 삭제가 발생하는 즉시 자세한 과금 정보(Detailed Billing Record)가 만들어 진다.

- 단문 재전송 (Message Redelivery)
단문 전송이 실패하는 경우 SMSC는 단문이 제시간에 전송을 할수 있는 알고리즘에 의하여 재전송을 시도한다. 재전송 알고리즘은 이동 단말기가 사용될 때 MSC, HLR로부터 수신되는 통보(Notification)와 병행하여 처리된다. 주기적인 재전송은 운용자의 선택에 따라 ON/OFF될 수 있다. 주기적 재전송이 ON이 되면, 최대 저장 시간이 경과하거나 최대 재전송 횟수가 초과될 때까지 정해진 시간 간격으로 자동으로 시도된다. 만약 OFF인 경우에는 재전송을 시도하지 않고 저장 만기 시간까지 대기한다. 재전송은 일정한 간격으로 시도되지 않고 처음 143회 까지는 매 3분 1회에서 매 30분 1회 까지 분 단위로 설정할 수 있으며 망의 부하에 따라 재전송 간격은 새로운 단문에 따라 자동적으로 조정된다. 143회 ~ 167회 사이의 재전송 간격은 매 30분마다 1회, 168회 ~ 196회는 매일 1회, 197회 ~ 255회까지는 매주 1회의 간격으로 재전송을 시도한다. 위의 재전송 간격중 MSC 혹은 HLR로부터 이동 단말기를 사용할 수 있다는 통보를 받으면 재전송 간격에 관계 없이 즉시 해당 단말기로 저장되어 있는 모든 단문을 전송한다

※ 재전송 횟수 재전송 간격 총 저장 시간
1 ~ 143회 매 3 분 1회에서 매 30분 1회 사이의 분단위로 설정 가능
144 ~ 167회 매 30분 마다 1회 총 12시간
168 ~ 196회 매일 1 회 총 28 일
197 ~ 255회 매주 1 회 총 59 주

- 과금 청구 (Billing)
SMSC에 저장되어 있는 단문들이 제거되면(전송 완료, 삭제, 저장만기, 장애) 즉시 과금기록(Billing Record)이 생성되어 과금기록파일(Billing Record File)에 저장된다. 과금기록은 발신자, 착신자, 타임스탬프, 단문 길이등의 정보가 2진 형태로 저장되며 운용자는 명령어를 사용하여 ASCII 파일로 변환하여 내용을 조회해 볼 수 있다.

- 전송량 (Traffic)
SMSC는 발생하는 내외부의 사건발생들을 주기적으로 전송량 테이블(Traffic Table)에 기록하여 운용자가 시스템 성능을 조사할 수 있다. 이 테이블은 전송 요구된 단문 수, 전송 완료된 단문 수, 전송 실패된 단문 수와 제작자를 위한 SMSC 내부의 사건발생 수등을 포함하고 있으며 시스템 운용자에게는 그래픽 형태의 전송량에 대한 요약을 제공한다.

- 가입자 데이터 베이스 (Subscriber Database)
SMSC는 최대 백만 가입자를 수용하는 가입자 데이터 베이스를 가지고 있어 가입자의 기능 등급, 유효 가입여부등의 정보를 제공한다. 가입자 데이터베이스는 가입자의 전화번호와 이름으로 조회가 가능하며 각 가입자는 최대 20개의 기능이 조합된 COS(Class of Service)가 부여된다. 각 서비스의 조합을 통해 최대 100가지의 서로 다른 COS를 생성할 수 있으며 각 가입자 기록은 Protocol Version, 단말기의 Alphabet Indicator등의 정보를 가지고 있으며 이들 정보를 이용하여 다른 Alphabet 형태의 단문을 단말기에 맞도록 변환을 할 수 있다. 가입자 기록에는 과금 및 관리를 위한 Market Identifier가 있어 허용된 범위내에서 허용된 서비스만을 제공할 수 있도록 제어가 가능하다.

- 운영자 인터페이스 (Operator Interface)
시스템 운용자는 운영자 클라이언트가 제공하는 그래픽 인터페이스를 통해 이동 단말기에 단문을 보낼 수 있고 단문의 전달 상황에 대한 통보를 요구할 수 있다. 운영자는 운영자 클라이언트를 통해 문자 데이터베이스에 저장되어 있는 단문을 조회, 삭제 할 수 있다. 최대 7개의 운영자 클라이언트가 동시에 가동 가능하다

- 배포 목록(Distribution Lists)
시스템 운영자는 가입자 목록을 갖고 해당 가입자에게 동일한 단문을 동시 발송 할 수 있는 기능을 가지고 있다. 목록에 등록할 수 있는 가입자의 수는 제한이 없다. 목록에 등록된 가입자에게 동일 단문을 주기적으로 반복 전송할 수 있고 반복 전송 횟수 및 주기는 조정 가능하다. 또한 반복 전송의 상태를 감시 할 수 있다

- 주기적 전송 (Periodic Delivery)
목록에 등록된 가입자에게 동일 단문을 주기적으로 반복 전송할 수 있고 반복 전송 횟수 및 주기는 조정 가능하다. 또한 반복 전송의 상태를 감시 할 수 있다

- 예약전송 (Deffered Delivery)
사용자가 자신이 만든 단문의 전송시간을 지정하여 지정된 시간에 단문을 발송할 수 있는 기능으로서 이 기능을 이용하여 개인의 일정 목록을 작성할 수 있다.

- 우선 전송 (Priority Messages)
사용자가 자신이 발생한 단문에 대해 우선적으로 전송 여부를 설정할 수 있는 기능으로서 우선 전송 단문은 다른 일반 단문의 선두에 저장되어 나머지에 비해 우선적으로 전송된다. 여러개의 우선 전송 단문이 존재 할 경우 요구된 순서대로 저장, 전송된다. 모든 우선 전송 단문의 전송이 완료된 후 일반 단문의 전송이 재개된다.

- 유효기간 (Validity Period)
운용자는 자신이 생성한 단문에 대해 최대 저장 기간을 설정할 수 있어 이 기간이 만기될 때 까지 어떤 이유로든 전송이 완료 되지 못한 단문은 자동 삭제되고 과금 기록이 생성된다.

- 전송 상태 통보 (Notifications)
단문을 생성한 발신자는 단문 생성시 단문 전달 경과에 대한 통보를 요구할 수 있으며 SMSC는 단문 전달 결과를 요청한 클라이언트에게 반송한다. 이 결과로 전송/삭제등을 알려준다.

- 그래픽 및 명령어 사용자 인터페이스 (Graphical and Command Line User Interface)
SMSC는 모든 작동을 X 윈도우용 그래픽 사용자 인터페이스를 사용하여 수행할 수 있다. 다른 방법으로는 텍스트용 단말기에서 MML(Man Machine Language) 명령어 또는 SNMP를 통하여 명령어 조작을 할 수 있다.

- 음성 우편 인터페이스 (Voice Mail Interface)
음성사서함에 음성 정보가 도달한 경우 SMSC는 이 통지를 VMS로부터 전달 받아 단문의 형태로 해당 이동 단말기로 전송한다. 단문에는 음성 사서함에 저장된 단문의 숫자, 단문을 확인한 후에 통화할 상대방의 번호를 포함하고 있어 이동 단말기에서 단문를 수신한 후 Send 버튼을 눌러 통화할 수 있다. 이때 상대방 번호에는 VMS 번호가 지정되어있어 Send버튼만으로로도 사서함에 연결, 사서함을 조회할 수 있다.

- 전자우편 인터페이스 (Electronic Mail Inteface)
이동 단말기로부터 E-mail을 양방향으로 송수신할 수 있는 기능으로서 E-mail 클라이언트는 E-mail을 수신하여 단문 형태로 변환시킨 후 지정된 이동 단말기로 전송한다. 또한 단말기로부터 발신된 단문을 E-mail로 변환하여 Internet으로 전송한다. 또한 E-mail 서버에 E-mail이 도착하면 단문의 형태로 통보 정보를 생성하여 단말기에 전송함으로써 자신에게 E-mail이 도착했음을 알려준다.

- 단체 목록 클라이언트 (Group List Client)
이 기능은 이동 단말기가 개인의 전송 목록에따라 서비스 가입자에게 동일 단문을 방송할 수 있는 기능이다. 각 가입자는 한 그룹당 최대 10명씩 최대 16개의 그룹을 가질 수 있다.

- 일정 클라이언트 (Schedule Client)
각 개인이 자신의 일정을 등록하여 지정된 시간에 일정을 통지 받을 수 있는 기능으로서 이동 단말기는 단문내용과 전달 시간을 지정하여 SMSC에 저장한다. 사용자는 예약된 단문의 내용을 조회하거나 삭제할 수 있다.

- 사전 정의된 단문 (Predefined Messages)
SMSC는 최대 100개의 약정된 단문를 설정하여 외부 인터페이스를 통하여 단문 ID가 지정되면 약정된 내용의 단문을 해당 단말기로 전송한다. 약정된 단문중 날짜, 숫자, 이름등의 변수를 지정할 수 있어 사용자가 원하는 내용으로 바꿀 수 있다.

3. SMSC의 응용

단문 서비스(Short Message Service)는 크게 베어러서비스와 텔리서비스로 분류된다. 베어러서비스는 단순히 단문을 전달하는 서비스로 점대점 베어러서비스와 방송형 베어러서비스로 구분된다. 텔리서비스는 베어러 서비스를 이용하여 부가적인 기능을 제공하는 서비스로 제공방법에 따라 기본서비스와 부가서비스로 분류한다. 기본서비스에는 CPT(Cellular Paging Service), CMT(Cellular Messaging Service), 통보(Nitificaton) 서비스가 있다. 그리고 부가서비스는 외부 정보 제공자가 제공하는 정보를 CPT, CMT 또는 베어러 서비스를 이용하여 제공 한다. 외부 정보 제공자의 정보 종류에 따라 부가 서비스의예를 들어보면 다음과 같다.
주식정보, 은행게정조회, 송금, 환률정보, 날씨정보, 여행정보, 교통정보, 크레딧카드신용조회, 여가정보, TV정보, 광고, 안내 등.
현재 SMSC 소프트웨어를 개발하여 상품화에 성공한 대표적인 회사로는 미국의 ADC-NewNet 과 Aldiscon 있다. 우리나라도 1997년 10월부터 5개 이동통신 사업자들이 단문서비스를 제공하고 있다. 삼성전자와 ADC-NewNet이 공동개발로 이중 3개 사업자(한솔, KTF, 신세기)에 SMSC를 설치하여 주었다. 나머지 2개 사업자(SKT, LGT)에서는 Aldiscon SMSC를 사용하고 있다. 여기에서 설명된 대부분의 내용은 ADC-NewNet의 기능을 기본으로 설명되었다.

'Network > How_to_study' 카테고리의 다른 글

ns2 모듈 및 변수 함수 설명  (0) 2009.01.28
유무선통합(FMC)의 의미와 전망  (0) 2009.01.18
이동통신 기술 발전사 2  (0) 2009.01.18
무선 LAN 전송방식 비교  (0) 2009.01.18
Wi-Fi, Wibro, WIPI, Bluetooth 정의  (0) 2009.01.18
And

voip - jitter 정의

|
 
출처 red baron | 호야
원문 http://blog.naver.com/dif001/20007060164

* 이 문서에 대한 권한은 저자에게 있습니다.

퍼 가실때는 출처를 표시하여 주시고 메일로 연락을 주십시오. dif001@hamail.net

1.        Jitter

Jitter는 네트웍 구간에서 Packet전송 지연 편차( delay variation) 이다.

 

 

참고.2에 나타난 수치들을 기준으로 값을 낸다.

 

RTP3-RTP4 delay

Local delay(codec delay) : 46744(5843) - 46504(5813)  = 240 (codec delay:30ms)

240 30msec으로 환산할 수 있다.

Local delay codec처리를 하는 시간으로서 codec의 종류에 따라 다른 일정한 시간을 가진다. 기본적으로 160(20ms) 240(30ms) 두가지 값을 가지게 된다.

 

Capture delay : 20.508 20.478 = 0.030 (30ms)

Packet을 수집하고 packet간의 딜레이를 측정한 것이다.

이 값은 msec까지만 측정한 것으로 실측에서는 usec에서의 오차가 있는 것으로 나타났다.

 

이상의 값으로 측정하였을 때

 

Network delay

Tn'' = T1'-T1

이상의 식으로 값을 내었을 때 아래와 같다.

 

RTP3-RTP4 delay

30ms(capture delay) 30ms(local delay) = 0

 

RTP4-RTP5 delay

46984 46744 = 240 (30ms)

20.540 20.508 = 0.032 (32ms)

32ms 30ms = 2ms

 

RTP5-RTP6 delay

 

47224 46984 = 240 (30ms)

20.569 20.540 = 0.029 (29ms)

29ms 30ms = -1

 

Jitter    = (RTP4-RTP5) - (RTP3-RTP4)

            = |2 0| = 2

            = (RTP5-RTP6) - (RTP4-RTP5)

            = |2 + 1| = 3

                   = (2+3)/2

                   = 2.5ms

 

이상의 네트워크상의 Packet 전송 지연 편차를 구하는 방법이다.


2.        End-To-End delay

 

End-To-End delay는 유저간의 전송시간을 측정하는 것이다.

그림에서 나타난 굵은색 부분이 총 one round trip 이다.

프로젝트에서 필요한 부분은 half round trip으로서 이값은 one round trip 값을 2로 나눈 값이다.

구하는 방법은 아래와 같다.

 

최초 RTCP 전송이 user1에서 user2로 전송될 때의 패킷 (Sender Report)

 

NTP reference timestamp

NTP second       : 00 05 05 77

NTP fraction        : f3 00 00 00

이 값은 user1측에서 데이터를 전송할 때의 시간이다.

 

이 값을 받은 user2는 일정시간(실측시간 5sec) 이 지난후에 RR(Receiver Report)메시지를 전송한다.

LSR (Last Send Report timestamp)             : 05 77 f3 00

DLSR (delay since last SR)                        : 00 03 93 00

 

LSR SR메시지 상의 NTP timestamp의 일정부분을 추출한 값이다.

 

이 값은 timeval(msec, usec)으로 이루어진 값으로써 이값에서

msec부분의 하위 2byte usec부분의 상위 2바이트를 추출하여 Round-trip값을 구하기 위한 지표값으로 사용한다.

 

DLSR SR메시지를 전달받고 RR메시지를 전송하기까지의 Local Processing Delay를 나타낸다 이 값은 timeval(msec, usec)형태로 이루어 져 있다.

 

위의 기본지식을 바탕으로 실측데이터를 가지고 End-To-End delay를 측정한다.

 

 

1.       user1-SR (NTP timestamp)
NTP second        : 00 05 05 77
NTP fraction        : f3 00 00 00

2.       agent-SR 수집 시간(Agent)
20.224(sec)

3.       user2-RR-LSR,DLSR
LSR        : 05 77 f3 00
DLSR      : 00 03 93 00

4.       Agent-RR수집시간
23.793(sec)

5.       End-To-End delay
23.793-20.224-3.376 (
반올림
) = 0.193 (one round trip)
0.193/2 = 0.096 == 96ms


 

'Network > Netowrk_link' 카테고리의 다른 글

MTU란?  (1) 2009.01.18
MTU  (0) 2009.01.18
802.11e MAC 프로토콜 동작 메커니즘  (0) 2009.01.18
Back-Off Algorithm in Slotted CSMA/CA  (0) 2009.01.18
QoS -1-  (0) 2009.01.18
And

이동통신 기술 발전사 2

|
 
출처 I love KTF | 깜장콩
원문 http://blog.naver.com/ggghggh/50002123837

1 세대 이동통신

 

 아날로그 셀룰러 시스템(analog cellular system)은 1970년대에 개발되어 1980년대 초부터 실용화된 제1세대 자동차/휴대 전화 시스템을 통칭한다.
 아날로그 셀룰러 시스템은 벨 연구소, 스웨덴의 에릭슨사, 일본의 NTT 등에서 개발하여 비슷한 시기에 각각 AMPS, NMT, NTT 시스템이라는 이름으로 실용화하면서 이들과 유사한 다양한 시스템이 전 세계적으로 보급되었다.
 제1세대 아날로그 셀룰러 시스템은 모두 음성(speech) 전송에는 아날로그 주파수 변조(FM) 방식을 사용하고, 제어 신호 전송에는 2진 주파수 편이 변조(binary FSK) 방식을 사용하며, 이동국과 기지국 간에는 주파수 분할 다중 접속(FDMA) 방식으로 주파수 스펙트럼을 공유한다.

 

 

2 세대 이동통신

 

 이동통신의 수요의 급증에 의해 제한된 주파수 대역에서 기존의 아날로그 방식으로 제공할 수 있는 용량은 거의 포화상태에 이르렀으며, 통신망의 고도화에 따라 서비스의 고도화, 다양화, 디지털화 추세에 따라 디지털 셀룰러 방식의 도입이 불가피하게 되었다.
 이에 따라 기존 기존 아날로그 셀룰러 시스템에서 음성은 아날로그 주파수 변조 방식으로 전송하고 제어 신호만 디지털 방식으로 전송하던 것이 완전한 디지털 방식의 셀룰러 시스템으로 발전하였다.
 따라서 접속방식에 있어서 기존의 주파수 분할 다중 접속(FDMA) 대신 시분할 다중 접속(TDMA)과 부호 분할 다중 접속(CDMA) 방식의 사용이 가능하게 되었다.
 

 디지털 셀룰러 시스템은 하나의 셀(cell) 내에서 복수의 이동국이 기지국의 각 무선 주파수 채널(RF channel)을 동시에 공유함으로써 수용용량을 크게 증가시킬 수 있을 뿐만 아니라 다음과 같은 여러 가지 장점을 가지고 있다.
  ①고정망의 디지털화(ISDN화)와 좀 더 유연하게 통합하는 친화성
  ②음성/데이터 혼합 통신과 새로운 서비스 제공의 유연성
  ③음성 신호를 좀 더 적은 수의 비트로 부호화하는 저감 비트율 음성 부호기

     (reduced rate speech CODEC)의 도입에 따른 시스템 대용량화 가능성
  ④송신 전력의 저감과 이동 단말기 전지 수명의 연장
  ⑤통신 품질의 향상 및 통신 비밀의 확보
  ⑥이동국에 의한 통화 중 채널 전환(MAHO) 기능


 디지털화의 장점을 살려 한정된 주파수 자원을 효율적으로 이용, 고품질의 다양한 정보 통신을 경제적으로 제공하고 폭발하는 가입자 수요를 충족하기 위해 세계 각국에서 디지털 이동 통신 시스템을 적극적으로 개발하여 1990년대에 들어와 잇따라 실용화하고 있다.
 유럽의 경우 1980년대부터 개발한 TDMA 방식의 전지구적 이동 통신 시스템인 GAM을 유럽 전기 통신 표준 협회(ETSI)에서 표준화하여 1992년에 세계 최초로 상용화하였다.
 미국에서는 1993년 아날로그 방식, 디지털 방식을 혼용할 수 있는 TDMA 방식의 시스템을 EIA/TIA 표준 IS-54방식과 퀄컴(Qualcomm)사가 제안한 CDMA인 EIA/TIA 표준 IS-95로 채택함으로써 2원화된 표준 시스템이 실용화되었다.
 일본은 1993년 우정성의 주도하에 PDC라는 TDMA 방식의 독자적인 시스템을 표준화했으며 우리나라에서는 1991년부터 한국 전자 통신 연구원(ETRI)과 퀄컴사가 공동 개발한 CDMA 방식을 국내의 디지털 이동 통신 표준으로 확정하여 1995년에 상용 서비스를 개시하였다.

 

 

3 세대 이동통신

 

 2세대 디지털 셀룰러 시스템이 1세대 이동통신이 가지는 약점을 보완했지만 국가와 서비스주체에 따라 그 기술 방식이 다르고, 같은 기술방식이라 할지라도 사용하는 주파수 대역이 달라 무선 고유의 장점인 이동성을 완벽하게 실현하는 데는 근본적인 한계가 있었다.
 또한 인터넷 망을 통해 초고속 멀티미디어 서비스가 확대되면서 무선 인터넷 망을 통해서도 유선 인터넷과 같은 콘텐츠를 제공받고자 하는 소비자들의 요구가 발생하기 시작했다.
 이에 따라 각국의 정보통신을 담당하는 부처들은 2세대 이동통신의 제한을 극복하고, 멀티미디어 서비스를 보다 빠르고 안정적으로 제공하기 위한 표준을 제정하게 되었다.
 ITU에서는 FPLMTS라는 프로젝트로 3세대 기술연구에 돌입했으며 이후에 FPLMTS라는 약자는 IMT-2000이라는 이름으로 바뀌게 되었다.
 ITU가 권고한 IMT-2000의 세부 내용에서 사용자 대역폭(이동서비스 144Kbps, 고정서비스 최고 2Mbps)은 물론 멀티미디어와 같은 서비스의 제공, 그리고 소수부터 다수까지의 가입자들을 가변적으로 수용할 수 있는 네트워크 시스템에 대해서 언급했다.
 이에 따라 ITU는 1999년에 제출된 다수의 무선인터페이스 중에서

  ① WCDMA(Wideband CDMA)

  ② CDMA2000(IS-95 CDMA로부터 진보된 기술)

  ③ TD-SCDMA(Time Division-Synchronous CDMA)

  ④ UWC-136(IS-136으로부터 진보된 기술)

  ⑤ DECT를 선택했다.
 이들 이동통신 시스템은 동기식과 비동기식으로 각각 대표되는 WCDMA와 CDMA2000의 2가지로 압축돼 세계곳곳에 적용되고 있다.

 

4세대 이동통신

 

 4세대 이동통신 시스템의 비전은 전송 속도의 향상과 다양한 망의 융합이라고 할 수 있다. ITU-R에 의하면 2010년경에는 저속 이동시 1Gbps, 고속 이동시에는 100Mpbs의 데이터 전송이 가능하며, 셀룰러 시스템, 무선 네트워크, WLAN, PAN 등 다양한 유·무선 망의 융합이 이루어질 것으로 전망하고 있다.
 따라서 4세대 이동통신의 서비스는 한마디로 고품질, 다중서비스라고 할 수 있다.
 ITU에서는 4세대 이동통신의 서비스 요구사항과 이를 충족시키기 위한 서비스를 목표를 다음과 같이 제시하였다.
 먼저 서비스의 요구사항은 멀티미디어 지리정보를 제공할 수 있는 위치정보시스템, 멀티미디어 처리가 가능한 이동컴퓨팅시스템, 고화질 이미지 영상 HDTV, 원격의료/방재서비스, 무선인터넷 방송 및 뉴스서비스, 주문형 비디오 서비스 등이다.
 또한 이를 충족할 서비스 목표는 높은 데이터 전송률과 요구품질에 따른 다양한 데이터 전송속도 지원, 서로 다른 시스템 사이에 끊김없는 로밍서비스, 다양한 형태의 장치(전화, PDA 등)의 지원, 다양한 응용서비스(오락·게임 등)의 지원, 인증·QoS·보안 등 보다 발전된 성능의 지원 등이다.
 이러한 환경속에서 예측되는 핵심서비스로는 방송스트리밍, LBS(위치기반서비스), MMS(멀티미디어 메시지 서비스) 등이 있다.
 미래 이동통신 유비쿼터스란 시간과 장소에 구애 받지 않고 언제나 네트워크에 접속할 수 있는 통신환경을 말한다.
 라틴어의 유비쿼터스는 '언제나 어디에나 존재한다'는 뜻을 가지고 있으며, 정보통신 분야에서는 시간, 장소를 초월한 통신환경을 목표로 서비스 경쟁을 하고 있다. 유비쿼터스는 환경적, 기술적 제약으로 아직까지는 일반화되지는 않았지만, 각종 이동통신 기기는 휴대성과 편의성을 강조하여 출시되고 있다.
 최근 떠오르는 기술 중 유비쿼터스 환경의 것으로 기대되는 것으로는 착용식 컴퓨터, 지능형 주택 및 지능형 빌딩 등이 있다. 이런 것을 지원할 것으로 예상되는 무수한 기술 도구들 중에는 ASIC, 음성인식, 동작인식, SoC, 지각 인터페이스, 지능형 물질, 유연성 있는 트랜지스터, 재구성 가능한 프로세서, FPLG, MEMS 등이 있다.

 


And

무선 LAN 전송방식 비교

|

구분

현황

표준

2.4GHz

l       2.3~2.4835 GHz(ISM Band)

l       정보통신부에서 무선데이터 통신시스템 대역으로 지정

l       무선 LAN, Bluetootn용으로 통신 사업자를 포함한 누구나 서비스 제공 가능

국제 표준

5GHz

l       차세대 무선 LAN

l       한국 : 5.725 ~ 5.825 GHZ

l       미국 : 5.15 ~ 5.25 GHZ

l       유럽 : 5.15 ~ 5.35 GHZ

l       일본 : 5.15 ~ 5.25 GHZ

국제 표준

2.3GHz

l       국내에서 원래 WLL 용으로 할당 (하나로 통신 : 4GHz, KT : 20 MHz)

l       Wibro 대역으로 재할당

l       기존 무선 LAN 기술로 장비 개발 용이

l       주파수 할당 시 옥외용 무선 LAN 서비스 제공 용이

국내에서 주파수 용도 변경 가능성

2.5GHz

l       국내에서 원래 MMDS 송신용으로 할당 (한국 무선 CATV :  60MHz, 예비용)

l       기존 무선 LAN 기술로 장비 개발 용일

l       주파수 할당 시 옥외용 무선 LAN 서비스 제공 용이


'Network > How_to_study' 카테고리의 다른 글

SMSC(Short Message Service Center)  (0) 2009.01.18
이동통신 기술 발전사 2  (0) 2009.01.18
Wi-Fi, Wibro, WIPI, Bluetooth 정의  (0) 2009.01.18
레퍼런스 사이트 네트웍 관련  (0) 2009.01.11
네트워크 책  (0) 2009.01.11
And

Wi-Fi, Wibro, WIPI, Bluetooth 정의

|

구  분

특 징

WIFI

(와이파이)

무선랜

약어 : Wireless Fidelity(IEEE802.11b/g규격의 다른 호칭)

설명 : 전기전자기술자협회(IEEE)에서 정한 무선랜과 관련한 표준

       (표준안: IEEE802.11로 표기)

       a: 5Ghz 54Mbps, b: 2.4Ghz 11Mbps, g: 2.4Ghz 54Mbps 

Wibro

(와이브로)

무선휴대

인터넷

약어 : Wireless Broadband Internt(광대역 무선인터넷)

설명 : 이동하면서 초고속 인터넷 사용 가능(2.3Ghz로 시속 60km로 이동

       중에도 1Mbps전송)하며 한국정보통신기술협회에서 표준화 추진

WIPI

(위피)

무선인터넷

플랫폼

약어 : Wireless Internet Platform for Interoperability

설명 : 국내 이동통신사와 한국전자통신연구원(ETRI)이 개발한 무선인터넷

       표준 플랫폼으로 휴대전화에서 인터넷 사용가능한 S/W의 일종

Bluetooth

블루투스

설명 : 근거리에 놓여 있는 컴퓨터와 이동단말기.가전제품 등을 무선으로

      연결하여 쌍방향으로 실시간 통신을 가능하게 해주는 구격을 말

      하거나 그 규격에 맞는 제품을 말함


'Network > How_to_study' 카테고리의 다른 글

SMSC(Short Message Service Center)  (0) 2009.01.18
이동통신 기술 발전사 2  (0) 2009.01.18
무선 LAN 전송방식 비교  (0) 2009.01.18
레퍼런스 사이트 네트웍 관련  (0) 2009.01.11
네트워크 책  (0) 2009.01.11
And

The Network Simulator ns-2: Debugging Tips

|

Memory Leaks

  • OTcl

    OTcl, especially TclCL, provides a way to allocate new objects, however, it does not accordingly provide a garbage collection mechanism for these allocated objects. This can easily lead to unintentional memory leaks. Important: tools such as dmalloc and purify are unable to detect this kind of memory leaks. For example, consider this simple piece of OTcl script:

    set ns [new Simulator]
    for {set i 0} {$i < 500} {incr i} {
            set a [new RandomVariable/Constant]
    }
    
    One would expect that the memory usage should stay the same after the first RandomVariable is allocated. However, because OTcl does not have garbage collection, when the second RandomVariable is allocated, the previous one is not freed and hence results in memory leak. Unfortunately, there is no easy fix for this, because garbage collection of allocated objects is essentially incompatible with the spirit of Tcl. The only way to fix this now is to always explicitly free every allocated OTcl object in your script, in the same way that you take care of malloc-ed object in C/C++.

  • C/C++

    Another source is memory leak is in C/C++. This is much easier to track given tools that are specifically designed for this task, e.g., dmalloc and purify. Ns has a special target ns-pure to build purified ns executable. First make sure that the macro PURIFY in the ns Makefile contains the right -collector for your linker (check purify man page if you don't know what this is). Then simply type make ns-pure. See here on how to use ns with libdmalloc.

Tcl-level Debugging

Ns supports Don Libs' Tcl debugger (see its Postscript documentation and source code). Install the program or leave the source code in a directory parallel to ns-2 and it will be built. Unlike expect, described in the tcl-debug documentation, we do not support the -D flag. To enter the debugger, add the lines "debug 1" to your script at the appropriate location.

The command $ns gen-map lists all objects in a raw form.

This is useful to correlate the position and function of an object given its name. The name of the object is the OTcl handle, usually of the form ``_o###''. For TclObjects, this is also available in a C++ debugger such as gdb as this->name_.

C-Level Debugging

Any standard debugger should do the trick.

The following macro for gdb makes it easier to see what happens in subroutines that take Tcl arguments (like TcpAgent::command()):

## for dumping Tcl-passed arguments
define pargvc
set $i=0
while $i < argc
  p argv[$i]
  set $i=$i+1
  end
end
document pargvc
Print out argc argv[i]'s common in Tcl code.
(presumes that argc and argv are defined)
end

Mixing Tcl and C debugging

(Always a fun concept, right?)
It is a painful reality that when looking at the Tcl code and debugging Tcl level stuff, one wants to get at the C-level classes, and vice versa. This is smallish hint on how one can make that task easier. If you are running ns through gdb, then
  1. The following incantation (shown in bold below) gets you access to the Tcl debugger. Notes on how you can then use this debugger and what you can do with it are documented elsewhere.
    (gdb) run
    Starting program: /nfs/prot/kannan/PhD/simulators/ns/ns-2/ns 
    ...
    
    Breakpoint 1, AddressClassifier::AddressClassifier (this=0x12fbd8)
        at classifier-addr.cc:47
    (gdb) p this->name_
    $1 = 0x2711e8 "_o73"
    (gdb) call Tcl::instance().eval("debug 1")
    15: lappend auto_path $dbg_library
    dbg15.3> w
    *0: application
     15: lappend auto_path /usr/local/lib/dbg
    dbg15.4> Simulator info instances
    _o1
    dbg15.5> _o1 now
    0
    dbg15.6> # and other fun stuff
    dbg15.7> _o73 info class
    Classifier/Addr
    dbg15.8> _o73 info vars
    slots_ shift_ off_ip_ offset_ off_flags_ mask_ off_cmn_
    dbg15.9> c
    (gdb) w
    Ambiguous command "w": while, whatis, where, watch.
    (gdb) where
    #0  AddressClassifier::AddressClassifier (this=0x12fbd8)
        at classifier-addr.cc:47
    #1  0x5c68 in AddressClassifierClass::create (this=0x10d6c8, argc=4, 
        argv=0xefffcdc0) at classifier-addr.cc:63
    ...
    (gdb)
  2. In a like manner, if you have started ns through gdb, then you can always get gdb's attention by sending an interrupt, usually ^C on berkeloidrones.
However, note that these do tamper with the stack frame, and on occasion, may (sometimes can (and rarely, does)) screw up the stack so that, you may not be in a position to resume execution. To its credit, gdb appears to be smart enough to warn you about such instances when you should tread softly, and carry a big stick.

Memory Debugging

The first thing to do if you run out of memory is to make sure you can use all the memory on your system. Some systems by default limit the memory available for individual programs to something less than all available memory. To relax this, use the limit or ulimit command These are shell functions---see the manual page for your shell for details. Limit is for csh, ulimit is for sh/bash.

Simulations of large networks can consume a lot of memory. Ns-2.0b17 supports Gray Watson's dmalloc library (see its web documentation and source code). To add it, install it on your system or leave its source in a directory parallel to ns-2 and specify --with-dmalloc when configuring ns. Then build all components of ns for which you want memory information with debugging symbols (this should include at least ns-2, possibly tclcl and otcl, maybe also tcl).

To use dmalloc:

  1. define an alias (csh: alias dmalloc 'eval `\dmalloc -C \!*`', bash: function dmalloc { eval `command dmalloc -b $*` })
  2. Turn debugging on by typing dmalloc -l logfile low
  3. Run your program (which was configured and built with dmalloc as described above)
  4. Interpret logfile by running dmalloc_summarize ns <logfile (You need to download dmalloc_summarize separately.)

On some platforms you may need to link things statically to get dmalloc to work. On Solaris this is done with by linking with these options: "-Xlinker -B -Xlinker -static {libraries} -Xlinker -B -Xlinker -dynamic -ldl -lX11 -lXext". (You'll need to change Makefile. Thanks to Haobo Yu and Doug Smith for workign this out.)

We can interpret a sample summary produced from this process on ns-2/tcl/ex/newmcast/cmcast-100.tcl with an exit statement after the 200'th duplex-link-of-interefaces statement:

  • Ns allocates ~6MB of memory.
  • ~1MB is due to TclObject::bind
  • ~900KB is StringCreate, all in 32-byte chunks
  • ~700KB is NewVar, mostly in 24-byte chunks

Dmalloc_summarize must map function names to and from their addresses. It often can't resolve addresses for shared libraries, so if you see lots of memory allocated by things beginning with ``ra='', that's what it is. The best way to avoid this problem is to build ns statically (if not all, then as much as possible).

Dmalloc's memory allocation scheme is somewhat expensive, plus there's bookkeeping costs. Programs linked against dmalloc will consume more memory than against most standard mallocs.

Dmalloc can also diagnose other memory errors (duplicate frees, buffer overruns, etc.). See its documentation for details.

Memory Conservation Tips

Some tips to saving memory (some of these use examples from the cmcast-100.tcl script):
(Also see page on large simulations for more related info.)

If you have many links or nodes:

avoid trace-all
$ns trace-all $f causes trace objects to be pushed on all links. If you only want to trace one link, there's no need for this overhead. Saving is about 14 KB/link.

use arrays for sequences of variables
Each variable, say n$i in set n$i [$ns node], has a certain overhead. If a sequence of nodes are created as an array, i.e. n($i), then only one variable is created, consuming much less memory. Saving is about 40+ Byte/variable.

avoid unnecessary variables
If an object will not be referred to later on, avoid naming the object. E.g. set cmcast(1) [new CtrMcast $ns $n(1) $ctrmcastcomp [list 1 1]] would be better if replaced by new CtrMcast $ns $n(1) $ctrmcastcomp [list 1 1]. Saving is about 80 Byte/variable.

run on top of FreeBSD
malloc() overhead on FreeBSD is less than on some other systems. We will eventually port that allocator to other platofrms.

dynamic binding (NEW)
Using bind() in C++ consumes memory for each object you create. This approach can be very expensive if you create many identical objects. Changing bind()'s to delay_bind() changes this memory requirement to per-class. See ~ns/object.cc for an example of how to do binding, either way.
Some statistics collected by dmalloc (Investigating the bottleneck...)
KBytes cmcast-50.tcl(217 Links) cmcast-100.tcl(950 Links)
trace-all 8,084 28,541
turn off trace-all 5,095 15,465
use array 5,091 15,459
remove unnecessay variables 5,087 15,451
on SunOS 5,105 15,484

'Computer_language > Debug' 카테고리의 다른 글

리버스 엔지니어링  (1) 2009.02.03
Debugging with DDD  (1) 2009.01.12
[ns] Helpful Info regarding GDB / DDD and NS2  (0) 2009.01.12
gdb 사용법  (0) 2009.01.12
[ns] re:how to debug TCL  (0) 2009.01.12
And

Psiphone : 바레인과 같은 국가의 인터넷 감시를 피하게 해주는 소프트웨어

|

어제인가 뉴스에 바레인의 국왕과 왕족들의 횡포를 여러 인터넷 툴 특히 Google Earth를 통해 알고는 시민들이 항의하는 것이 나왔었죠.

참조: http://news.naver.com/news/read.php?mode=LSD&office_id=052&article_id=0000135000&section_id=115&menu_id=115



그런 의미에서 오늘 발표된 캐나다의 토론토 대학의 한 소프트웨어를 소개시켜 드릴까 합니다.


일단 제 글은


1. 토론토 대학의 페이지:

http://www.news.utoronto.ca/bin6/061128-2766.asp


2. 컴퓨터 잡지의 기사:

http://www.computing.co.uk/vnunet/news/2169789/boffins-beat-web-censors


3. Psiphon 프로그램 홈페이지

http://psiphon.civisec.org/


를 참조한 내용입니다.


서비스 시기: 12월 1일

소프트웨어 명칭: Psiphon

소프트웨어 목적: 인터넷 감시가 심각한 40여개국의 인터넷 유저가 국가 인터넷 감시망을 피해 세계 인터넷에 자유롭게 접속할 수 있도록 도와주는 소프트웨어


이 프로그램은 뉴스에 난 바레인 또는 북한 같은 실정의 40여개 국에서 인터넷 censorship (감시) 를 통해 특정 정치사이트를 접근하지 못하게 하는 경우에 그 감시를 피하도록 도와주는 소프트웨어입니다.


다른 경우라면 해킹이라 여기겠지만 이곳에서 정한 40여개 국의 경우 인터넷을 통해 인권신장을 일궈보자는 토론토의 인권주의자 교수님의 의지가 담겨 있죠.


원리는 이 소프트웨어를 저희나라나 미국처럼 자유롭게 인터넷에 접속할 수 있는 곳에서 실행할 경우 실행하시는 분의 컴퓨터가 서버가 되어 인터넷 감시가 삼엄한 이 40여개 국의 친구나 가족들에게 인터넷 어드레스를 보냅니다.


그러면 그 어드레스를 받은 감시당하는 국가의 친척이나 친구들이 소프트웨어를 실행한 컴퓨터를 통해 인터넷을 자유롭게 돌아다닐 수 있는 것이죠.


내용이 암호화 되므로 감시국가들의 감시프로그램들이 작동을 못할 것이고, 인터넷 접속권리를 되찾아 인터넷 언론의 자유를 얻게 되는 것이죠.


실질적으로 인터넷기술을 이용한 인권운동으로 앞으로 세계인권성장에 도움이 되길 빕니다.


참고로 여러 억압받는 나라의 인터넷 이용을 돕고자 하는 분은 위의 사이트에 가셔서 한번 살펴보세요. 당장은 버그가 있을지도 모르니 실행하는것을 추천해 드리지는 못하지만 몇개월 지나 안정적인 서비스가 가능해지면 인터넷 회선속도가 빠른 저희나라 사람도 작은 힘이나마 보탤수 있을 것 같네요 :)


 


And

Routing (라우팅, 루팅, 중계방식, 경로배정, 경로제어)

|

[ 데이타통신 ]

1. 개요

   Routing(라우팅)이란 네트워크 상에서 주소를 이용하여 목적지까지 메세지(패킷 등)를
   전달하는 방법을 체계적으로 결정하는 경로선택 과정을 말한다.  한편, 이 과정을 능
   동적으로 수행하는 장치를 Router 라고 부른다.


2. 라우팅 방식의 구분

  ㅇ 라우터끼리 직접 연결 및 간접 연결에 따라
     - 직접라우팅(Direct routing)   : 동일 SUBNET 내에서 데이터그램을 전달
     - 간접라우팅(Indirect routing) : 1 이상의 라우터를 경유하여 데이터그램을 전달

  ㅇ 경로 설정의 수동 및 자동 여부에 따라
     - 동적 라우팅
     - 정적 라우팅

  ㅇ 자치시스템(AS) 내부 및 외부 간에 정보전달 방식에 따라
     - 자치시스템 내부에서의 라우팅      :  RIP, OSPF, IGRP 등
     - 자치시스템 외부(상호)간의 라우팅  :  EGP, BGP 등

  ㅇ 기타
     - 고정 라우팅 (Fixed Routing)
     - 홍수 라우팅 (Flood Routing)
     - 랜덤 라우팅 (Random Routing)
     - 적응 라우팅 (Adaptive Routing)
     - 계층적 라우팅 (Hierarchical Routing)


3. 참조용어  ☞  라우팅 프로토콜


  [ 교환망 ]

1. 개요

   경로배정(루팅)이란 발신국으로부터 착신국에 이르기까지 호가 중계되는 방식을 말하
   며, 배정되어지는 회선을 루트(Route)라고 한다.


2. 루팅방식   ☞ 중계선군(Route)

  ㅇ 직접중계방식 (Direct Routing, DR)
  ㅇ 랜덤중계방식 (Random Routing, RR)
  ㅇ 우회중계방식 (Alternate Routing, AR)


3. 루팅

  ㅇ 직접루팅
  ㅇ 우회루팅
     - 계층적 루팅
     - 동적 루팅   : 망의 부하상태에따라 우회루트 선택
     - 고정 루팅   : 미리 정해진 우회루트를 선택


And

라우팅 용어들

|

packet(패킷)  : 제어 정보가 들어 있는 헤더와 사용자 데이터가 포함되어 있는 논리적인 정보 그룹이다. 패킷은 네트워크 계층 데이터 단위를 언급할떼 가장 자주 사용되는 용어이다


Header  : 데이터를 인캡슐레이션 할떼 데이터 앞에 넣는 제어 정보 .


WAN환경에서 encapsulation 방식


hdlc  :  Cisco장비와 Cisco장비간의 통신을 할떼 쓰이는 encapsulation 방식


ppp   :  Cisco장비와 타사 장비 또는 타사 장비와 타사 장비간의 통신을 할떼 쓰이는 encapsulation 방식


frame-relay  (프레임릴레이) :  점대점 연결로서 가상의 라인을 구축하는것.. 하나의 포트로 가상으로 여러개 포트를 만들어서 마치 여러개의 포트처럼 쓴다



LAN환경에서 encapsulation 방식


802.1q  : 스위치(타사제품), 라우터(타사제품)으로 LAN을 구성했을떼 스위치의 VLan과 통신하기 위한 방법


ISL  : (Cisco전용)의 Vlan환경에서 사용하는 encapsulation 방식



ABR : area를 두개이상 겹치는 라우터를 ABR이라 한다

area : 다른 area로 가기 위해서는 무조건 area 0 를 거쳐서 가야 한다.


DR : 자기가 대표로 경로 정보를 가지고 있다가 상대방 라우터가 경로 정보를 궁금해하면 정보를 준다


BDR : DR에 이상이 생길경우를 대비 해서 자기도 경로를 가지고 잇다가 DR이 이상이 생기면 자기가 정보를 가르쳐 준다


DR ORDER : DR , BDR을 제외한 모든 라우터를 DR ORDER라고 한다



static Routing (스태틱라우팅): 수동으로 라우팅 업대이트하는것


default Routing (디펄트 라우팅) : ip router 162.20.30.0 255.255.255.0 162.20.20.2 앞에건 자기가 업데이트할 서브넷 주소 뒤에건 자기가 나갈 넥스트홉

ip route 0.0.0.0 0.0.0.0 162.20.20.2  이건 브로드 캐스트를 날리나??? 뭐지??


administrative distance : 이건 신뢰도를 나타낸다 0에 가까울수록 더 신뢰한다는 뜻이다


dynavic Routing : 이건 자동으로 라우팅 업데이트를 하는걸로 RIP,IGRP, EIGRP, OSPF등이 있다


Distance-Vector 알고리즘 (디스턴스 벡터) : 이건 홉수를 기준으로 경로를 선출하는걸 말한다


Link-state 알고리즘 : 속도를 이용해서 경로를 선출 한다


뺑뺑이방지 하는법들 관련 용어


split Horizon  : 원레 패킷을 전송한 라우터에 같은 정보를 보내지 않음


Route Poisoning : 라우터의 디스턴스를 계속 줄어들게 설정함


Poison Reverse : Split Horizon 오버라이드

Hold-Down Timers : 정기적인 갱신 메세지로부터 보호함

Triggered Updates : 자체 라우팅 테이블에서 변화가 발생할떼 자동으로 갱신함


- FD(Feasible Distance) : 출발지 라우터에서 목적지까지 메트릭


- AD(Advertised Distance) : 넥스트-홉 라우터에서 목적지까지 메트릭

- 실제 EIGRP 메트릭은 FD이며, AD는 후속 경로를 선출할때 사용된다.


-BW(bandwidth) : 대역폭


스프릿 호라이즌 : 뺑뺑이를 막기 위해서 한번 받은곳으로 다시 업데이트를 보내지 않는것


priority : OSPF에서 DR선출 할떼 높은 priority 가 가장 높은 라우터를 DR로 선출 한다 (이건 임의로 조정 가능하다.) priority값이 가장 높은 경우 라우터 아이디 값으로 선출 한다 ..


vlan : 스위치에서 가상의 네트워크를 만드는것 하나의 스위치에 여러개의 vlan을 가질수 있고 다른위치에 있어도 자기 네트워크처럼 사용가능하다

subnet mask (서브넷 마스크) : 2진수로 앞에서부터 1씩 나열한 것으로 1부분이 네트워크 부분이고 0부분이 호스트 부분이다


wildcard mask (와일드카드 마스크) : 서브넷의 1부분을 0으로 표기한것 그런대 이것은 0부분이 네트워크 부분이고 1부분이 호스트 부분이긴 하지만.. 꼭 1이나 0이 연속으로 나올 필요는 없다    


authentication  :  인증 즉 보안 기능중에서 사람이나 프로세스의 신분을 확인해서 접속 여부를 결정하는 요소로 사용하는것을 말합니다..  영어로 말하자면 who are you? 정도가 된다.


ARP  :  IP주소를 이용하여 MAC주소를 학습하는 프로토콜


access list  :  라우터에 들어오거나 나가는 것을 제어하는것


ANSI :  american National Standards Institute (미국 국립 표준기구)의 약자로 주로 통신과 네트워킹 분야에 관여해서 국제표준 미국 표준을 개발하는 단체이다


Application layer (어플리케이션 계층) : OSI 7 계층 7번쩨 계층으로 전자메일 파일전송 터미널 에뮬 같은것을 담당한다


AS  :  하나의 네트워크 관리자에 의해 하나의 관리체제로 움직이는 영역 (여러개의 네트워크일수도 있다)


ASBR  :  Autonomous System Boundary Router 의 약자입니다. AS간의 연결을 윟나 라우터가 바로 ASBR이다


Bit  :  컴퓨터에서 사용하는 가장 작은 단위이다.. 8bit가 1byte이다 0과 1로 표현 된다.


BPDU  :  네트워크의 라우터 사이에서 일정한 간격으로 (2초정도) 서로의 정보를 주고받는것


broadcast  :  같은 broadcast 영역으로 모두다 데이터를 뿌리는것


unicast  :  1대1로 대이터를 주고 받는것


multicast  :  특정 그룹에 데이터를 뿌리는것


Buffer  : 전송중인 데이터를 임시보관하는곳


CIDR  :  Class를 나눈걸 무시한체 그 앞으로 서브넷을 나누는게 가능하다 .. 예 192.168.1.0 255.255.255.0을 255.255.0.0 이런식으로 나눌수 있다


VLSM  :  192.168.1.0 255.255.255.0  이런걸 192.168.1.0  255.255.255.1111 0000 이런식으로 나눌수 있다


collison  : 이더넷에서 두 노드가 동시에 전송하게 되면 네트워크 상에서 서로 충돌이  발생하게 되는대 이를 콜리전이라고 한다 . 콜리전이 발생하면 전송 노드는 이 패킷을 다시 전송해야 한다


collison domain  :  이더넷에서 서로 동시에[ 전송하면 충돌이 발생하는 영역을 말한다 .. 허브나 리피터로 연결된 모든 노드들은 서로 같은 콜리전 도메인에 있다고 할수 있다


congestion  :  네트워크 용량을 초과하는 트래픽이 발생할 경우 네트워크에 컨제션이 발생했다고 한다


 frame  :  데이터 링크계층(2계층 : Mac address) 에서 전송되어지는 단위를 프레임이라 부른다


firewall  : 보통 방화벽이라고 부르며 네트워크의 보안을 위해 설치하는 보안 장비이다 ..


Full mesh  : 각네트워크 장비들모두가 직접연결 회선을 가지고 있는 구조를 말한다 .. 무쟈게 비싸고 안정적이다


Header  : 데이터를 인캡슐레이션 할떼 데이터 앞에 넣는 제어 정보를 말한다


Hello packet  : 라우터가 다른 라우터들이 살아 있는지를 확인하기 위해서 사용하는 패킷이다


Hello  protocol  :  OSPF에서 라우터들간의 통신에 사용하는 프로토콜이다


GUI  :  Graphical User interface  의 약자로 아이콘이나 그림으로 모든 명령을 수행할수 있는것을 말한다 ..


CLI  : command Line Interface  의 약자로 커멘드로 명령을 수행하는것을 말한다


Fardware address  : Mac address 를 다르게 부르는 말입니다..


hop count  : 두 통신 매체 사이의 거리를 표시하는 방식으로 라우터를 몇개 건너 뛰어서 통신을 하는가에 따라 카운터가 올라간다


HTTP  : Hypertext Transfer Protocol의 약자입니다. 웹에서 파일 전송시에 사용하는 프로토콜


ICMP  :  Internet control Message Protocol의 약자로 , 오류를 보고하는 IP패킷 프로세싱과 관련된 다른 정보를 제공하는 네트워크 계층 인터넷 프로토콜이다 .. 대표적으로 Ping 이 있다


IPv6  : IP version 6 의 약자이다 현제 버전의 (버전 4) 새로운 아이디 체제이다 128비트이다


Link-state routing algorithm (링크 상태 라우팅 알고리즘)  :영역안의 모든 라우터의 링크정보를 관리하는 알고리즘으로 OSPF, IS-IS  , NLSP등이 여기에 속한다 . 링크의 경로변화를 빨리 인식하고 대형 네트워크에서 적합하지만.. 메모리 소비가 많고 라우터가 CPU를 많이 사용하기 떼문에 대형라우터에서 사용해야 한다


Load Balancing (로드 벨런싱) : 전송에 있어서 여러개의 경로를 통해 데이터를 보냄으로서 전송의 속도를 올리는 방식


Loopback test(루프백 테스트) : 신호를 보냈다가 그 신호가 통신 경로상의 임의의 위치에서 발신 장치를 향해 돌아오게 하는 테스트로 주로 전용 회선 점검시 DSU/CSU에서 사용한다


MAN (metropolitan-area Network (거대 도시 지역 네트워크)의 약자로 한대도시 지역 전체에 구성되어 있는 네트워크이다 .. LAN과 WAN의 중간정도로 보면 된다


MTU  :  Maximum Transmission Unit(최대 전송 단위)의 약자로 , 특정한 인터페이스가 처리할수 있는 최대 패킷 크기. 바이트 단위로 표시된다 ..


NVRAM : nonvolatile RAM(비휘발성 RAM)의 약자로 , 장치의 전원을 끈 상태에서도 내용을 그대로 보존하는 RAM이다 ..


Octet(옥텟)  : 8비트를 의미한다 ..


Qos  : Quality of Service(서비스 품질)의 약자로 , 전송품질과 서비스 가용성을 알려주는 전송 시스템 수행 성능 척도


Quary(질의) :  일부 변수나 변수 세트의 값에 관해 물어보는데 사용되는 메시지 이다..


Relay  :  둘이상의 네트워크나 네트워크 시스템을 연결하는 장치를 가리키는 OSI용어로 , 데이터 링크 계층 릴레이는 브릿지이고, 네트워크 계층 릴레이는 라우터가 된다 ..


Routing metric  :  라우팅 알고리즘이 한 경로가 다른 경로보다 더 낫다고 판단하는 방식이다.. 홉카운트 신뢰도 경로비용등이 있다 .. 간단하게 metric이라고도 한다


멀티플렉싱  : 멀티플렉싱은 여러 다른 상위 계층의 데이터 덩어리들이 네트워크 자원을 공유하는것을 말한다 .. 링크와 대역폭을 서로 다른 데이터들이 조금씩 나눠서 사용하는것이다.


세그먼트  : TCP가 나눈 데이터 단위


desirble 모드란 etherchannel 에서 상대방이 모드가 auto이거나 desirble 모드이면 협상을 한다


stub  :  show ip route  를 쳤을떼 외부 경로가 IA로 표시되어서 라우팅 테이블이 늘어나는대 .. stub를 선언하면 , 외부경로를 업데이트 하지 않게 되기 떼문에 .. 라우팅 테이블이 줄어 들게 된다 .. 그리고 default 경로가 있기 떼문에 통신하는대는 문제가 없다 ..


미디어 트랜스레이션  :  2계층 주소는 한 네트워크에서만 의미가 있기 떼문에 다른 네트워크로 갈려면 새로운 2계층 주소를 받아야 하는대 이렇게 새로운 2계층 주소로 변환하는 작업을 미디어 트랜스레이션이라고 하고 라우터가 2계층에서 수행한다


디스턴스벡터 라우팅 프로토콜 (distance vector)  :  대표적인 라우팅 프로토콜로는 RIP,  EIGRP  , BGP등이 있다 이 프로토콜들은 인접 라우터에게 정보를 전송할떼 자신의 메트릭값이 얼마인지 알려준다.. 그리고 이 프로토콜들은 자동축약(auto summary)  의 특징이 있다  


자동 축약(auto-summary)  :  주네트워크 경계에서는 주 네트워크만 광고한는거


IGP  :  동일 AS 내부에서 사용되는 라우팅 프로토콜을 말한다 .. 대표적으로 RIP , EIGRP,  OSPF등이 있다


EGP  :  서로 다른 AS간에 사용되는것을 말한다 ..  EGP가 여기에 해당한다


metric  :  최적경로를 선택하는 기준을 메트릭이라 한다


롱비스트매치  :  기본적으로 라우터는 서브넷이 조금이라도 더 매치된것을 보고 비트가 높은거만 본다


TTL   :  대이터가 너무 오래 남아 있게 되면 네트워크상에 무리가 오게 돼는대 .. TTL값이 0이 되면 버려지게 된다.. 라우터를 한번 넘어 갈떼마다 1씩 줄어들게 된다 ..


Qos  : Qos는 어플리케이션 중요도에 따라 서비스의 수준에 차이를 두어 한정된 WAN대역폭을 정책적으로 관리하는 기술


And
prev | 1 | ··· | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ··· | 43 | next