2010년 11월 8일 월요일

맨날 봐도 모르겠어

출처 NRC와 함께 하는 LIVE 네트웍 -
와이어 속도는 구리선의 속도를 지원한다는 것인데.. UTP를 이용해 10Mbps로 사용한다면
스위치를 지나갈때도 이속도를 보장해준다는것이다.
여기에 나오는 개념이 PPS인데.. 1초당 몇 패킷을 보낸다는것은 알고 있겠지..
이더넷은 기본적으로 64~1518의 크기로 보내는데 64를 기준으로 발표한단다.. 왜냐면
이렇게 계산해야 큰값이 나온단다 ㅋ.
아 숫자만 나오면 짜증나.. ~ 일단.. 예를 들어서
- 책에 있는 내용이다 -
도로에 자동차 1대가 지나가는데 5초가 걸린다면 이 도로에는 평균 1초당 몇대의 차가 지나갈수 있을까? 라고는 했다.
그렇다면 1대 : 5초 = x : 1초다 그럼 x = 1/5 = 0.2
그렇다.~!! 우리는 64로 계산을 한다고 했다.
1초당 지나가는 패킷의 수를 구하려면 1/(64Byte 프레임이 지나가는데 소요되는 total 시간)
이렇게 계산하면 된다는 거죠~..
여기서 조금 이해가 안가는게 말이지..
토탈시간이라는게 제대로 된 패킷 한개가 지나가는 시간이라는데.. 64+ IFG + Preamble 까지 포함 되어야 한다는데.. IFG는 프래임간의 간격인걸 알겠다.. 그리고 Preamble 는 동기를 마쳐줘는 야 던진다 받아라 하는 말이라는것도.. 그리고 IEEE에서 정의된 타임은 IFG가 96bit time이고 Preamble는 8byte 란다..
그러니까 64바이트가 지나가는 시간은..
1/(9.6+6.4+51.2)us = 14,880 이란다...
근데.. 이게 여기서 설명된게..(아 숫자에 약해) 1bit time 가 1bit가 전송되는데 필요한 시간이
10Mbps(이건 1초당 10메가 비트를 보내는거자나??) 의 역수라는데 0.1 μs 이다.
그럼 계산을 해볼까.. 1 : 10485760 = x : 1bit ?? 이런식이 성립 되는거야?
그리고 계산식이
PPS = 1/(전체 시간 )
= 1/(IFG + Preamble +64byte)
= 1/(9.6 + 6.4 + 51.2)
- 이건 넷메모 출처요 -
Q.
업체 장비 사양에 나온 포워딩 률(forwarding rate)과 최대 포워딩 률에 대해 궁금합니다.
예를 들어서 시스코 카탈리스트 2950(2950T-24) 스위치의 장비 사양을 보면
스위칭 패브릭(switching fabric) = 13.6Gbps,
최대 포워딩 대역폭(maximum forwarding bandwidth) = 6.8Gbps라고 나옵니다.
왜 포워딩 대역폭이 pps가 아닌 bps로 나오는지 또한 6.8Gbps가 어떻게 계산된 것인지도 궁금합니다.
또한 그냥 포워딩 률=10.1Mpps라고 나오는데, 그 수치는 어떻게 산출됐는지 알려주세요.

A.
스위칭 패브릭 = 13.6Gbps라고 표현할 때는 스위칭 패브릭을 스위치 전체 처리 용량으로 여기는 것입니다.
쉽게 설명하면, 2개의 고속 이더넷 포트를 가진 스위치의 스위칭 패브릭은 400Mbps입니다.
왜냐면 풀 듀풀렉스(full duplex)로 처리할 것을 가정하기 때문에 원래 물리적인 전송 속도(2 고속 이더넷 = 200Mbps)의
2배인 400Mbps로 산출되는 것이지요.
예를 들어, 2950T-24 스위치로 스위칭 패브릭을 계산하면 24포트의 고속 이더넷은 2포트가 기가비트이므로,
4.8Gbps + 4Gpbs = 8.8Gbps가 나옵니다.
그런데 13.6Gbps는 어디서 나왔는지 궁금할 수 있습니다.
아마도 13.6Gbps는 2950T와 같은 섀시를 사용하는 제품인 2950G를 기준으로 산출한 것 같습니다.
그러므로 48포트 고속 이더넷 + 2포트 기가비트 = 9.6Gbps + 4Gbps = 13.6Gbps가 됩니다.
또한 최대 포워딩 률이라고 표현하신 것은 최대 포워딩 대역폭이라고 할 수 있습니다.
우선 최대 포워딩 대역폭과 pps가 어떻게 산출됐는지를 설명하기에 앞서 쉽게 예를 들면 다음과 같습니다.
4차선 도로에는 차량이 4차선 도로에 해당하는 만큼 다닐 수 있습니다.
그런데 4차선 도로에 교통 경찰이 간섭해 교통 순경 때문에 4차선 도로에서 낼 수 있는 속력을 내지 못합니다.
여기서 말하고자 하는 것은 최대 포워딩 대역폭은 4차선 도로 그 자체를 논할 때 거론되는 것이고,
교통순경이 개입된다고 할 때는 pps라는 단어를 써서 스위치 처리 능력이라고 하면, 쉽게 이해할 수 있을 것입니다.
1개의 이더넷 포트가 있다고 가정해 봅시다. 이럴 경우 최대 포워딩 대역폭은 10Mbps가 나옵니다
(스위칭 패브릭은 이럴 경우 full이 된다고 가정하면 20Mbps가 됩니다).
말 그대로 물리적인 도로의 최대 전송 속도를 물어보는 겁니다.
그런데 교통 경찰이 개입해도 물리적인 도로의 최대 속력이 나올 수 있을지 다시 한번 계산을 해야 합니다.
이럴 때 쓰는 개념이 pps입니다. pps의 산출 공식은 다음과 같습니다.

pps = 1초 / (IFG + Preamble Time + Frame Time)

10Mbps일 경우에 만약 최대 10Mbps 속력이 나온다고 가정을 했을 경우 pps값은 14880pps입니다.
IFG(InterFrameGap)으로 프레임 사이에 간격을 논의하고
preamble은 프레임 앞에 들어가는 헤더와 같은 것이라고 알고 있습니다.
14880pps는 10Mbps일 경우를 기준으로 IFG = 9.6㎳, Preamble time= 6.4㎳, frame time = 51.2㎳가 된다고 합니다.
프레임 타임은 보통 64바이트 프레임(프레임의 최소 단위)를 기준으로 하기 때문에
이더넷에서 1비트 처리하는데 0.1㎳가 걸리므로 64×8×0.1 = 51.2㎳가 됩니다.
10Mbps일 경우는 14880pps 이상이 돼야 회선 속도(wire speed)를 낸다고 이야기할 수 있습니다.
고속 이더넷 포트를 기준으로 하면 148800pps 이상이 돼야 어느 정도의 회선 속도를 낸다고 말할 수 있습니다.
따라서 2950T-24의 포워딩 률이 10.1Mpps가 아니라 2950G의 포워딩 률이 10.1Mpps입니다.
2950G 스위치의 경우 48포트 고속이더넷에 2개의 기가비트 포트가 있으므로,
포워딩 률을 포트별로 나눠보면, 10.1Mpps / (48+20) = 155744pps가 됩니다.
대략 155000pps가 나오므로 고속 이더넷일 경우 148800pps이상이 됩니다.
그러므로 회선 속도를 낼 수 있습니다. 2950T-24는 6.6Mpps입니다.
이것도 이와 같이 계산하면 157000pps정도 나옵니다.



스위칭 패브릭 구조에 사용되는 기술은
공유형 버스(shared bus) 방식, 크로스바(crossbar) 방식, 공유형 메모리(shared memory) 방식 등이 있습니다.
공유형 버스 방식은 버스에서의 패킷 처리에 한계가 있기 때문에 오버헤드가 발생하는 문제가 있고,
크로스바 방식은 패킷 처리 스케줄링 때문에 속도에 한계가 있을 수 있습니다.
공유형 메모리 방식은 메모리 액세스 시간에 의해 제약을 받지만 많은 개선을 통해 논-블로킹(non-blocking) 구조를
갖게 된 것입니다. 현재 많은 장비들에서 공유형 메모리 방식을 사용하고 있습니다.
하지만 스위칭 패브릭 구현에 일정한 기준은 없으면 패킷을 전송하는데 최선의 방법을 선택하는 것이 원칙입니다.
결국 스위칭 패브릭에 의한 최대 데이터 처리 능력을 흔히 스위칭 패브릭으로 표시한다고 보면 됩니다.
포워딩 레이트는 실제 처리 가능한 데이터 율을 의미하며, 보통 'Full wire speed' 제공이라고 표시합니다.
'Full wire speed'는 물리적인 인터페이스에 정의된 처리 속도를 100% 지원한다는 의미입니다.
경우에 따라 pps(Packet per Sec, 초당 처리 가능한 최대 패킷 수이며
이더넷의 최소 프레임인 64바이트 프레임을 기준으로 합니다) 단위로 나타내기도 하는데,
24개의 TX 포트와 2개의 기가비트 포트를 제공하는 스위치라면 최소한 9.6Mpps를 지원해야 합니다.
문의하신 경우도 장비가 제공하는 포트만 고려한다면 논-블로킹 스위칭을 위해 최소한
아래와 같은 정도의 스위칭 패브릭과 포워딩 레이트를 제공해야 할 것 같습니다.

·스위치 패브릭 용량(Full duplex 기준)
1기가비트 2포트×2Gbps = 4Gbps
10/100Mbps 48포트×200Mbps = 9.6Gbps
→ 총 13.6Gbps

·포워딩 레이트
1기가비트 2포트×1.488Mpps = 2.976Mpps
10/100Mbps 48포트×0.1488Mpps = 7.142Mpps
→ 총 10.118Mpps

포워딩 레이트는 초당 전송 가능한 64바이트 패킷 수를 기준으로 했으며,
'Full wire-speed'를 지원할 경우 1기가비트 포트는 1.488Mpps, 100Mbps는 0.1488Mpps를 지원합니다.
위의 수치는 현재 사용하고 있는 스위치의 성능 사양과 많은 차이가 있습니다.
이것은 장비의 성능이 일반적인 스위치에 비해 현저하게 떨어지는 경우라고 생각할 수 있습니다.
하지만 이런 경우 위에 제시된 성능이 다른 기준을 따르고 있을 가능성도 있습니다.
컴터에 사용하는 단위는 다음과 같습니다.

1 K (킬로) = 1024 입니다. -> 2의 10승
1 M (메가) = 1024 * 1024 입니다. ->2의 20승
1 G (기가) = 1024 * 1024 * 1024 입니다. ->2의 30승

1 Mbps 는 1,048,576 bps.
2,048,000 bps 는 약 2 Mbps!!

bps는 bit per second 의 약자이고
초당 전송되는 bit 의 수다.
BPS 는 Byte per second 의 약자이다.
BPS=CPS로도 쓰인다. 왜냐고? 헷깔리니깐.

1 byte 가 8 bit 이므로
2,048,000 bps는 8로 나누면 256,000 이니까

즉 초당 256,000 개의 문자를 보내는 속도다.