티스토리 뷰

■ 네트워크 코어는 어떻게 이루어져 있는가?

 인터넷과 TCP/IP 프로토콜의 탄생에 기여한 공로를 가진 빈트 그레이 서프(Vinton Gray Cerf) 박사는 처음에 인터넷을 설계했을 때 핵 공격에도 살아남을 수 있는 네트워크가 목적이었다고 한다. 그런 목적으로 만들어진 것이 Mesh라는 형태의 네트워크이다. Mesh는 노드들이 그물 형태로 이루어져 있는 그물 네트워크를 뜻한다. Mesh에서는 만약 1번 노드가 핵 공격 같은 외부 영향으로 무력화되어도 나머지 노드들이 통신을 하는 것에는 아무 문제가 없다.

 네트워크에서 데이터를 주고 받는 주체들은 결국 end hosts다. 데이터를 보내는 Source에서 데이터가 도착하는 Destination까지 가기 위해 중간의 라우터들이 데이터를 전달해주어야 하는데, 하나의 라우터에서 다음 라우터로 계속 데이터를 넘겨주는(forwarding) 기능코어 네트워크의 주 기능이 되겠다.

 

 그림에서는 어떤 패킷이 라우터에 도달하게 되면 패킷에 담겨져 있는 목적지 주소를 확인하여 다음 링크로 보내는 과정을 보여주고 있다. 라우터의 주소가 0111이니까 local forwarding table에서 output link가 2로 되어있으므로 가진 링크들 중에 '2번 포트, 2번 링크로 내보내야 겠구나'라고 판단하는 것이다.

 

■ 회선 교환(Circuit switching)과 패킷 교환(Packet switching)

 코어 라우터에서 데이터를 전달하는 방식이 크게 2가지가 있다. 서킷 스위칭(Circuit switching)과 패킷 스위칭(Packet switching)이 바로 그것이다. 서킷 스위칭은 우리 말로 회선 교환, 패킷 스위칭은 패킷 교환이라고 부른다.

 

 회선 교환의 특징은 데이터를 전달하기에 앞서 source와 destination 사이에 길을 설정하고 그 길에다가 네트워크 자원을 예약해둔다. 그 다음에는 데이터가 물 흐르듯이 예약한 길을 따라 이동한다. 회선 교환은 하나의 source와 destination 쌍 사이의 길에 대해서만 자원이 할당되고, 이 할당된 자원은 다른 source와 destination 쌍에서는 공유할 수 없다는 특징을 가지고 있다.

 반면 패킷 교환은 여러 개의 source들이 서로 자기의 데이터를 패킷 형태로 나누어서 보내게 된다. 그래서 전체 데이터를 한꺼번에 보내는 것이 아니라 패킷 단위로 나눈 다음에 각 패킷에는 목적지 주소가 담겨 있고 그것을 라우터가 확인해서 그 목적지 주소에 따라 개별적인 경로로 전달이 되는 것이다.

 

● 회선 교환 (Circuit switching)

 각각의 교환망에 대해 자세히 살펴보자. 먼저 회선 교환부터 살펴보도록 하겠다. 회선 교환은 각각의 call마다 네트워크 자원이 할당된다. 그리고 할당된 자원은 설령 그 call에서 아무리 데이터가 전달되지 않는다고 하더라도 다른 call이 그 자원을 사용할 수 없다. 자원이 공유되지 않는다는 의미다. 2명의 특정 사용자가 call을 설정하면 그 2명에게만 자원이 독립적으로 할당되어서 다른 사용자들이 사용할 수 없다.

 회선 교환이 대표적으로 사용된 예시가 유선 전화망이다. 2명의 사람이 통화를 하고 있는데 갑자기 1명이 일이 생겨서 수화기를 통해 목소리를 전달하지 않더라도 통화가 끊기지 않았다면 그 통화에 제3자가 전화를 걸어 끼어들 수 없다. 아까 말했듯이 할당된 네트워크 자원이 다른 사람에게 공유되지 않는 것이다.

 

 source와 destination 사이의 call을 설정해서 예약하는 네트워크 자원을 다른 말로 채널이라고도 많이 쓴다. 이 채널을 구성하는 것은 주파수 또는 시간이다. 채널을 주파수를 기준으로 나누면 FDM이라 하고, 시간으로 나누면 TDM이라 한다. 예를 들어 통화를 하고자 하는 4명의 사용자가 있다고 할 때 FDM을 사용하면 주파수를 4개로 나눈 채널을 각 사용자에게 할당하여 동시에 사용할 수 있다. 주파수가 분리되어서 할당되기 때문에 각 사용자는 다른 색의 주파수를 사용할 수 없다.

 시간을 기준으로 나누게 되면 전체 주파수가 1명의 사용자에게 전부 할당이 된다. 다만 나눈 시간만큼만 할당하게 되며 할당 시간이 끝나면 다른 사용자가 주파수를 사용하고, 그 사용자도 할당 시간이 끝나면 다음 사용자에게 주파수 사용 권한이 넘어가게 된다.

 

● 패킷 교환 (Packet switching)

 반면에 패킷 교환에서는 full link capacity로 패킷마다 별도의 채널을 나누지 않고 전체를 전송해버린다. 어떤 패킷을 host가 전달할 때 드는 시간을 알아보면 패킷 사이즈를 L bit라고 가정하고 링크의 capacity를 R bps라고 하면 L/R초라는 시간이 소요된다. 그 다음에 패킷 교환에서 중간에 라우터에서 데이터를 전달하는 Store-and-forward라는 과정을 거친다. 번역을 하면 저장하고 전달한다라는 뜻이다. 이 Store-and-forward 방식에서는 처음부터 끝까지 모든 bit 데이터가 도달한 다음에야 데이터를 다음 hop으로 넘겨준다. 회선 교환에서는 패킷이라는 개념도 없긴 하지만 일단 bit 단위로 쪼개진 데이터가 들어오면 그 조각 데이터를 바로 다음 hop으로 전달할 수 있었다. 하지만 Store-and-forward 방식에서는 온전한 패킷 조각들이 전부 다 도착해서 모여야만 다음 hop으로 전달하게 된다.

 이렇게 바로바로 보내지 않고 Store-and-forward 방식을 사용하는 이유는 무엇일까? 첫번째로는 패킷이 모여 온전한 메시지가 만들어져야만 다음에 어디로 갈 지 목적지 주소를 확인해서 다음 hop으로 forward 시킬 수 있다. 두번째로는 전체 메시지를 받아야만 이 메시지에 에러가 포함되어 있는지 아닌지 검사할 수 있다. 그래서 에러 검사를 통해 패킷이 온전히 현재 라우터에 도착했다고 판단이 된 다음에야 다음 목적지로 forward 시킨다.

 End-end delay는 source에서 destination까지의 전체 지연 시간을 계산하는 것이다. 한 hop에 전달하는 데 걸리는 시간이 L/R (패킷 사이즈/링크의 용량) 시간이다. 그렇기 때문에 얼마나 hop이 많냐에 비례하여 End-end delay가 달라진다. hop의 수를 N이라고 한다면 N * (L/R)만큼 전체 지연 시간이 소요되는 것이다. 가령 2개의 hop이 있다면 2 * (L/R)시간이 걸릴 것이다.

 

 위의 그림에 있는 예제를 풀어보자. 패킷 사이즈가 7.5 Mbits이고 링크 용량이 1.5Mbps이다. L/R 공식을 사용하면 1 hop 전달되는데 걸리는 시간이 5초임을 알 수 있다. 그런데 End-end delay 시간이 10초이므로 10 / 2를 하면 N, 전체 hop 수를 알 수 있다. source에서 destination까지 2 hop인 것이다.

 

 

 

※ 본 정리 내용은 부산대학교 유영환 교수님의 컴퓨터 네트워킹 수업을 정리한 것입니다.

※※ 강의에 사용된 교재 : [Computer Networking A Top-Down Approach 7th edition / Jim Kurose, Keith Ross]

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함