2008년 10월 27일
Chaper1. 컴퓨터 네트워크와 인터넷 #3

1.3 코어 네트워크

네트워크 코어 : 인터넷의 종단 시스템들을 연결하는 라우터의 연결 조직


1.3.1 회선 교환과 패킷 교환

- 네트워크 코어의 구성 방식 : 회선 교환(circuit switching) : 전화망

                                 패킷 교환(packet switching) : 인터넷


- 회선 교환 네트워크 : 종단 시스템 간에 통신을 제공하기 위해 경로상에 필요한 자원(버퍼, 링크 전송룔)은 통신 세션(session) 동안에 예약된다. 먼저 회선 네트워크의 예로 전화망이 있다. 어떤 사람이 전화망을 통해 다른 사람에게 정보(음성이나 팩시밀리)를 보내려고 할 때 어떤 일이 일어나는지 생각해보자. 송신자가 정보를 보내기 전에 네트워크는 송신자와 수신자 간의 연결을 설정해야 한다. 인터넷의 TCP 연결과 관련지어 생각해보자.(전화망은 인터넷이 아님을 상기시키자. 단순히 인터넷과 전화망을 비교하면서 생각해보라는 의미) 회선 교환에서는 송신자와 수신자 간의 경로에 있는 스위치들이 해당 연결 상태를 유지해야 하는 연결을 설정해야 한다. 전기통신 용어로 이 연결을 회선(circuit)이라고 한다. 이 회선 교환 네트워크에서 회선을 설정할 때, 그 연결이 이루어지는 동안(이게 앞에서 말한 통신 세션(session)) 네트워크 링크에 일정한 전송률을 예약한다. 대역폭(bandwidth)이 송신자-수신자 연결을 위해 예약되므로, 송신자는 수신자에게 보장된 일정한 전송률로 데이터를 보낼 수 있다.


- 패킷 교환 네트워크 : 이들 자원을 예약하지 않는다. 세션의 메시지는 그 자원을 요청하여, 즉 온디맨드(on-demand) 방식을 사용하고 그 결과, 통신 링크에 대한 접속을 위해 기다릴(즉, 큐에서 대기) 수도 있다. 오늘날의 인터넷을 패킷 교환 네트워크의 전형적인 예로 꼽을 수 있다. 이번에는 인터넷에서 어떤 호스트가 다른 호스트로 패킷을 보내려고 할 때 어떤 일이 일어나는지 생각해보자 회선 교환과 마찬가지로 패킷은 일련의 통신 링크를 통해서 전송된다. 그러나 패킷 교환에서는 어떠한 대역폭도 예약하지 않고서 네트워크로 패킷을 보낸다. 링크 중 어느 하나가 다른 패킷을 동시에 그 링크를 통해 전송하게 되는 혼잡 상태일 때, 나중에 온 패킷은 전송 라인의 송신 쪽 버퍼에 대기해야 하고 지연 상태가 된다. 인터넷은 데이터를 시간에 맞게 전달하려는 최선의 노력(best effort)을 하지만, 보장하지는 않는다.


<회선 교환>

++그림 1.5 ++

이 네트워크는 네 개의 회선 스위치가 네 개의 링크에 연결되어 있다. 이들 각 링크마다 n개의 회선을 가지고 있다. 따라서 각 링크는 n개의 동시 연결을 지원할 수 있다. 호스트들(예: PC와 워크스테이션)은 스위치 중 하나에 직접 연결된다. 두 호스트가 통신하고 싶을 때, 네트워크는 두 호스트 사이에 지정된 종단 간 연결(end-to-end connection)을 설정한다. 그러므로 호스트A가 호스트B에게 메시지를 보내기 위해, 네트워크는 먼저 두 개의 링크 각각에 한 회선을 예약한다(앞에서 말한 통신 세션 동안에 네트워크 링크에 일정한 전송률을 예약한다는 말이 링크의 한 회선을 예약한다는 말!) 각 링크는 n개의 회선을 가지므로 종단 간 연결이 사용하는 각 링크에 대해, 그 연결은 연결이 지속되는 동안 그 링크 대역폭의 1/n을 얻는다(즉, 1/n의 대역폭을 예약한 셈이고, 이 1/n의 일정한 대역폭으로 통신을 한다)


<회선 교환 네트워크에서의 다중화>

- 링크 내 한 회선은 주파수분할 다중화(FDM: Frequency-Division Multiplexing) 또는 시분할 다중화(TDM: Time-Division Multiplexing)로 구현된다.


- FDM에서, 링크를 통해 설정된 연결은 그 링크의 주파수 스펙트럼을 공유한다. 특히 그 링크는 연결되는 동안 각 연결에 대해 주파수 대역을 고정 제공한다. 전화망에서의 이 주파수 대역은 일반적으로 4kHz 폭을 갖는다.(하나의 회선이 4kHz 폭을 갖는다는 말이다. 즉, 하나의 링크는 n * 4kHz의 대역폭을 갖는다.) 이런 대역의 폭을 대역폭(bandwidth)이라고 부른다.


- TDM 링크의 경우는 시간을 일정 주기의 프레임으로 구분하고 각 프레임은 고정된 수의 시간 슬롯으로 나뉜다. 네트워크가 링크를 통해 하나의 연결을 설정할 때, 그 네트워크는 모든 프레임에서 시간 슬롯 한 개를 그 연결에 할당한다. 이들 슬롯은 그 연결을 위해 사용되도록 할당되고, 그 연결의 데이터를 전송하기 위해 모든 프레임에 하나의 시간 슬롯을 갖게 된다. TDM 회선의 전송률은 한 슬롯 안의 비트 수에다가 프레임 전송률을 곱한 것과 같다. 예를 들어, 링크가 초당 8,000프레임을 전송하고(프레임 전송률) 각 슬롯이 8비트로 구성된다면(한 슬롯 안의 비트 수), 회선의 전송률은 64kbps이다.


- 회선 교환의 경우(FDM, TDM 모두 해당)에 할당된 회선이 쉬는 시간(silent period)에는 놀게 되므로 낭비일 수 있다. 예를 들어, 전화통화를 할 때 사람이 이야기를 중단하더라도, 이 사용되지 않는 네트워크 자원(연결 경로상의 링크 주파수 대역이나 슬롯)은 다른 진행 중인 연결이 대신해서 사용할 수 없다는 것이다. 예를 들어 원격으로 엑스레이 필름에 접속하기 위해 회선 교환 네트워크를 사용하는 어느 방사능 과학자를 생각해보자. 이 학자는 연결을 설정하고, 이미지를 요청하고, 그 이미지를 관찰하고, 다음 이미지를 요청한다. 이 학자가 이미지를 관찰하는 동안에도 자원을 점유하고 있으므로(아무일도 하고 있진 않는데도 하나의 회선을 사용하고 있으므로) 네트워크 자원이 낭비된다.


- 회선 교환(FDM, TDM)에서 종단 간 회선을 설정하고 대역폭을 보존하는 것이 복잡하고 경로에 있는 스위치들 사이의 운영을 조절하는 복잡한 신호 소프트웨어가 필요하다.


<패킷 교환>

- 애플리케이션은 서로 통신을 하기 위해 메시지를 교환한다.


- 현대 컴퓨터 네트워크에서, 근원지(source; 송신자)는 긴 메시지를 패킷이라는 작은 데이터 덩어리로 분할한다.


- 근원지와 목적지(destination; 수신자)사이에서 각 패킷은 통신 링크패킷 스위치(주로 라우터(router)링크 계층 스위치(link-layer switch))들을 각각 횡단하고 통과한다.


- 패킷들은 그 링크의 최대 전송률 속도로 각 통신 링크를 통해 전송된다. 대부분의 패킷 스위치는 저장 후 전달 전송(store-and-forward transmission) 방식을 이용한다. 즉, 스위치가 출력 링크로 패킷의 첫 비트를 전송하기 전에 전체 패킷을 받아야 함을 의미한다. 따라서 저장 후 전달 방식은 패킷 경로에서 각 링크의 입력에 따라 저장한 후 전달하는 데 필요한 지연이 발생한다. 이 지연은 패킷의 비트 길이에 비례한다. 만약 패킷이 L비트로 구성되고 패킷이 R bps 속도로 출력 링크에 전달된다면, 스위치에서의 저장 후 전달 지연(패킷의 모든 비트들을 출력 링크로 밀어내는 데(전송) 필요한 시간)은 다음과 같다.


저장 후 전달 지연 = L/R 초


(이 공식이 어떻게 나왔는지 생각해보자. 어느 패킷의 첫 번째 비트가 패킷 스위치에 도착했을 때 바로 그 비트를 출력 링크로 내보낼 수 없다.(저장 후 전달 전송 방식 때문) 따라서 그 패킷의 마지막 비트가 라우터에 도착할 때까지 첫 번째 비트는 기다려야 하는데, 그 시간은 첫 번째 비트와 마지막 비트의 사이의 거리를, 그 패킷의 전달 속도로 나눈 것이 된다. 이것을 다른 면에서 보면 패킷의 모든 비트들을 출력 링크로 밀어 내는데(전송) 필요한 시간이 된다. 생각해보면 당연한 것!!)


- 회선 교환 방식에서는 저장 후 전달 전송 방식을 사용하지 않는다. 따라서 회선 교환 방식에서의 파일(혹은 패킷)의 전송 시간을 계산하는 데 저장 후 전달 전송하는 데 걸리는 시간을 쓰면 안된다. 밑에 회선 교환 방식에서 파일을 전송하는 데 걸리는 시간을 구하는 예가 나와있지만 식은 저장 후 전달 전송 방식과 비슷하지만, 결코 똑같이 봐서는 안된다.


- 각 라우터는 자신에 연결된 여러 링크를 가진다. 각 연결 링크의 패킷 스위치에 대해, 라우터는 출력 버퍼(output buffer, 혹은 출력 큐(output queue))를 갖고 있으며,


- 출력 버퍼는 라우터가 그 링크로 보내려는 패킷을 저장한다. 출력 버퍼는 패킷 교환 네트워크에서 중요한 역할을 한다. 만약 도착하는 패킷이 어떤 링크를 통해 전달되어야 하는데 그 링크가 다른 패킷을 전송하고 있다면, 도착하는 패킷은 출력 버퍼에서 대기해야 한다. 따라서 저장후 전달 지연뿐만 아니라, 패킷은 출력 버퍼 큐잉 지연(queuing delays; 큐 대기 지연)을 겪는다.


- 버퍼(큐; 임시 저장 공간) 크기가 유한하므로, 새로 도착한 패킷은 전송을 기다리는 다른 패킷으로 꽉 채워진 버퍼를 발견하게 될 수도 있다. 이 경우에는 패킷 손실(packet loss)이 발생한다. 이 경우 새로 도착한 패킷이나 큐에 남아 있던 패킷 하나가 폐기될 것이다.


- 패킷 교환은 가변적이고 예측할 수 없는 종단 간의 지연(주로 불규칙적이고 예측할 수 없는 큐잉 지연에서 발생) 때문에 실시간 서비스(예: 전화통화 비디오 회의 통화)에는 적당하지 않다는 지적이 있음


- 패킷 교환이 회선 교환보다 대역폭 공유에서 더 효율적이다.(대역폭을 할당하지 않고 같이 쓰기 때문)


- 패킷 교환이 더 간단하고, 효율적이며, 회선 교환보다 구현 비용이 적다.


++ 그림 1.7 ++


- 만약 스위치에 도착하는 패킷률이 이 스위치가 전달할 수 있는 패킷률을 초과하면, 혼잡 현상은 링크의 출력 버퍼에 패킷이 저장될 때 일어난다.


- 호스트 A, B의 패킷들이 이 링크에 어떻게 전송되는지 살펴보자. A와 B의 패킷의 순서가 일정하지 않다. 패킷들이 링크에 존재할 때마다 보내지므로 순서는 일정한 패턴이 없다. 이러한 무작위 순서 때문에, 패킷 교환이 통계적 다중화(statistical multiplexing)를 채택하고 있다고 종종 말한다. (회선 교환의 시분할 다중화(TDM)와 비교; TDM은 반복되는 프레임안에 일정 슬롯을 각 호스트에 할당)


<TDM과 패킷 교환 전송 시간 비교>

- 회선 교환 네트워크를 통해 호스트 A에서 호스트 B까지 640K 비트의 파일을 보내는 데 걸리는 시간을 생각해보자. 네트워크의 모든 링크는 24개 슬롯을 가진 TDM을 사용하고 1.536Mbps 전송률이 가능하다고 가정하자.(호스트 A와 호스트 B 사이에 있는 링크 수는 n개 이다.) 또한 A가 파일을 전송하기 전에 종단간 회선을 설정하는 데 0.5초가 걸린다고 한다면, 그 파일을 전송하는데 걸리는 시간은?(처리 지연, 큐잉 지연, 전파 지연 무시)

-> 각 회선은 (1.536Mbps)/24 = 64kbps 전송률이 가능하므로 그 파일을 전송하는 데 (640Kbit)/(64kbps) = 10초 (64kbps의 의미를 생각. 즉, 이 링크는 1초에 64kbps를 처리(전송)할 수 있다는 것을 의미, 따라서 640Kbit는 10초만에 처리(전송)이 가능하다.)

-> 회선 설정 시간 0.5초를 더하면 파일을 보내는 데 총 10.5초가 걸린다.

-> 회선 교환 방식에서 전송(transmission) 시간은 링크 수와 무관하다는 점에 주목하라.(왜냐하면 패킷 교환 방식처럼 저장 후 전달 방식이 아니기 때문이다. 하지만 패킷 교환 방식에서는 저장 후 전달 방식을 사용하기 때문에 전송 시간이 링크의 수와 관계 있다!) 회선 교환 방식에서 전송 시간은 종단 간 회선이 하나 혹은 100개의 링크를 지나더라도 10초이다.(실제 종단 간 지연에는 전파(propagation) 지연도 포함한다)


- 패킷 교환 네트워크를 통해 L비트의 패킷을 한 호스트에서 다른 호스트로 보내는 데 걸리는 시간을 생각해보자. 두 호스트 사이에 Q개의 링크들이 있고, 이들은 각각 R bps의 속도를 갖는다고 하자. 큐잉 지연과 종단 간의 전파지연, 연결 설정 시간은 없다고 가정. 패킷은 호스트 A로부터 나가는 첫 번째 링크에 전송되어야 한다. 즉, L/R초가 걸린다.(앞의 TDM에서의 전송 시간을 계산하는 방법을 생각해보자. 저장 후 전달 전송 지연 시간이 없다면 이 패킷의 전달 시간은 L/R초가 걸린다. 왜냐하면 링크에서의 전달 시간은 링크 수와 무관하므로.) 다음에는 나머지 Q-1개의 링크들에게 전송되어야 하고, 즉, Q-1번의 저장 후 전송이 있어야 한다. 따라서 저장 후 전달 지연 시간은 (L/R)*(Q-1)초가 걸린다. 따라서 전체 지연 시간(한 호스트에서 다른 호스트로 보내는 데 걸리는 시간)은

                    전체 지연 = 링크에서의 전송 시간 + 저장 후 전달 전송에 걸리는 지연 시간

                                  = L/R + (L/R)*(Q-1)

                                  = QL/R초

- 위 식에서 보듯이 패킷 교환 방식에서는 패킷을 보내는 시간이 링크의 수(Q)와 관계가 있음을 알 수 있다.(회선 교환 방식에서는 링크의 수와 무관!!)


<패킷 교환이 회선 교환보다 더 이수한 이유>

- 링크 전송률을 공유하는 두 방식의 가장 큰 차이점은 회선 교환이 요구에 관계없이 미리 전송 링크의 사용을 할당하는 반면에(확실하진 않지만, 내 생각엔 사용자의 연결 요청이 있지 않더라도 항상 연결이 되어 있는 상태라는 뜻 같다) 패킷 교환은 요구할 때만 링크의 사용을 할당한다는 것이다. 회선 교환 방식처럼 사용하지 않는 링크 시간에는 링크 사용을 할당할 필요는 없다.


- 패킷 교환 방식은 링크에 전송할 패킷을 전송하고 싶은 사용자만이 링크의 전송 능력(링크의 대역폭)을 고유할 것이다. 이렇게 요구가 있을 때마다(회선 교환방식처럼 네트워크 링크에 전송률을 예약하지 않음) 자원을 공유하는 것을 자원의 통계적 다중화라고 한다.


1.3.2 패킷 교환 네트워크: 데이터그램 네트워크와 가상회선 네트워크

패킷 교환 네트워크(packet-switched networks; 패킷 교환망) : 데이터그램 네트워크(datagram networks)

                                                                     가상회선 네트워크(virtual-circuit networks)


-데이터그램 네트워크는 스위치들이 패킷을 목적지로 전달하기 위해 호스트 목적지 주소를 이용한다. 인터넷의 라우터는 목적지 주소에 의해서 패킷을 전달한다. 즉, 인터넷은 데이터그램 네트워크인 것이다.


- 가상회선 네트워크는 스위치들이 패킷을 목적지로 전달하기 위해 가상 회선 번호를 이용한다. 이 가상회선을 사용하는 패킷 교환 기술의 예로는 X.25, 프레임 릴레이, ATM 등을 들 수 있다.


<가상회선 네트워크>

- 가상회선(VC)은 근원지와 목적지 호스트 사이에서의 가상 연결이다. 중요한 점은 이 가상회선, 즉 VC는 두 개의 종단 시스템뿐 아니라 VC의 근원지에서 목적지까지 경로 사이의 모든 스위치를 포함한다는 것이다. 가상회선 식별자(VC ID: virtual-circuit identifier)는 가상회선이 처음 근원지에서 목적지까지 확립될 때 할당된다. VC의 한 부분에 있는(즉, 근원지에서 목적지까지 경로 사이의 어느 부분(모든 스위치를 포함))에 있는 어떤 패킷은 자신의 헤더에 VC ID를 갖는다. 각 패킷 스위치는 VC ID를 가지고 어느 출력 링크로 패킷을 전달할지에 대한 테이블을 가지고 있다. 그래서 패킷이 패킷 스위치에 도착할 때 스위치는 패킷 VC ID를 조사한다. 그리고 자신의 테이블에서 그 패킷을 색인한다. 그리고 테이블에 지시된 출력 링크로 패킷을 전달한다.(즉, VC ID는 가상회선이 처음 근원지에서 목적지까지 확립될 때 할당된다고 했으므로 그 경로 사이에 있는 모든 패킷 스위치들은 그 VC ID에 대한 테이블을 가지고 있을 것이다. 그래서 패킷이 그 지시된 출력 링크를 타고 다음 패킷 스위치로 넘어가게 되면 그 패킷 스위치에서는 또 VC ID를 참조해 지시된 출력 링크로 패킷을 보내고, 또 다시 패킷은 그 링크를 타고 다음 패킷 스위치로 가고, 이런식으로 해서 패킷이 전달되는 듯...) 가상회선에서 근원지와 목적지는 VC ID를 통해 간접 식별되므로 근원지와 목적지 종단 시스템의 실제 주소는 교환 작업이 필요 없다. 이것은 패킷 교환이 빠르게 수행될 수 있음을 의미한다.(들어오는 패킷의 VC ID를 비교적 작은 크기의 가상회선 전송 테이블에서 찾으므로, 큰 주소 공간에서 목적지 주소를 찾는 것보다 더 빠르게 수행한다.)


- VC 네트워크 교환은 사용되는 연결에 대한 상태 정보(state information)를 유지한다. 이 말은 즉, 패킷 스위치가 각각 진행 중인 연결에 대한 정보를 유지한다는 말이다. 예를 들어, 새로운 연결이 스위치를 통해 설정될 때마다 새 연결 엔트리가 스위치의 변환 테이블(translation table)에 추가되어야 한다. 그리고 연결이 해제될 때는 테이블에서 그 엔트리가 제거되어야 한다. 비록 VC ID가 없더라도, VC 번호들을 출력 인터페이스 번호로 연결하는 상태 정보를 유지함을 주목하자. (이 말은 패킷 스위치에 이미 VC 번호에 대한 출력 링크들은 정해져 있고, 새로운 연결이 설정될 때마다 VC ID를 할당한다는 뜻인가..)


<데이터그램 네트워크>

- 데이터그램 네트워크에서, 각 패킷은 헤더에 목적지 주소를 포함한다. 메일 주소처럼, 이 주소도 계층구조를 갖는다. 패킷이 네트워크 내부의 패킷 스위치에 도달하면, 그 패킷 스위치는 패킷의 목적지 주소 부분을 검사하고 이웃 스위치로 패킷을 전달한다. 더 자세히 말하면, 각 패킷 스위치는 목적지 주소(혹은 목적지 주소의 일부)를 외부로 나가는 링크로 매핑하는 라우팅 테이블을 갖고 있다. 패킷이 스위치에 도달하면, 그 스위치는 주소를 검사하고 외부로 나가는 적당한 링크를 찾기 위해 이 주소를 가진 테이블을 찾아본다. 그리고 스위치는 그 패킷을 외부로 나가는 링크에 보낸다.


- 데이터그램 네트워크는 VC 네트워크와 비교하여 스위치 내부에 연결 상태 정보를 유지하지 않는다.(VC ID 테이블처럼 특정 패킷을 어떤 출력 링크로 보낼지에 대한 정보를 가지고 있지 않다. 단순히 목적지에 패킷이 도달할 수 있도록 패킷을 적당한 링크로 내보낼 뿐) 사실은 순수 데이터그램 네트워크의 패킷 스위치는 그것을 통과해 지나가는 어떤 트래픽 흐름도 전혀 기억하지 않는다. 데이터그램 네트워크의 패킷 스위치는 패킷이 속하는 연결에 의해서가 아니라 각 개별 패킷의 목적지 주소를 기초로 하여 전달을 결정한다.


<네트워크 분류>

전기통신 네트워크 -- 회선교환 네트워크 -- FDM

                          -- TDM

                          -- 패킷교환 네트워크 -- 가상회선 네트워크

                          -- 데이터그램 네트워크

by 임준성 | 2008/10/27 12:42 | 트랙백 | 덧글(1)
트랙백 주소 : http://limjunsung.egloos.com/tb/1015510
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by ej at 2012/10/19 10:32
자원의 통계적 다중화랑 그냥 통계적 다중화랑 결국 다른건가요?
도움 많이 되어 갑니다 ㅠㅠㅠ 감사해요!

:         :

:

비공개 덧글



<< 이전 페이지 | 다음 페이지 >>