CPU 구조 - 32-bit vs 64-bit

2014. 10. 23. 13:18 from Computing
출처


컴퓨터에서 32 bit 가 뭐고 64 bit 가 뭔가 ?
먼저 memory 에 대해서 말해보겠다





Register 

메모리가 값을 가지고 있을 때, 주소를 가진다.
네 가지 숫자를 가진다면 접근하기 위해서 네 개의 주소가 필요하다.

이 때 cpu 는 register 에 주소를 저장하여 메모리 주소를 찾아간다.
이게 2bit 면 2의 2승=4 가지의 주소를 가진다.

즉, Register 의 bit 수 만큼 CPU가 메모리에 접근가능한 수가 증가한다.

16 bit register 는 2의 20 승   => 1MB 메모리 접근 (limit) 
32 bit register 는 2의 32 승은 => 4GB 메모리 접근 가능하다는 것

메모리 제한은 CPU의 register 때문에 온다. 




Instruction set 

은 cpu 에서 어떤 작업을 수행할 때 지시하는 code 다
add, decrement, loop 등을 코드값 1000, 1001, 1100 등으로 나타낸다

다른 CPU 간에는 instruction set 이 호환되지 않는다, 가령, Intel 8086 과 Motorola 68000 간은
마치 영어와 프랑스 어간에 이해가 안되는 것 처럼 호환이 안된다고 할 수 있다.








Intel 8086 은 16 bit 이다
80386 은 32 bit  register 와 32 bit instruction set 을 가진다. (내부적으로 16bit instruction set도 호환된다)

Pentium 도 32bit 다

Itanium 는 완전히 다른 구조를 가진다. 
(IA64 : Intel Architecture 64) 
64 bit register 와  64bit instruction set 을 가진다.
그러나 64 bit instruction set 은 32 bit 와 호환되지 않는다. 

여기서 프로그램 호환 문제가 있으니, 
인텔이 별도의 번역하는 device 를 추가해서 32 bit instruction set 으로 호환시켜 줄 수 있도록 한다. 



IA32 는 Intel Architecture 32 다. 
X86 도 32 bit
IA64 는 Intel Architecture 64 다
X64 도 64 bit







'Computing' 카테고리의 다른 글

CPU 아키텍쳐를 알아보자  (0) 2014.10.23
Posted by FindZone :

CPU 아키텍쳐를 알아보자

2014. 10. 23. 13:17 from Computing
CPU 에서 어떤 일이 일어나는지 알아보겠습니다.
이 내용은 Scott CPU 라는 것이며, 현대의 CPU 구조는 다를 수 있습니다.
CPU 구조의 설명을 위한 자료이니 참고하기 바랍니다.

출처:
http://www.youtube.com/watch?v=cNN_tTXABUA&list=PLujhvpOxNl1PncvpZD7mWTIhA1wX0aP2W



마더보드에는 cpu 가 장착되며, 컴퓨터의 컴포넌트 간을 연결해준다
오른쪽에는 RAM 이 있다. Random Access Memory 을 뜻하며, CPU에 의해 수행되는 모든 data 를 가지고 있다
CPU 와 RAM사이에 어떤 동작이 일어나는지 살펴보자 

RAM 은 주소와 데이터로 이루어지는데, 주소(회색부분) 을 가지며, 각 주소는 data(흰색부분) 이다
CPU 는 RAM 으로 보통 각각의 데이터를 순서대로 요청하고 처리한다 
하지만 순서와 다르게 처리하도록 CPU 가 요청 받을 경우에는 그렇게 할수 있다.
이게 바로 RAM 이라고 부르는 이유이다(Random Access Memory)

즉, Data는 필요하면 랜덤하게 접근될 수 도있고, 순서대로 접근할 수도있다.


컴퓨터가 처음 프로그램을 구동하면, 그것이(프로그램?)  그 프로그램을 받기 위해서 주소를 RAM에 보낸다.
"enable" 이 켜지면, 어떤 데이터가 있던 그것을 cpu 로 가져온다. 
그 데이터는 CPU 에서 처리가 된다
그 다음 주소값이 있으면 "enable" 켜지고, 또 다른 데이터를 가져온다

이번에 CPU가 데이터를 RAM에 저장하려고 하는경우에는
"set" 을 켠다. 
 그럼 새로운 데이터는 기존의 값을 엎어치게된다.





RAM에 데이터는 모두 0,1 로 이루어져있지만, 각기 다른 의미를 가지는 데이터를 가진다.
 중요한 의미를 가지는 instruction 이 있다. 이것은 CPU가 어떤 작업을 할지 지시한다.
그리고 , "number" 가 있다. 
그 다음에는 "주소" 가 있다. 주소 자체가 데이터인 것이다.
이 주소는 여러가지로 쓰인다. 결과 데이터를 외부장치로 보낼때 주소값으로 쓰인다.(프린터나 모니터..)
그리고 "letter" 가 있다. 글자를 모니터에 표시할때를 생각하면 된다. 글자역시 0,1로 이루어진다.
이 값은 arbitrary 다. 01100001 을 a 로 쓰는 식.



Instruction 에는 "LOAD", "ADD", "STORE", "COMPARE", "JUMP IF", "JUMP" , "OUT", "IN" 등이 있다
프로그래머가 순서대로 진행하지 않고, RAM의 다른 주소로 옮겨갈 때 JUMP instruction 을 쓴다.
외부 장치로 내보낼때는 "OUT", 키보드 같은 외부장치에서 입력받을 때는 "IN" 을 사용한다. 

그럼 gussing 게임 프로그램을 생각해보자.
첫번째 데이터에 "LOAD" instruction 이 먼저 있고, 다음 데이터에 숫자 "9" 가 있다.
이에 따라 숫자 9를 메모리에서 로딩해서 cpu 로 가져간다.
그리고 IN, keybord 값에 따라 키보드에서 값을 입력받는다.
그리고 "COMPARE"에 따라 9와 입력값을 비교한다. 
두 값이 같지 않으면 계속 반복하고, 같으면 다른 주소로 jump 한다.

이제 CPU 안쪽을 살펴보자


CPU 안에는 Control unit 과 ALU 가 있다.
Control unit 은 선장처럼 모든 걸 관장한다. ALU 는 연산을 담당한다.
더하고, 비교하는 등

input A, B 가 있으며, 
Control unit 은 RAM에서 instruction 을 가져온다.
작업의 종류가 ALU 로 전달된다.
 



그리고 ALU 의 출력쪽에는 register 가 연결되어있다.
이는 RAM과 비슷한 동작을 하는데, 값을 저장하고 꺼낼수 있다. 
intruction 이 진행중일 때, 값을 임시로 저장하므로써 CPU 의 속도를 빠르게한다.




Register에도 "set" 이 세팅되지 않으면 값이 저장되지 않는다. RAM과 마찬가지.
그리고 "enable" 이 세팅되어야 register의 값이 밖으로 보내진다. CPU bus 로.
앞에서 마더보드에서 설명했듯이 cpu bus 는 요소간을 연결하는 선들의 집합이다.

그리고, 다른 register 도 버스에 연결되어있다.
이들 register 에는 instruction에 의해서 저장된 값들을 가지고 있다.
 네 개의 register 는 값을 저장하는데 쓰인다.




그리고 이 register 의 값은 temporary register 로 저장될 수 있다. 
temp register는 "enable"이 없고, "set" 만 있다. 오로지 ALU 로 내보내기만 하기 때문이다. 
다른 register랑 충돌하지도 않음.
input A 는 temp register 없이 직접 버스에 연결된다.

 



그리고 "instruction" 을 받기 위해서 "instruction " register 가 있다.
이 지시는 "type of operation" 을 통해서 ALU 로 전달된다.
그리고 "COMPARE" instruction 이 있을때, flags 가 쓰인다.
A가 크다. 같다. set. 등으로 표시를 할 수 있다.
flag 가 "set"이면 compare를 마치고 다음 지시를 따른다. 가령 jump.
jump if 등을 할 때는 cpu 내부적으로 instruction과 flag 를 같이 사용한다



그리고 또 하나의 중요한 regiser.
 'instruction address' register 를 사용하여 다음 instruction 이 
RAM의 어떤 주소에서 올게 될지를 알게 된다.



"jump if " instruction 을 받고, flag 가 equal 이면, jump 를 트리거한다.
이 때 jump 를 하게 되면 "instruction address" register 로 다음 데이터 조각(주소) 을 넣는다.
그리고, 해당 주소값은 enable 하게 되면 wire로 신호가 흘러간다.



또 하나 'memory address' register 가 있다.
set 만 있어서, set으로 값을 저장하면 그때 RAM의 주소로 값이 들어간다.

그리고 다음 지시에서 출력을 한다면 외부로 가는 wire를 사용한다.
최근의 cpu 는 초당 이런 작업을 10, 100, ~ billion까지도 하게 된다.
현대의 cpu 는 이런 scott cpu 보다 더 복잡하지만 기본은 구조는 마찬가지라고 보면된다.

  

크게 보자. 오른쪽 두개는 set, enable wire. 
왼쪽 네개는 in, out wire.
위에 8개는 address wire
아래 8개는 data wire 다



다시 확대하면 이 그림이 된다.
이제 CPU동작을 알게되었다. 
wire로 전기신호를 보내면서 값을 cpu 와 ram간에 주고받는다.

- 불펌금지 -



'Computing' 카테고리의 다른 글

CPU 구조 - 32-bit vs 64-bit  (0) 2014.10.23
Posted by FindZone :
How Authentication Center (AUC) Works In GSM

When we talk about Mobile Business then its worst useful without authentication means to make Network as business all user required to be authenticate lets understand how authentication done in gsm.


Authentication Center (AUC)

The AUC is a processor system, it performs the “authentication” function. It will normally be co-located with the Home Location Register (HLR) as it will be required to continuously access and update, as necessary, the system subscriber records.

The AUC/HLR centre can be co-located with the MSC or located remote from the MSC. The authentication process will usually take place each time the subscriber “initializes” on the system.

인증센터 (AUC) 는 인증 기능을 수행하는 프로세스이다. 보통 HLR 과 함께 있다.
AUC/HLR 센터는 MSC 와 같이 위치하거나, MSC 와 떨어져서 위차할 수 있다. 인증 절차는 가입자가 보통 시스템을 “초기화” 할때마다 일어난다.





Authentication Process

인증절차 관련해서, VLR 이 인증에 필요한 모든 정보(Kc, SRES, RAND ) 를 가지고 있다고 가정한다. 정보가 없으면 HLR 에 요청할 것이다. 

1. 트리플(Kc, SRES,  RAND ) 의 정보가 VLR 에 저장된다
2. VLR 이 MSC/BSS 를 통해서 MS (비암호화된) 로 RAND 를 보낸다
3. MS 가 A3, A8 알고리즘, 그리고 MS SIM카드에 저장된 Ki 를 사용하여, VLR에서 받은 RAND를 이용하여 SRES와 Kc 를 계산해낸다
4. MS 가 SRES (비암호화된) 를 VLR 로 보낸다
5. VLR 에서, SRES 의 값이 단말에서 받은 SRES와 비교된다. 만약 두 값이 일치하면, 인증이 성공한다
6. 만약 cyphering 이 사용되면, 할당된 트리플에서 Kc 가 BTS로 보내진다
7. 단말은 RAND, A8 그리고 SIM에 있는 Ki 로부터 Kc 를 계산해낸다
8. Kc , A5, GSM hyperframe number를 사용하여, MS 와 BSS 사이에 암호화가 이제 air 단에 일어날 수 있다. 

트리플은 다음에 의해서 AUC에서 생성된다 
     . RAND : 임의로 생성된 숫자
     . SRES : A3 (RAND, Ki) 에서 얻어진다
     . Kc : A8  (RAND, Ki) 에서 얻어진다
     . A3 = IMSI 의 할당과 SIM 카드의 생성시에 정의된 1~16 까지의 가능한 알고리즘
     . A8 = IMSI 의 할당과 SIM 카드의 생성시에 정의된 1~16 까지의 가능한 알고리즘
     . Ki = A3, A8 의 버젼과 함께 랜덤으로 할당된 인증키

처음 가입자가 전화를 할때, full 인증 절차가 일어난다. 
그러나, 주어진 시스템 제어 기간 내에서, 혹은 단일 시스템의 사업자 망내에서 시도된, 그 다음 호에 대해서는 처음 인증에서 생성된 데이터를 여전히 사용할 수 있기 때문에, 인증이 필요하지 않을 것이다. 


'모바일 / 서비스' 카테고리의 다른 글

단말기 SIM, Ki인증  (0) 2014.10.02
IMEI, IMSI, MSISDN 단말식별자  (0) 2014.10.02
VoLTE overview #2  (0) 2014.06.10
VoLTE 알카텔 루슨트 #1  (0) 2014.06.10
VoLTE | EPS의 이해  (0) 2014.06.10
Posted by FindZone :


subscriber identity module or subscriber identification module (SIM) is an integrated circuit that securely stores the international mobile subscriber identity (IMSI) and the related key used to identify and authenticate subscribers on mobile telephony devices (such as mobile phones and computers).

A SIM circuit is embedded into a removable plastic card. This plastic card is called a "SIM card" and can be transferred between different mobile devices. A SIM card follows certain smart card standards.[1] SIM cards were first made the same size as a credit card (85.60 mm × 53.98 mm × 0.76 mm). The development of physically smaller mobile devices prompted the development of smaller SIM cards where the quantity of card surrounding the integrated circuit is reduced.

A SIM card contains its unique serial number (ICCID), international mobile subscriber identity (IMSI), security authentication and ciphering information, temporary information related to the local network, a list of the services the user has access to and two passwords: a personal identification number (PIN) for ordinary use and a personal unblocking code (PUK) for PIN unlocking.


Authentication key (Ki)
Kni 는 모바일 망에서 SIM 을 인증하는데 사용되는 128 bit 값이다. 각 SIM 은 사업자가 할당한 유일한  Ki 를 가진다. 
Ki 는 또한 사업자 망에 Database( 인증 센터나 AuC 라는 용어를 쓴다) 에 저장된다. 
Ki 는 smart-card interface 를 사용해서 얻을 수 있도록 허용되지 않게 디자인되어 있다. 

SIM 은 Run GSM 알고리즘이라는 기능을 제공한다. 폰은 Ki 로 인증될 수 있도록 data를 SIM 에 전달해준다. 이것이 SIM을 필수로 사용하게 만든다. (Ki가 추출되거나, 사업자가 드러내지 않는 한). 실제로, Ki 로부터 SRES_2 를 연산하는 GSM 암호화 알고리즘은 Ki가 추출되거나, 복제된 SIM 을 만들 수 있는 어떤 취약성을 가진다. 


Authentication process:인증절차 

1. 단말이 시작되면,  SIM 에서 IMSI 를 얻는다. 망 접속과 인증을 요청하면서, 이것을 사업자 망에 전달한다. 
     단말은  SIM이 이 정보를 드러내기 전에, SIM 카드로 PIN 을 전달해야 할 수도 있다. 

2. 사업자 망은 IMSI, 그리고 (IMSI와 관련된) Ki 에 대해서 database 를 찾는다

3. 사업자 망이 임의의 숫자(RAND) 를 생성한다. 그리고 그것을 Ki 로 서명하여, 서명된 응답 1 (SRES_1) 을 연산한다.

4. 사업자 망은 RAND 를 단말 (SIM) 에 보낸다. SIM 카드는 그것을 Ki 로 서명하여, 서명된 응답 2 ( SRES_2 ) 를 만든다. 암호화 키 Kc 와 함께 그것(SRES_2) 을 단말에 준다.  단말이 SRES_2 를 사업자 망에 전달한다. 

5. 사업자 망은 이제, SRES_1 과 단말로 부터 받은 SRES_2 를 비교한다. 두 값이 일치하면, SIM 이 인증되고, 단말의 망 접속이 허용된다.
     Kc 는 단말과 망 사이에 이후의 다른 통신을 암호화 하는데 사용될 수 있다. 


'모바일 / 서비스' 카테고리의 다른 글

단말기 AuC 인증  (0) 2014.10.02
IMEI, IMSI, MSISDN 단말식별자  (0) 2014.10.02
VoLTE overview #2  (0) 2014.06.10
VoLTE 알카텔 루슨트 #1  (0) 2014.06.10
VoLTE | EPS의 이해  (0) 2014.06.10
Posted by FindZone :
IMEI
IMEI 는 국제 모바일 단말 장비 식별자이다. 보통 유일값으로 3gpp (가령, GSM, UMTS, LTE) 단말을 식별한다. 
보통 단말의 배터리 모듈안에 인쇄되어 있고, 화면으로 확인할 수 있다. 

IMEI 는 유효한 단말을 식별하기 위해서 사용된다. 따라서, 도난된 폰으로 망에 접속하는 것을 막기 위해서 사용될 수 있다. 
가령, 만약 단말기 도난당하면, 단말 주인이 망 사업자에 연락해서 IMEI 번호를 이용하여 단말을 “blacklist”에 올릴 수 있다. 
이로써 단말을 망에서 사용하지 않는 것으로 되게한다. 폰의 sim 이 바뀌던 바뀌지 않았던간에. 

IMEI 는 단말을 식별하기 위한 것이며, 가입자와 영구, 반영구 관계를 가지지 않는다.
대신, 가입자는 다른 어떤 핸드셋으로도 옮길 수 있는 SIM카드에 저장된 IMSI 번호로써 식별된다. 



IMSI
IMSI 는 국제 단말 가입자 식별자이다. IMSI 는 셀룰러 망의 사용자를 식별하기 위해 사용되며, 모든 셀룰러 망에서 유일한 식별자이다. 64bit 필드로 지정되며, 폰에서 망으로 보내진다. 그것은 또한 HLR 에 있는 (혹은 VLR 에 복사된) 단말의 다른 상세정보를 얻기 위해서 사용된다. 
라디오 interface 에서 외부인이 가입자를 식별하거나, 추적하는 것을 막기위해서, IMSI 는 가능한 드물게 보내지며, 대신 랜덤하게 생성된 TMSI 가 보내진다. 

..
IMSI 는 보통 15 자리 숫자로 표현되지만, 더 짧을 수도있다. 가령. MTN south africa 의 경우는 14자리로 보여진다. 
처음 3자리는 MCC 이다(모바일 국가 코드). 그 다음은 2자리 혹은 3 자리의 MNC (모바일 네트워크 코드) 가 따라온다. 
MNC의 길이는 MCC의 값에 따라 달라진다. 나머지 자리수는 모바일 가입자 실별 번호이다. 망내에서 가입자 기반으로  구분된다. 

Examples of IMSI numeric presentation[edit]


The MSISDN follows the numbering plan defined in the ITU-T recommendation E.164.

MSISDN 은 GSM 이나 UMTS 모바일 네트웍에서 가입자를 식별하는 유니크한 값이다. 모바일/셀룰러 폰에서 SIM 카드에 있는 단말 번호이다. 
약어 중에 일반적인 해석은 "모바일 가입자 통합 서비스 디지털 네트워크 숫자” 이다.

MSISDN 는 IMSI 와 함께 가입자를 식별하는데 사용되는 두 가지 가장 중요한 숫자이다. 후자(IMSI)는 SIM 에 저장된다. 그리고 각 IMSI 는 유일하게 단말을 식별한다. 반면, 전자(MSISDN)는 가입자에게 콜을 라우팅하기 위해서 사용되는 숫자이다. 
IMSI 는 종종 HLR 에 키로써 사용되며, MSISDN 는 단말에 전화를 연결하기 위해서 보통 다이얼하는 숫자이다. SIM 은 바뀌지 않는 유니크한 IMSI 를 가지지만, MSISDN 은 때로 바뀔 수 있다. (가령, 다른 MSISDN 이 그 SIM 에서 사용될 수 있다.)


MSISDN Format[edit]

The ITU-T recommendation E.164 limits the maximum length of an MSISDN to 15 digits. 1-3 digits are reserved for country code. Prefixes are not included (e.g., 00 prefixes an international MSISDN when dialing from Sweden). Minimum length of the MSISDN is not specified by ITU-T but is instead specified in the national numbering plans by the telecommunications regulator in each country.

In GSM and its variant DCS 1800, MSISDN is built up as

MSISDN = CC + NDC + SN
CC = Country Code
NDC = National Destination Code, identifies one or part of a PLMN
SN = Subscriber Number


In the GSM variant PCS 1900, MSISDN is built up as

MSISDN = CC + NPA + SN
CC = Country Code
NPA = Number Planning Area
SN = Subscriber Number


The Country Code identifies a country or geographical area, and may be between 1-3 digits. The ITU defines and maintains the list of assigned country codes.




For further information on the MSISDN format, see the ITU-T specification E.164..


'모바일 / 서비스' 카테고리의 다른 글

단말기 AuC 인증  (0) 2014.10.02
단말기 SIM, Ki인증  (0) 2014.10.02
VoLTE overview #2  (0) 2014.06.10
VoLTE 알카텔 루슨트 #1  (0) 2014.06.10
VoLTE | EPS의 이해  (0) 2014.06.10
Posted by FindZone :

IPv6 변환기술

2014. 9. 6. 18:21 from 네트워크
출처 : Transitioning-to-IPv6-for-SP_GA-TB-380-00
Brocade white paper 


Dual Stack

IPv4와 IPv6 를 지원하는 양단간에 dual stack 네트웍은 궁극적인 목표이지만,  패킷 경로에서 많은 라우터, 스위치, 서버, 어플리케이션들 때문에, 망에서 모든 장비에서 두개의 프로토콜을 지원하는 것은 비현실적이다. 그러나 백본과 aggregation 라우터들을 지원하는 서비스에서 dual stack 기능을 구축하는 것은 논리적인 첫 단계이다. 이들 망은 높은 수준의 신뢰도와 기능으로 프로토콜 둘 다를 지원하는 것이 요구되기 때문이다. 
Dual Stack 은 두개의 Ipv4 , Ipv6 가 동일 망에 동시에 동작한다. 터널링이나 변환이 없기 때문에, 도입이 쉽고, 관리와 문제 해결이 쉽다.





장점
. Ipv4 망과 동일 토폴로지 이용가능
. 쉬운 도입

단점
. 도입된 Ipv4 capability와 일치되는 Ipv6 capability
. 오래된 라우터는 제한된 IPv6 기능을 가진다
. 오래된 라우터는 소프트웨어로 IPv6 를 포워드 할 수도 있다

IPv6 터널링

IPv6 터널링은 기존의 IPv4 망이나 MPLS 망을 통해서 IPv6 패킷을 encapsulate 하는 메커니즘이다. 그리고 IPv4 와 IPv6 둘다를 지원하는 터널 말단에 라우터만을 필요로한다.
다른 라우터에는 어떤 변화도 필요없다. IPv6 도입의 처음 단계에 있는 서비스 제공자에게, 터널링은  IPv6 “섬” 과의 연결을 가능하게 하고, 전체 망의 업그레이드 없이 IPv6 의 빠른 도입을 가능하게 해준다. 
이런 방식으로, IPv6 는 망에서 에지 라우터만으로 고객에게 IPv6 서비스를 제공할 수 있다. 

몇개의 터널링 기술들이 IPv6 로의 변환을 도와주도록 개발되었다. 

. IPv4 을 IPv6 로 터널링 : manual 그리고 6to4 (자동)터널링
. MPLS 를 IPv6 로 터널링 : 6PE

변환 기술로 소개되었지만, 이미 성숙단계로, 호환 가능하고, 넓게 도입 되어있다. 다른 터널링 메커니즘과 마찬가지로, 이점은 도입이 빠르고 쉽다는 것이다. 
그러나, 터널된 패킷의 내용을 이해하지 않는 기존 네트워크 인프라에 의존적이다. 따라서, 터널링은 IPv6 QoS, ACL, 네트워크 관리, 모니터링, 계정, 문제해결에서 제한된 지원만을 제공할 수 있다. 

장점
. 코어 망에 변화가 필요없다
. 서비스를 제공하기 위해서 라우터에 IPv6 만 enable 하면된다.

단점
. IPv4 망과 다른 토폴로지
. 관리의 복잡함
. 많은 수의 터널링에 대한 확장 한계
. 제한된 종단간 IPv6 지원

Manual 터널링

수동으로 설정한 터널은 두개의 IPv6 망간에 static point-to-point 연결을 제공한다. 
IPv6 주소는 터널 인터페이스에 수동으로 설정된다. 그리고 수동으로 설정된 IPv4 주소는 터널의 시작,목적지에 할당된다. 
연속적인 IPv6 망을 위해서 Static, dynamic 라우팅 프로토콜이 동작될 수 있다. 



Automatic 6to4 터널링

자동 6to4 터널은 IPv4 망에 대해서 IPv6 들 사이에 transient link 를 연결한다. 필요할 때, 한 라우터가 자동 6to4 터널을 가지고 다른 라우터로 터널을 맺을 수 있다. 
수동으로 터널 목적지를 설정하는 대신, 자동 6to4 터널이 목적지 라우터의 글로벌 유일한 IPv4 주소를 가지고, 설정된 static IPv6 prefix 를 사슬을 이음으로써, 글로벌로 유일한 6to4 prefix 를 만들어낸다. 더이상 필요가 없어지면, 라우터들이 터널을 없앤다. 



IPv6 Provider Edge routers(6PE)

MPLS 망을 이용하는 서비스제공자에 대해서, 6PE 는  IPv6 망이 IPv4/MPLS 망위에서 서로 통신하게 해준다. 이런 터널링 구현은 코어망에 업그레이드나 설정변경 없이 가능하다. 
포워딩이 IP헤더 자체보다 lable 에 따라서 포워딩하기 때문에, IPv6 도입에 비용 효과적인 전략이다. 







'네트워크' 카테고리의 다른 글

Frame Relay의 이해  (0) 2014.06.11
Posted by FindZone :



apt-get update  명령과 apt-get upgrade 명령

apt-get 명령은 ubuntu 와 같은 debian 계열의 리눅스에서 패키지를 설치할 때 쓰이는 명령입니다. 
apt-get install 은 패키지 설치, apt-get remove 는 패키지 제거 할때 쓰는 것이지요.
이 글에서는 apt-get update와 upgrade, dist-upgrade 에 대해서 알아보겠습니다.


apt-get update 명령

실제로 새로운 s/w 버젼을 설치하지는 않는다. 
새로운 버젼의 패키지와 그들의 종속/영향도에 대한 정보를 얻기 위해서, Repository(저장소) 로 부터 패키지 리스트를 다운 받아서 그것들을 “update” 한다

 * 이 명령은 소스로부터 패키지 index 파일들을 다시 동기화 하는데 사용된다. 이용할 수 있는 패키지의 index 들은 /etc/apt/sources.list 로 지정된 위치로부터 petch 한다. update 는 항상 upgrade 나 dist-upgrade 를 하기 전에 수행되어야 한다. 

apt-get upgrade 명령

APT 가 apt-get update 의 방식으로 새로운 버젼에 대해서 알게되면, 장비에 존재하는 패키지의 새로운 버젼을 fetch 한다 .

* 이 명령은 (/etc/apt/source.list 에 열거된 소스로부터 ) 현재 시스템에 설치된 모든 패키지들의 가장 최신 버젼을 설치하기 위해 사용된다. 현재 설치된 패키지가 새로운 버젼을 받아서 설치된다. 어떤 상황에서도 설치된 패키지가 제거되거나, 기존에 설치되어 있지 않은 패키지가 설치되지는 않는다.  다른 패키지의 상태를 바꾸지 않고 업그레이드 될 수 없는 최신 버젼 패키지는 현재 버젼으로 남게 된다.이용할 수 있는 최신버젼의 패키지를 알수 있도록  update 명령을 먼저 실행해야 한다. 

Used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list(5). Packages currently installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, nor are packages that are not already installed retrieved and installed. New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version. [Emphasis mine] An update must be performed first so that apt-get knows that new versions of packages are available.

apt-get dist-upgrade 명령

apt-get 과 같은 작업을 하지만, 더 지능적으로 영향도를 다룰 수 있다. obsolete(더이상 안쓰는) 패키지들을 제거하거나 새로운 패키지를 추가한다. 

* 똑똑한 충돌 해결 시스템을 가진다. 필요하면 덜 중요한 패키지에 대한 비용?으로 가장 중요한 패키지를 업그레이드 하려한다. 
/etc/apt/sources.list 파일이 원하는 패키지 파일들을 받는 위치 리스트를 포함한다. 또한 apt_preference 를 보면 개별 패키지에 대한 덮어쓰기 메커니즘이 나와 있다. 







Posted by FindZone :

Never Sacrifice Performance for Virtualization

네트웍 병목현상과 요구사항이 가상화로 인해 증가한다. 무겁게 가상화된 환경에서의 cloud와 contents provider 새로운 네트워크 성능의 필요를 다루고/대비하고 있다. 서버들과 같은 전통적인 워크로드는 점점 높은 밴드위스 연결을 관리해야 한다. cloud 와 content 제공자는 또한 더 많은 밴드위스를 필요로 하는 서비스들 혹은 고성능의 동-서 간 통신에 의존적인 네트워킹 기능을 가상화하는 서비스들을 도입하기를 원한다. 




6WINDGate 패킷 프로세싱 소프트웨어는 cloud contents providers 대한  (그들의 데이터센터의 전문기술을 이용하고 증가된 서비스들과 상품들을 제공하귀 위해서 증가된 요건을 만족시킨다

- 한 서버 내에서 10 밀집한/집합한 밴드위스를 제공하면서 VM 밀도를 증가시킨다
- 고 성능 HTTP기반 워크로드
- 비용 효율적인 네트워크 기능들(라우터, 방화벽, 로드 밸런서 )
- 새로운 value added 서비스들(DDos 보호, object 스토리지 )




출처:http://www.6wind.com/solutions/cloud-and-content-providers/data-center-virtualization/


High Performance Virtual Networking Enables New Services

cloud
contents provider 대한 6WINDGate 소프트웨어 솔루션은 표준 intel 서버들과 DPDK 위에서 개방형, 고성능 software 스위치 중심으로 설계되었다.  6WINDGate  높은 네트워크 밴드위스와 고성능 동-서간 통신에 의존하는 새로운 서비스의 도입인 ,  서버에 VM  높은 밀도를 가능하게 하기 위해서 투명하게 네트워킹 성능의 병목 현상을 해결한다







SDN기반의 데이터 센터의 구조내에서 (Open vSwitch 같은) virtual 스위치 소프트웨어의 성능은 전체적인 VM밀도를 결정하는데 있어서 중대한 요소이다. Open vSwitch 는 3개의 주요 기능을 수행한다. :  그것은 서버에 예시되는 가입자의 VM 에서 돌고있는 어플리케이션으로 트래픽의 흐름을 관리한다. (그리고 전형적인 멀티-테넌트 데이터 센터에서 각 서버는 한 가입자 이상에 속해있는 VM 들을 구동시킨다. 그것은 인터넷과 VM들 사이에 “북-남” 트래픽의 흐름을 관리한다. (aggregation 층위에서 데이터 센터의 코어 스위치와 네트워크 applicance들을 통해서). 그것은 동일한 가입자에 속한, 그러나 다른 서버들에 위치한 VM들 사이에서 “동-서” 트래픽의 흐름을 관리한다. (그리고, 종종 다른 랙에서) 





데이터 센터네에서,  일반적인 랙 마운트 혹은 블레이드 서버들에 사용되는 x86 프로세스 들의 지속적인 성능에서 향상을 잘 이용하면서, VM밀집도가 빠르게 증기하고 있다. 동시에, VM에서 구동하는 어플리케이션들은  증가된 네트워크 밴드위스를 필요로 한다. 풍부한 미디어 어플리케이션들에서의 지속적인 증가로, 개별 VM들은 1Gbps 혹은 그 이상의 지속적인 네트워크 밴드위스를 필요로 할 수 있다. 

최종 밴드위스의 도전은 트래픽 패턴에서 계속된 진화로부터 기인한다. 전통적인 client-서버 데이터 센터들에서, 네트워크 트래픽은  주로 “북-남” 이었다 : 인터넷으로 부터, 코어 스위치와 aggregation 층위, ToR 스위치, 그리고 서버 블레이드로 간다. 그러나, 멀티 테넌트 웹 2.0 데이터 센터에서는 VM 이동성과 VM 얼기설기 퍼짐 이 대부분의 트래픽이 “동-서” 이 되도록 야기시킨다. : 같은 가입자 이지만 다른 물리서버에 위치한 VM 간  간. 이런 동서 트래픽의 성장은 높은 밴드위스, 안전한 VM-to-VM 간 통신이 필수적이라는 것을 의미한다. 

이런 밴드위스 요구사항은 표준 Open vSwitch 의 용량을 빠르게
앞지른다. 서버에 구동될 수 있는 VM의 숫자를 축소시키거나, 어플리케이션의 유저가 보는 성능에 제약을 가하면서.

6WINDGate Maximizes vSwitch Performance and VM Density 

Open vSwitch 데이터센터에 적용 되었을 , 6WINDGate  네트워킹 소프트웨어는 기본 L2 스위치 기능에서 5 에서 10배의 가속을 이루어 낸다이것은 OVS 코드 자체에 변화없이, 혹은 VM 동작하는 소프트웨어에 변화없이 이루어진다

OVS 내에서, 6WINDGate 데이터 평면은 6WINDGate fast path 내에서  OVS 제어 평면으로부터 그 자신의 데이터 평면으로 (전달되는) 설정메시지를 감시하고
적당한 패킷들을 가로채고, 처리 한다. 그것에 의하여  5배-10배의 속도 향상을 이루어낸다.


이러한 L2 스위칭 성능의 향상 덕분에, 데이터 센터 운용자는 서버 프로세스의 성능에 지속적인 향상에 의해서 가능해진 VM 밀도의 증가를 얻어낼 수 있다. 또한 높은 네트워크 밴드위스를 개별 VM에 제공할 수 있다. 유저가 돌리는 스트리밍 미디어 어플리케이션들이나 다른 밴드위스-배고픈 워크로드의 성능의 필요를 해결한다.


동시에 6WINDGate  는 IPsec, GRE, NVGRE, VLAN, XVLAN 같은 안전한 터널링 프로토콜에 고성능을 제공한다, VM간 동-서 트래픽에 고성능을 가능하게 한다. 





'Cloud' 카테고리의 다른 글

6wind gate 솔루션  (2) 2014.07.10
chef 개요와 구성요소 #2  (0) 2014.06.30
chef 의 개요와 구성 요소 #1  (0) 2014.06.30
OpenStack Icehouse 기사 해석  (0) 2014.06.11
Posted by FindZone :

6wind gate 솔루션

2014. 7. 10. 15:21 from Cloud
혁신적인 소프트웨어 아키텍쳐를 통해서, 6WINDGate  네트워킹 소프트웨어는 일반적으로 데이터 평면의 프로세싱 성능을 linux 네트워킹 스택에 비교해서 10배 가량 향상 시킨다. 시스템 레벨에서 최고의 네트워크 성능을 얻는 것이다.

산업을 이끄는 성능을 제공하면서, 6WINDGate  는 표준 application API 와 완벽한 호환성을 제공한다. 소프트웨어 재사용을 최대화 하고, 개발기간에 대한 리스크를 최소화 한다. 6WINDGate 는 OpenStack 같은 표준 클라우드 orchestrator, 그리고 레이어 2, 3 콘트롤러 소프트웨어 (OpenFlow 같은) 와 끊김없이 통합한다. 


6WINDGate 는 네트워킹 장비에 대한 완전한 데이터 평면 솔루션을 대표하는/상징하는, 고성능 2-4 계층 프로토콜의 종합적인 제품을 포함한다. 이것은 전체적인 시장 도입까지의 시간을 빠르게 해주면서, 여러 공급업체로부터의 프로토콜 통합의 필요성을 피하도록 해준다. 


출처:

http://www.6wind.com/wp-content/uploads/2014/06/6WINDGate-Solution-Brief-Letter-Size-Jun-15.pdf
 
6WIND 는 네트워크 어플리케이션 개발자들에 대한 성능 문제를 해결해준다. “past path” 아키텍쳐를 가지고 경쟁(제품)을
능가하게 해준다.  6WINDGateTM 패킷 프로세싱 소프트웨어는 다양한 네트워킹과 보안 프로토콜과 기능을 제공하기 위해서, 멀티 코어 프로세스를 사용하는 일반적인 하드웨어에 대해 최적화를 해준다. 6WINDGate 는 SDN, NFV 로의 이전을 가능하게 해주면서, 비용 효율적인 가치 제안을 제공한다. 



최대 데이터 평면의 성능을 제공하기 위해서, 6WINDGate 는 Linux O/S에서 분리된, fast path 라고 불리는 전용 core 들에서 동작하는 패킷 프로세싱 엔진을 구현한다. 같은 소스 코드가  Broadcom, Cavium, Intel and Tilera 등의 혼성의/이기종의 멀티코어 프로세스 하드웨어를 지원한다. 6WINDGate 는 프로세스 SDK 를 이용하여, linux networking stack 에 관여하지 않고도 past path 에서 직접 패킷을 처리한다. 

가령, Intel 플랫폼에서는 DPDK 를 이용한다. fast path 아키텍쳐는 linux 에 투명하다. 기존의 어플리케이션들이 수정될 필요없도록. past path 는 Open vSwitch 가속과 Fast vNIC 드라이버들 뿐 아니라, 주요한 네트워크 프로토콜들( VLAN,  IPsec, NAT, TCP/UDP Termination and more) 을 지원한다. 

 






Posted by FindZone :

chef 개요와 구성요소 #2

2014. 6. 30. 19:08 from Cloud

Workstations

워크스테이션은 chef-repo 와 동기화 하기 위해서, 그리고 단일 쉐프 서버와 통신하기 위해서, 나이프를 구동하기 위해서 설정되는 컴퓨터이다. 워크스테이션은 대부분의 유저들이 여기서 그들의 작업을 하게 될 것이다. 다음을 포함한다:

     쿡북과 레시피의 개발
     버젼 소스 콘트롤을 가지고 chef-repo  를 유지한다
     쉐프 서버에 chef-repo로 부터 아이템들을 업로드 하기 위해서 나이프를 사용
     정책을 설정, 롤과 환경에 대한 정의를 포함하며, 중요 데이터가 데이터 백에 저장되는지를 확인한다.
     bootstrap 작업 같은, 필요하면, 노드와 상호 작용한다

나이프는 chef-repo 쉐프 서버간에 인터페이스를 제공하는 커맨드 라인 툴이다. 나이프는 유저가 다음을 관리하도록 도와준다


RSA public 조합은 나이프가 쉐프 서버에 접속을 시도할 때마다, 나이프를 인증하기 위해서 사용된다. 이것이 나이프가 쉐프 서버에 등록되는지를 확인하고,

trusted 유저만이 데이터를 바꿀수 있도록 한다.


수프 repo 다음의 데이터 오브젝트가 저장되는 위치이다

  • Cookbooks (including recipes, versions, cookbook attributes, resources, providers, libraries, and templates)
  • Roles
  • Data bags
  • Environments
  • Configuration files (for clients, workstations, and servers)

쉐프-repo 워크스테이션에 위치하며, git 같은 version control 시스템과 동기화되어야 한다. 쉐프-repo 모든 데이터는 소스 코드처럼 다루어져야 한다.


나이프는 쉐프-repo 로부터 쉐프 서버로 데이터를 업로드 하기위해서 사용된다. 업로드가 되면, 데이터는 쉐프 클라이언트가 쉐프 서버로 등록된 모든 노드들을 관리하기 위해서 사용되며, 올바른 쿡북,환경, , 그리고 다른 세팅들이 노드들에 반영되었는지를 확인하기 위해 사용된다


The Server

쉐프 서버는 설정 데이터에 대한 허브로써 동작한다. 쉐프 서버는 쿡북, 노드들에 적용될 정책, (쉐프 클라이언트에 의해서 관리되고 있는 각의 등록된 노드를 설명해주는) 메타데이터를 저장한다. 노드들은 레시피, 템플릿, 파일 배포 같은 설정에 대해 쉐프 서버에 질의하기 위해서 쉐프 클라이언트를 사용한다. 쉐프 클라이언트는 그러면 노드 자체에서 (쉐프 서버에서가 아니라) 가능한 많은 설정 작업을 수행한다. 이런 scalable 접근이 조직을 통해서 설정의 노력을 배포한다



Posted by FindZone :