Post

computer network - control plane(1)

들어가기에 앞서

시험을 치고 왔습니다.. 벌써 2개를 쳤네요. 앞으로 해 뜰때 자는 것은 하지 말아야겠습니다.. 이제 하루하루 늙어감을 체감하고 있네요.. 빠른 년생으로 태어나서 다행입니다. 아니면 내년에 26살? 와우;;
아무튼 이젠 미리미리 공부하고 시험 기간에 밤새고 그런 짓 하지 않아야겠습니다.
아무튼 각설하고, 컴퓨터 네트워크의 network layer - control plane에 대해 알아보도록 하겠습니다.

Overview

IP라는 것을 알고 계실겁니다. 이는 전공자가 아니라도 한 번쯤은 들어본 적이 s있는 용어입니다.
간략하게 IP에 대해 이야기하자면, IP는 통신에서, 내 컴퓨터(휴대폰 등등도 당연히 됩니다)를 식별해주는 논리적 주소라고 생각하면 됩니다.
control plane chapter에선 이러한 IP를 기반으로, 어떻게 내가 요청한 정보가 내 컴퓨터에 도달하는지에 대해 알아보도록 하겠습니다.

network layer

TCP/IP 5계층에서 3계층에 속하는 network layer입니다.

image

이러한 network layer에는 data plane과, control plane이 존재합니다.

image

data plane

data plane에선 packet(데이터라고 보시면 됩니다)을 Forwarding합니다.
Forwarding한다는 의미는, 입구로 들어온 패킷을, 적절한 여러 가지 출구로 보낸다는 의미입니다. data plane에선 어떻게 보내는지는 크게 관심이 없습니다. 그냥 적절한 출구로 보내기만 합니다.

control plane

눈치 빠르신 분은 눈치를 채셨을 거라고 생각합니다.
control plane에선 들어온 패킷을 라우터의 많은 출구 중, 패킷의 정보 및 link의 혼잡도를 보고, 어느 출구로 보낼지, 즉 경로를 결정합니다. 이렇게 경로를 결정하는 동작을 라우팅(routing)이라고 합니다. route가 길을 의미하니, 직관적으로도 이해하기 쉬우실 겁니다.

컴퓨터 네트워크에선, 계층별로 해야 할 일이 나뉩니다. TCP/IP 계층 network layer 내부에서도 한 번 나뉨을 알 수가 있네요.

control plane - routing algorithm

전통적인 방식으로는, 라우팅을 각 라우터별로 실행을 했습니다(이를 per-router control plane이라고 합니다). 말 그대로, 하나의 라우터 내부, 라우팅을 하는 알고리즘이 정해져 있고, 이러한 구현되어 있는 라우팅 알고리즘을 바탕으로 라우팅을 한다는 의미인 것이죠. 하지만 이러한 방식은 분명 한계가 존재할 것입니다. 왜냐하면 네트워크는 예측하기 정말 어렵기 때문입니다.

예시를 들어보겠습니다. 1981년, IPv4가 탄생했을 때 당시, 처음엔 고갈 걱정을 하지 않았습니다. 하지만 미국에서 네트워크가 산업에 사용되고 난 후, 1990년도에 고갈 걱정을 했고, 실제로 2011년에 고갈이 되었다고 합니다. 라우팅 알고리즘은 IP를 사용한 주소 부여 방식보다 훨씬 더, 생각할 것이 많을 것입니다. link의 혼잡도부터 시작해서 .. 외부 요인도 있겠죠.. 등등.
아무쪼록 하나의 라우터에, 미리 라우팅 알고리즘을 정해둔다는 것은 위험한 생각이라고 할 수 있습니다. 왜냐하면 네트워크 상황은 시시각각 변하는 것이니까요.

이는 좌표평면에 지구 상에 존재하는 모래알을 흩뿌리고, 그 모래알이 각각 x,y좌표를 가진다고 가정했을 때, 완벽한 하나의 선형(linear)식을 찾으라고 하는 것과 같은 의미가 되는거죠. 왜냐하면 그 모래알들은 어느 곳에선 밀집해있고, 어느 곳에선 분산되어 있을 것이니까요. 이는 듣기만 해도 어렵습니다.

그래서 다른 생각을 해봅니다. 세상 모든 모래알에 대한 식을 찾는 것 보다는, 어느 밀집한 구간에선 이렇고, 어느 구간에선 저렇고.. 이렇게 나타내는 것이 더 정확하지 않을까요?

이러한 생각을 라우팅 알고리즘에 적용을 해본다는 것이죠.
즉, 하나의 완벽한 알고리즘을 찾기 보단, 시시각각 상황에 맞춰 대응을 하겠다! 해보자는 것입니다.

하지만 여기서 의문점이 생깁니다.
“그럼 적절히 대응해보자. 하지만 어떻게 라우터에 업그레이드할래?”가 이제 문제점이 되는 것입니다. 사람이 직접 라우터에 가서 매 시간 업그레이드 할 수가 없으니까요.

이러한 문제를 해결하기 위해서 생겨난 생각이 SDN입니다.

SDN

image

SDN이란 Software Defined Networking의 약자입니다. 라우팅 알고리즘을 기존의 라우터에 구현해두는 Hardware적 방식이 아닌 Software적 방식이 SDN입니다.
어떤 하나의 main remote computer를 두고, 그 main computer를 대장으로 하는 작은 네트워크를 구현한 후, 네트워크 상황을 봐서, 네트워크 내부 라우터의 라우팅 알고리즘을 수정하는 것이 메인 아이디어인 것이죠. 이러한 SDN은 지금도 많이 연구가 되고 있다고 합니다. 기회가 되면 더 다뤄보도록 하겠습니다.

마무리하며

network layer의 control plane에 대한 overview를 보았습니다. 다음 글에선 라우팅에 대해서 좀 더 알아보도록 하겠습니다.

This post is licensed under CC BY 4.0 by the author.