저의 velog에 작성된 글은 모두 저의 주관적인 생각 및 이해를 바탕으로 작성된 글이므로
정확하지 않은 내용을 있을 수 있음을 알립니다.
[교재] Computer Networking : A Top-Down Approach 8th
저번 시간 Network edge에 이어 오늘은 Network edge와 연결되는 Network core 그리고 router에서 이뤄지는 Packet switching에 대해 알아보겠습니다.
Network core란 router들이 상호 연결되어 뒤에서 알아볼 packet-switching이
활발히 일어나는 network입니다.
바로 다음 더 구체적으로 알아보겠지만, packet switching이란 데이터 뭉치를 작은 단위로 쪼갠 것을 packet이라고 하는데, 이 packet을 전달하는 하나의 방법입니다.
사실 packet을 전달하는 방법으로는 packet switching과 circuit switching 이렇게 2가지가 있습니다. 각각의 방법에 대해서 알아보도록 하겠습니다.
Packet switching은 위의 그림처럼 packet을 순차적으로 보내는 방식을 의미합니다.
packet이 올 때마다 buffer(빈 공간)에 차곡차곡 쌓이고 queue(대기줄)을 형성하게 됩니다. 여기서 queue는 용량이 정해져 있기 때문에 queue 용량보다 더 큰 용량의 packet이 오게 되면 drop 해버립니다. packet loss가 생기는 것이죠.
packet이 이동하는 방식은 위의 사진과 같습니다. 각각의 packet에 input value인 header value를 통해 output link가 정해지게 됩니다. 예를 들어 위의 사진에서는 header value가 0111이므로 output link가 2번이 됩니다. header value는 router를 지날 때마다 갱신되기 때문에 그에 따라 output link도 계속 바뀌게 됩니다.
Packet switching은 위의 그림과 같이 하나의 통신선로를 독점적으로 사용하기 때문에 데이터가 마치 물 흐르듯 전달됩니다. 이와 같은 방식이 가능한 이유는 packet이 최종 목적지에 대한 주소만 주면 목적지까지 가는 최단 경로를 알아서 계산합니다. 그 경로에 대한 정보는 각 router에 저장됩니다.
예를 들어 좌측 상단부터 시계 방향으로 1, 2, 3, 4번 router라고 할 때 1번 router는 "너는 2번 라인 따라가!", 2번 router에서는 "너는 2번 라인으로 왔으니 1번 라인 따라가!" 이런식으로 '들어온 line number - 나가는 line number'가 쌍을 이룬고 이에 대한 정보가 각 router에 들어있다고 생각하시면 됩니다.
Circuit switching 방식은 데이터가 물 흐르듯이 이동하고, 통신선로를 독점적으로 사용하여 속도와 성능이 거의 일정하다는 특징 때문에 주로 실시간 통신(전화 등)에 사용됩니다.
추가적으로 Circuit switching은 또 두 가지 방식으로 나뉩니다. 바로 FDM과 TDM인데요. FDM(Frequency Division Multiflexing)은 주파수를 다르게 하여 동시에 전송하는 방식, TDM(Time Division Multiflexing)은 같은 주파수를 쓰더라도 시간을 짧게 쪼개어 사용하는 방식입니다.
다음 그림을 참고하면 조금 더 이해가 쉬울 것 같은데요. 위에 그래프가 FDM, 아래 그래프가 TDM 방식 입니다.
지금까지 Packet switching과 Circuit switching에 대해 알아봤는데요! 그럼 누가 더 좋은걸까요..? 제 개인적으로는 Circuit switching이 더 빠르고 좋아 보입니다.. 실제로는 어떨지 간단한 계산으로 통해 구해봅시다!
link가 1 Gbps(1,000 Mbps)이고 각각의 user는 0.1%의 확률로 활성화 되어 있으며, 활성화 되어 있을 때 100 Mbps라고 가정합니다.
circuit switching은 packet이 목적지를 주면 경로를 미리 계산하고 그에 따라 이동합니다. 여기서 point는 "미리 계산한다"라는 부분인데요. 미리 계산하기 때문에 활성화의 유무와 관계없이 일단 용량을 차지하고 봅니다. 따라서 한 사람 당 100 Mbps인데, 총 link가 1,000 Mbps이니 10명의 사람밖에 이용하지 못하겠죠??
packet switching은 packet이 오는 것마다 처리하기 때문에 circuit switching처럼 미리 계산하지 않습니다. 뭔가 더 효율적일 것 같은 느낌이 들죠?? 0.1%라는 활성화 확률이 여기서 쓰이는데요. 문제에 나와있는 것처럼 35명의 사용자가 있다고 가정하고 10명 이상의 사용자가 동시에 활성화 되어 있을 확률을 구해봅니다.
35명의 사용자 중에서 10명 이하의 사용자가 동시에 사용할 확률을 모두 누적한 후 전체 확률인 1에서 빼주면 10명이 넘는 사람이 동시에 사용할 확률이 나오는데, 그 확률이 0.0004가 나왔습니다. 매우 적은 수치입니다. 여기서 35명이 아니라 그 이상으로 늘린다면 확률은 더욱더 낮아질 것입니다.
👉 결론적으로 Circuit switching 보다 Packet switching이 더 많은 인원을 수용할 수 있다는 사실을 알 수 있습니다. 실제로 Packet switching이 더 간단해서 비용이 적게 드는 장점이 있다고 합니다.
이렇게 해서 오늘은 저번 시간에 배운 Network egde에 이어 Network core와 packet switching, circuit switching 각각에 switching에 대해 알아보았습니다. 다음 시간에는 packet loss, packet delay, Throughput에 대해 알아보겠습니다. 오늘도 수고했습니다 :)