스위칭의 필요성
스위칭이라는 것은 노드와 노드 사이에 링크가 있는데, 그거를 임시로 잠시 연결해주는 것을 스위칭이라고 부릅니다. 스위칭이라는 것이 없게 되면 네트워크는 노드와 링크로 구성이 되는데 이 노드하고 링크가 연결이 되어야 데이터를 보냅니다.
예를 들어서 두 개만 있다고 가정합니다. 그러면서 이제 선하나만 연결되면 됩니다. 그러면 노드가 3개가 되면 어떻게 될까요? 그러면 어차피 연결이 되어야 우리가 정보를 주고받을 수 있으니까 또 선이 연결됩니다. 4개가 되면, 5개가 되면, 6개가 되면, 10개가 되면, 무지막지한 선들이 필요하게 될 겁니다.
그러면 선은 공자가 아니기에, 비용이 들어갑니다. 그런데 가만히 생각을 해보면 내가 선이 10개가 있으면 그 10개를 다 쓰는게 아니고, 어차피 내가 데이터를 보낼 때는 한 선만 쓰니까 나머지 선들은 다 놀고 있습니다. 그러니까 효율성이 좀 떨어지는 방식입니다. 다시 말해서 내가 상대방하고 데이터를 주고받기 위해서 모두 다 상대방들을 하나의 선을 다 연결하는 방식은 효율적이지 않다는 것을 알 수가 있습니다.
그러면 중간에 하나의 연결장치를 두는 겁니다. 이거를 우리가 스위치라고 부릅니다. 이 중간에 있는 스위치라고 부르는 이 연결장치에 다른 컴퓨터들이 다 선을 거기다가 연결합니다. 그러면 선이 하나만 있으면 됩니다. 모두 다 이렇게 각자 연결할 필요가 없이 선을 하나만 연결하게 되면 스위치가 어떤 역할을 할까요?
스위치가 그때그때마다 잠깐 얘랑 연결해주고 또 잠깐은 재랑 연결해주고 뭐 이렇게 해주는 방식을 쓰게 되면 선을 효율적으로 쓰면서 우리가 원하는 데이터를 전송하겠다라는 목적도 역시 달성을 해줄 수가 있습니다.
스위칭 방식의 종류
자 그런데 이런 스위칭 방식을 크게 분류를 해보면 3가지 방식으로 나뉘게 됩니다. 회선 교환이라고 부르는 Circuit switching, 또 하나는 메시지 교환이라고 부르는 Message Switching, 또 하나는 패킷 교환이라고 부르는 Packet Switching이라고 부릅니다. Packet Switching 방식은 다시 방식에 따라서 데이터그램방식과 가상회선방식으로 다시 나뉘게 됩니다.
회선교환방식, Circuit switching, 이 Circuit에 대해서 그렇게 어렵게 생각할 필요가 없습니다. Circuit하면 뭐 회로 이렇게 생각하시는데 그냥 선이라고 생각하면 됩니다. Circuit switching이라는 방식은 내가 데이터를 보내는 송신자가 있고 데이터를 받는 수신자가 있습니다.
그러면 나하고 걔 사이에 여러 개의 선들이 있습니다. 여러 개의 있는 이유는 여러 개의 통신장치를 거쳐 갈테니까, 그 선을 두 사람에게 아예 할당하는 방식, 그 선을 그 Circuit을 통신하고자하는 데이터를 주고 받고자 하는 두 사람에게 아예 할당하는 방식을 Circuit switching이라고 합니다.
그러니까 Circuit 이라는 말은 선이고 switching은 할당을 딱 해줍니다. 그러면 무슨 특징이 생기죠? 그 선은 다른 사람은 못 쓰는 겁니다. 왜냐하면 두 사람 쓰게 해주는 거니까. 다른 사람은 못 씁니다. 그 대신 언제든지 하고 싶을 때, 데이터를 보낼 수가 있는 특징이 있습니다. 이런게 이게 대표적인 네트워크이 뭐가 있냐하면 바로 전화 네트웍이 그렇습니다. 이 전화 네트웍을 조금 유식하게 이야기하면 PSTN이라고 부릅니다.
Public Switched Telephone Network이라고 합니다. 전화 네트웍 이렇게 하셔도 되지만, 텔레폰 네트웍 이렇게 이야기 하셔도 되지만 PSTN 이렇게 부르시면 좀 더 유식해 보일 수 있습니다. PSTN에서 사용하는 방식이 Circuit switching을 사용합니다.
그래서 여러분 요즘에는 사실 유선전화가 많이 없어지기는 했는데 전화 수화기를 들고 전화번호를 누른 다음에 전화통화를 합니다. 그럴 때 말을 안하면, 아무 말도 안하면 전화비를 냅니다. 이렇게 들고서 있기 만해도 하더라도 전화비를 내게 됩니다. 송신자와 수신자 사이에 선 자체를 다른 사람은 절대로 못 쓰게 하고 두 사람에게 아예 할당을 해줬기 때문입니다.
뭐 그러다 보니까 항상 고정된 크기의 속도를 낼 수도 있고, 왜냐하면 두 사람만 쓰는 거라고 할 수 있습니다. 그 다음에 연결 설정하는 그런 과정도 필요하게 되고 왜냐하면 여러분 전화번호를 누르는 것처럼 내가 누군데 누구랑 데이터를 주고 받습니다. 이런거를 다 정해야 합니다.
이렇게 선 자체를 할당하는 방식을 회선교환 방식이라고 합니다. 내가 데이터를 보내는데, 돈을 내는 것 그것은 당연하다고 볼 수 있습니다. 그런데 내가 돈을 왜 내야 할까요? 데이터를 보내지도 않기 떄문입니다.
아무 말 안하고 있는데 내가 왜 그거에 대해서 돈을 내야하지 이런 생각이 들 수 있습니다. 거꾸로 이야기 하면 누군가 데이터를 보내지 않는 시점에서는 다른 사람이 데이터를 보낼 수 있도록 그 선에 대해서 즉 그 선 자체를 다른 사람이 좀 공유할 수 있도록 해줄 수 없을까 라는 측면에서 나온게 메시지 스위칭입니다.
그러니까 그 메시지를 보내는 동안에는 다른 사람은 못써요. 근데 일단 보내고 나면 다른 사람이 그 라인을 쓸 수 있도록 해줍니다. 그래서 이 방식을 메시지 스위칭에서 키워드가 뭐냐하면 Store and Forward입니다. Store and Forward라는 말이 나오면 메시지 스위칭입니다. 왜냐하면 내가 컴퓨터면 메시지가 옵니다.
이제 선이 데이터를 보내야 합니다 . Forward를 하는 것입니다. 그리고 Forward를 하는 동안에는 다른 컴퓨터는 그 선을 사용할 수 가 없습니다. 하지만 다 보내고 나면 쓸 수가 있습니다. 그래서 선을 효율적으로 쓰겠다는 것입니다.
이게 무슨 문제가 있냐하면 중간에 있는, 인터넷에 있는 모든 통신장비들이 이걸 저장해야 됩니다. 내가 8G용량의 파일을 보내면 통신 장치는 8G 용량을 저장해야 됩니다. 메모리가 너무 많이 듭니다. 근데 8G짜리만 보낼 수 있고 그럼 9G짜리는 어떡해야 할까요?
100G짜리가 들어오면 어떡해야 할까요? 그래서 이 메시지 스위칭방식의 큰 문제점 중 하나는 바로 그겁니다. 그래서 그러면 이 통신장치가 저장할 수 있는 크기로 잘라서 보내야 합니다. 그 짜른 단위를 뭐라고 하느냐? 그걸 패킷이라고 하는 겁니다.
그러니까 이제 메시지 크기가 전체 통째로 보내는 방식은 메시지 스위칭인데, 중간에 있는 노드들이 저장하기 위해선 메모리가 너무 너무 많이 필요하니까 그건 현실적으로 어렵습니다. 그렇다면 중간에 있는 통신 장치들이 저장할 수 있는, 1K, 2K 이건 뭐 용량이 얼마 안합니다.
그러니까 그런 크기로 잘라서 보내겠다는 것이 패킷스위칭방식이 되는겁니다. 근데 큰 메시지를 자르다보니까 얘는 앞에 거고 얘는 중간 거고 얘는 마지막거야 라는 것을 표시하기 위해서 부가적인 정보가 들어가야됩니다. 그걸 우리가 이제 헤더라고 부르는 겁니다.
그래서 인제 패킷 스위칭이라고 하는 방식은 패킷단위로, 이 패킷을 보낼 때는, 이 링크를 통해서 보낼 때는 다른 패킷을 쓸 수가 없습니다. 이 패킷을 보내고 나면 그 선을 다른 컴퓨터가 보내는 패킷이 점유할 수도 있습니다.
이제 그걸 인제 효율적으로 사용할 수가 있습니다. 보통 우리가 트래픽 자체가 Bursty한 트래픽은 아주 적합하다고 생각합니다. Bursty하다는 것은 뭐냐하면 웹브라우저를 쓸 때 이렇게 쭉 읽어보다가 링크를 누르면 이미지와 텍스트가 쭉 날라옵니다. 보내는 것은 요만큼인데 좀 있다가 왕창 날라옵니다. 볼 동안에는 트래픽이 발생 안합니다.
그러다가 갑자기 쭉 트래픽이 발생하고, 또 한동안 발생 안하다가 또 쭉 트래픽이 발생하고 이런것들을 우리가 Bursty하다, 군집성이 있고 합니다. 이런 특성을 가지는 트래픽들이 이 패킷 교환에서는 적합하다고 합니다. 그런데 패킷 교환 방식은 두 가지로 나누어집니다.
하나는 데이터그램방식과, 가상회선방식 이렇게 2가지 방식으로 나뉘게 됩니다.
데이터그램방식은 말 그대로 정말 사용자 메시지를 잘라서 그냥 보내는 것을 뜻합니다. 연결설정이라는 것이 없이 그냥 메시지가 들어오면 패킷 단위로 잘라서 쭉 쭉 쭉 보내는 것, 목적지가 어디다 라는 것만 정해놓고 보내는 방식을 우리가 데이터그램방식이라고 합니다.
내가 1,2,3,4개의 패킷이 가다보면 1번째 패킷이 가는 경로나 2번째 패킷이 가는 경로나, 3번째, 4번째가 다 다를 수도 있습니다. 물론 같을수도 있지만 다를수도 있습니다. 내가 보낼 때는 분명 순서대로 보냈는데 도달할 때는 순서와 다르게 도착할 수도 있습니다. 근데 얘의 장점이 뭐냐하면 네트웍을 항상 효율적으로 쓸 수 있습니다.
이번에는 이리로 보내자 왜냐하면 이리로 보내는게 더 빠르니까 그다음 패킷이 왔을 때는 이번에는 이쪽으로 보내는게 더 빠르다 이렇게 보내는 것입니다. 그래서 네트워크 전체적인 입장에서 보게되면 데이터그램방식은 항상 네트웍이 가장 효율적으로 보낼 수 있는 그런 특징을 가지고 있습니다.
근데 반면 순서대로 도착을 안하기 때문에 어딘가에서는 순서대로 맞춰줘야 된다는, 즉 이거를 순서제어라고 부르는데 어딘가에서는 순서대로 맞춰야 된다 라고 하는 그런 기능이 있어야 됩니다.
가상회선 방식이라고 하는 것은 개념적으로는 서킷 스위칭 방식과 비슷합니다. 서킷 스위칭 방식이 무엇이었냐면 연결을 설정해서 두 사람만 사용하는건데 이것이 다릅니다. 기본적으로 패킷교환 방식을 사용하기 때문에 선 자체를 다른 사람도 공유하여 사용 할 수 있습니다.
패킷스위칭방식에서의 가상회선방식이라고 하는 것은 공유할 수가 있는 방식이에요. Circuit스위칭은 공유가 안됩니다. Circuit스위칭은 패킷스위칭방식의 가상회선방식이라고 하는 것은 선을 공유할 수가 있습니다. 왜냐하면 패킷 단위로 나눠서 전송하기 때문에 공유할 수가 있습니다.
그래서 항상 데이터그램방식과 가상회선방식의 다른 점은 일단 연결설정을 합니다. 왜냐하면 선을 만들어야 합니다. 내가 어디어디어디를 거쳐 간다는 선을 만들어야 합니다. 그래서 선을 만들기 위해서 어디어디를 거쳐간다라고 하는 가상회선을 설정하고 그 선을 여러 패킷들이 공유할 수 있는 구조를 갖고 있습니다.
그러다 보니까 순서대로 선을 따라서 순서대로 가다보니까 이걸 이제 먼저 출발한 패킷이 항상 목적지에 순서대로 도착한다라는 그런 특징을 갖게 됩니다. 가면서 어떡하느냐라는 것은 이제 선이 패킷이 들어오게 되면, 1번, 2번, 3번, 4번이 있으면 1번에서 들어오게 되면 2번부터 4번까지 어떤 포트로 전송 할지를 결정합니다.
거기에 Label이라는 라벨을 붙이게 됩니다. 3번 포트로 보내는데 여기 번호는 66번이야 이런 식으로, 그 다음에 이번에도 3번 포트로 보내는데 Label은 몇 번이야, 이런 식으로 쭉 붙여나갑니다. 가상회선이 이렇게 선을 붙여나가게 되고, 최종적으로 이런 선들이 연결되게 되면 1번 포트, 몇 번 포트, 몇 번 포튼데 그 위에 선중에서 나는 14번 가상적인 선, 66번 가상적인 선, 22번, 77번 이렇게 번호들, 레이블이 붙은 거에 순서들의 나열로 메시지를 보낼 수 있습니다.
이렇게 가상의 선에서는 레이블을 붙여서 갈수가 있습니다. 그런데 이제 데이터그램방식에서 사용하는 방식을 가상회선방식으로 겹쳐서 사용할 수가 있습니다. 그러니까 데이터그램방식에서는 원래 목적지로 갈 때 순서대로 가지 않고 내가 최대한의 효율을 높여서 가는 방식이었는데, 이 방식을 그대로 사용하지 않고 가상회선 방식으로 다시 만들어서 보낼 수도 있습니다.
그러면 사실은 데이터그램방식은 아닌 것입니다. 원래는 그렇게 만들어졌지만 이렇게 레이블을 붙여서 보내는 방식으로 사용할 수 있습니다.
MPLS
이렇게 사용하는 것을 MPLS라고 합니다. Multiple Protocol Label Switching이라고 부르는데 속도 때문에 사용하게 됩니다. 이게 데이터그램 방식의 큰 문제점은 패킷이 들어왔을 때 매번 패킷마다 이리보낼까? 저리보낼까? 고민해야 됩니다. 중간에 통신장치들이 그게 어떤쪽으로 보내야 효율적인지 결정해되니까 이게 결정할 시간이 걸리기 떄문입니다.
그런데 이제 가상회선방식으로 보내게 되면 Label을 붙여서 보내기 때문에 고민할 필요가 없습니다. 그냥 받아서 들어오게 되면 이쪽으로 보낸다, 저쪽으로 보낸다, 확실하게 결정이 되있게 됩니다. 그래서 속도가 빠릅니다.
즉, 스위칭 스피드라는게 굉장히 빠른 겁니다. 그래서 지금 사용하는 인터넷들은 속도를 개선하기 위해서 많이 MPLS를 사용하고 있습니다.
'SW > 네트워크' 카테고리의 다른 글
네트워크 : LAN 매체와 유선 랜 (0) | 2020.09.30 |
---|---|
네트워크 : 다중접속 프로토콜 개념과 종류 (1) | 2020.09.29 |
네트워크 : 네트워크 모델과 표준 프로토콜 : 개념, 설명, 개요 (0) | 2020.09.07 |
네트워크 : 구성요소, 조건, 연결 형태, 토폴로지, 분류 (0) | 2020.09.06 |
IoE, IoT 분야 교육과 직업에 대해 알아볼까요? (0) | 2018.12.09 |