지난 포스팅에서 인터넷의 가장자리를 살펴보았으므로 이제 네트워크 코어, 즉 인터넷의 종단 시스템을 연결하는 패킷 스위치들과 링크들의 연결망을 좀 더 자세히 알아보자.
네트워크 코어
호스트에서 호스트로 데이터를 전송하기 위해서 중간의 라우터들이 데이터를 전달 해 주어야 하는데 특정 라우터에서 다음 라우터로 데이터를 포워딩 해주는 기능이 코어 네트워크의 주 기능이다.
특정 패킷이 코어에 있는 라우터에 도달하게 되면 패킷에 담겨져 있는 목적지 주소(헤더에 있음)를 보고 목적지와 연결될 통로 링크로 데이터를 보내주게 된다. 이렇게 중간의 라우터들을 계속 거쳐서 결국 목적지 호스트로 도달할 수 있게 해준다.
패킷 교환
네트워크에서 종단 시스템들은 서로 메시지를 주고받는다. 메시지를 보내기 위해서 긴 메시지를 '패킷' 이라고 하는 작은 데이터 세그먼트로 분할하는데 네트워크 상에서 각 패킷은 통신 링크와 라우터와 링크 계층 스위치를 거치게 된다. 패킷은 링크의 최대 전송 속도와 같은 속도로 통신 링크 상에서 전송된다.
전체 패킷의 사이즈를 L-bit라고 가정하고, 링크의 용량을 Rbps라고 하자. 당연히 모든 패킷이 링크의 끝에있는 라우터에 도달하기 까지의 시간은 L/R초가 걸리게 될 것이다.
저장-후-전달
현재 네트워크에서 패킷을 전달하는 방식이다. 언제 방식이 바뀔지는 모르겠지만 현재까지는 이 방식을 사용중이다.
패킷이 라우터에 모두 도달하면 라우터는 패킷의 헤더의 목적지 주소를 보고 알맞는 링크로 패킷을 전달한다. 반드시 패킷이 라우터에 모두 도착한 뒤에야 다음 라우터로 전달할 수 있다. 패킷은 헤더의 목적지 주소에 따라서 방향이 결정되기 때문에 패킷이 올 때마다 다음 링크로 전달할 수가 없기 때문이다. 그리고 전체 데이터를 받아야지만 데이터의 에러 요소를 검사할 수 있다.
이러한 방법에는 지연시간이 존재한다.
source 호스트에서 end 호스트까지 가는데 3개의 라우터를 거쳐야 하고, 4개의 통신 링크를 거쳐야 한다고 가정하자.
하나의 통신 링크를 거쳐 다음 라우터로 가는데 L/R시간이 걸리게 될 것이다. 통신 링크는 4개 이므로 4*L/R만큼의 지연시간이 생기게 될 것이다. 이를 종단간 지연 또는 저장-후-전달 지연이라고 한다.
큐잉 지연과 패킷 손실
이러한 패킷 교환 방식에는 큐잉 지연과 패킷 손실이라는 특징도 있다.
라우터는 출력 버퍼를 가지고 있으며, 다음 링크로 송신하려는 패킷을 저장하고 있다. 도착하는 패킷이 다음 링크로 전송되어야 하는데 해당 링크가 다른 패킷을 전송 중이라면, 도착 패킷은 출력 버퍼에서 기다려야 한다. 따라서 패킷은 종단간 지연에 더해서 큐잉 지연을 겪게 되는 것이다. 출력 버퍼의 크기는 유한하기 때문에 버퍼의 모든 공간이 대기중인 패킷으로 가득차있다면, 도착하는 패킷 또는 대기중인 패킷의 손실이 일어나게 된다. 이를 패킷 손실이라고 한다.
예를 들어 아래 그림을 보자
라우터는 도착한 패킷을 15Mbps의 링크로 전달한다. 만약 짧은 기간 동안에 라우터에 도착하는 패킷의 전송속도가 15Mbps를 초과한다면 패킷은 출력버퍼에서 많은 시간을 대기해야 할 것이다. 버퍼의 크기가 꽉 차있다면 패킷 손실이 발생할 수도 있다.
전달 테이블과 라우팅 프로토콜
인터넷에서 모든 호스트는 IP 라고 하는 주소를 갖는다. 전송되는 패킷의 헤더에는 목적지의 IP주소를 가지고 있는데 이 주소는 계층적 구조를 가지고 있다. 패킷이 한 라우터에 도착하면 목적지 주소를 라우터의 출력 링크로 맵핑하는 전달 테이블을 거쳐서 다음 행선지를 알 수 있다. 이러한 전달 테이블을 설정하기 위해서 특별한 라우팅 프로토콜 이라는게 있다. 라우팅 프로토콜은 각 라우터로부터 목적지까지의 최단 경로를 결정하고, 라우터에 전달 테이블을 설정하는데 이 최단 경로 결과를 이용한다.
회선 교환
데이터를 전달하기 전에 목적지로 가는 링크 경로를 설정하고 해당 경로에 네트워크 자원을 미리 할당해 놓는 방식이다. 그리고 데이터는 자연스럽게 흘러가게 된다. 지정된 데이터는 물 흐르듯 목적지까지 도달할 수 있지만 지정된 데이터 말고 다른 데이터는 해당 링크 자원을 사용할 수 없다는 특징이 있다. 만약 할당된 자원을 통해서 아무런 데이터가 전송되지 않더라도 다른 데이터들은 해당 링크 자원을 사용할 수 없다는 뜻이다.
주로 유선 전화망에서 회선 교환 방식을 사용했다. 두 사람간의 전화 중에 서로 아무런 말이 없어 데이터를 주고받지 않더라도 그들이 사용하는 전화 회선은 그들에게만 할당되어 있기 때문에 다른 누군가가 하용할 수 없다. 따라서 전화중인 사람에게 전화를 걸면 이미 그 사람의 통신 회선에 자원이 할당되어 있기 때문에 통화 중 이라는 메시지가 뜨는 것이다.
회선 교환 네트워크의 다중화
통신 링크의 한 회선은 주파수 분할 다중화(Frequency Division Multiplexing, FDM)과 시 분할 다중화(Time Division Multiplexing, TDM)로 나뉜다. 전화를 예로 들어보자. FDM을 사용할 때는 사용자 마다 특정한 주파수를 할당받게 된다. 이렇게 할당받은 주파수(자원)를 가지고 데이터를 전송할 수 있다. 아무 데이터를 보내고 있지 않더라도 사용중인 주파수가 누군가에게 할당되어 사용되어지지 않는다는 뜻이다. 반면에 TDM을 사용할 때는 전체 주파수가 통으로 한 쌍의 사용자에게 할당이 된다. 하지만 자원을 나누는 방식이 시간으로 나누어 지기 때문에 특정 시간에는 한 사용자의 데이터만 보내지고 다음 시간에는 다른 사용자의 데이터가 보내지게 된다. 이렇게 반복이 되면서 자원이 할당되게 된다.
패킷 교환 vs 회선 교환
패킷 교환은 회선 교환 방식보다 더 많은 사용자를 허용할 수 있다. 따라서 서비스를 제공하는 사람의 입장이라면 패킷 교환을 더 선호할 것이다. 링크의 용량이 1Mbps이고 한 사용자가 데이터를 보낼 때 100kbps의 전송률이 필요하다고 가정하자. 일반적으로 사용자들은 브라우저에서 서버로 매번 요청을 보내지 않는다. 실제로 데이터를 전송하는 시간은 브라우저 사용시간의 10%도 안되기 때문에 이런 상황에서 회선 교환을 사용한다면 최대 10명의 사용자만이 서버를 사용할 수 있으며 실제로 네트워크를 사용하는 시간은 전체의 10%도 안될것이기 때문에 엄청난 낭비이다. 따라서 패킷 교환 방식을 택하면 훨씬 많은 사용자를 수용할 수 있으며, 제공자의 입장에서 패킷 교환을 선택하지 않을 이유가 없다.
하지만 사용자의 입장에서는 회선 교환이 나쁠 이유는 전혀 없다. 항상 사용자가 필요로 하는 최대 용량을 보존해 주기 때문에 서비스의 질이 유지되어 불편함을 느끼지 않기 때문이다. 만약 전체 용량을 넘어간다면 불편함을 겪겠지만 이는 제공자가 해결해야 할 문제이기 때문에 사용을 하는 입장에서는 나쁠것이 없다. 그리고 패킷 교환은 큐잉 지연 및 종단간 지연, 패킷 손실 때문에 사용자는 불편함을 느낄 가능성이 있지만 회선 교환 방식은 그런 문제가 없기 때문에 불편함을 느끼지 않게 된다.
이렇게 패킷 교환과 회선 교환의 장단점은 명확하고, 한 방식이 다른 하나를 압도하는 방식이 아니기 때문에 필요로 하는 네트워크 코어를 잘 선택해야 한다.
'CS > Network' 카테고리의 다른 글
[Network] 트랜트포트 계층 : TCP 연결 (연결 지향형) (0) | 2021.09.24 |
---|---|
[Network] 트랜스포트 계층 : 다중화와 역다중화 (0) | 2021.09.17 |
[Network] 트랜스포트 계층 : 개요(Intro) (0) | 2021.09.16 |
[Network] 인터넷 프로토콜 계층과 캡슐화 (0) | 2021.09.09 |
[Network] 인터넷이란? Intro (0) | 2021.09.06 |