Packet switching vs Circuit switching
본 내용은 재학중인 학교 강의에 개인적인 공부를 더한 흔적입니다. 때문에 제가 조금은 오해한 부분이 있을 수 있습니다. 발견하실 경우 댓글로 남겨주시면 정말 감사하겠습니다 !! (책은 Computer_Networking_A_Top-Down_Approach를 참고했습니다)
인터넷(The Internet)은 전 세계적으로 수억 대의 컴퓨팅 장치를 상호 연결하는 컴퓨터 네트워크다. 그리고 인터넷을 통해 컴퓨터는 네트워크 통신을 할 수 있게 된다.
라우터와 스위치들을 노드라 하고 이들을 잇고 정보를 전달하는 선을 링크라 한다.
종단 시스템(end system)은 서로 통신을 하는 송신 시스템과 수신 시스템을 말하며 시스템은 통상 컴퓨터로 생각하면 된다. 종단시스템이라는 용어는 보통 LAN에서는 스테이션(station), WAN에서는 호스트(host)라 불리기도 한다.
요즘은 이 end system의 범위가 단순히 컴퓨터 뿐만 아니라 모바일, 노트북, 테블릿, TV 등 매우 넓어졌다.
그림에서 보는 것과 같이 인터넷 네트워크 통신은 최종적으로 end system끼리의 정보 전달이 이루어진다.
보통 라우터의 라우터 (중간 다리역할)을 하는 시스템들을 코어 네트워크라 하고 이 코어에 붙는 네트워크들을 엑세스 네트워크라 한다.
링크와 스위치의 네트워크를 통해 데이터를 전송하는 데 두 가지 기본 접근 방식이 있다.
< packet switching & circuit switching >
packet switching
packet switching은 송신할 데이터를 packet이라는 단위로 쪼개서 전송한다.
위에서 송신측은 Mr. Watson, Come here. I need you. 라는 문자열을 보내려 한다. 이때 packet switching은 이를 3가지로 쪼개서 packet을 만든 뒤 각각 목적지로 전송한다. packet들은 수 많은 네트워크들을 거쳐서 목적지에 도달하게 된다. 수신측의 컴퓨터를 보면 Mr. Watson, Come here. I need you. 라는 문자열이 잘 도착한 것을 볼 수있다. 하지만 어떻게 그럴 수 있을까를 고민해 보면 그 답은 packet과 라우터에 있다.
packet은 간단하게 header와 payload로 나눌 수 있다.
header 부분에는 목적지 end system의 IP주소, 패킷의 번호, 길이, 프로토콜 등의 식별 정보들이 담겨있다.
payload 부분에는 실제 전송하고자 하는 데이터가 담겨있다.
핵심은 패킷의 헤더 부분이다. 헤더의 정보를 이용해 목적지의 IP 주소에 순서대로 전송될 수 있다. 그리고 이 패킷의 구조나 주소 체계 등이 바로 통신 규약인 protocol의 일종이다.
만약 protocol을 사용하지 않았다면 패킷마다 정보를 저장하는 방식이 달랐을 것이고, 읽는 방식도 매번 달라야 할 것이다.
이 packet의 정보들을 이용해 송신측의 호스트는 패킷을 그냥 네트워크 상에 뿌린다. 그러면 각자 링크를 타고, 스위치를 타고, 라우터를 거치게 된다. 이 과정에서 방향을 잃지 않는 이유가 바로 명확한 목적지 주소를 가지고 있기 때문이다.
이 과정에서 라우터 또한 중요한 역할을 한다. 패킷이 수신된 링크를 구별하고 송신할 링크를 찾는, 경로를 탐색하고 패킷을 저장한 뒤 다시 송신하는 역할을 라우터가 하게 된다.
그럼 라우터는 어떤 방법으로 경로를 찾을 것인가가 또 다른 문제로 대두된다. 이는 라우터에 대해 더 자세히 공부를 한 뒤 해결할 문제로 남겨두자. 단, 한가지 배운 것은 라우터는 패킷이 전송되기 전 control plane이란 과정에서 라우터들의 경로 정보가 table로 세팅된다.
이렇게 전송된 패킷은 수신측에서 패킷의 번호로 다시 하나의 데이터로 재조합되어 수신된다.
이러한 packet switching 방식은 모든 링크들을 사용할 수 있다는 매우 큰 장점이 있다. 전송된 패킷들은 네트워크 상의 어떤 링크든지 목적지에만 연결되어 있다면 타고 갈 수 있다. 단 ! 보장 x
packet switching은 패킷이 전송되는 경로가 각각 다 다르고 다양하다 보니까 패킷이 잘 전송됬는지의 여부를 따지기가 매우매우 힘들다. 목적지의 end system이 만약 정보가 잘 왔는지 알고 싶으면 송신측의 end system까지 가서 물어봐야 한다.
송신측의 입장에서도 패킷이 잘 갔는지, 중간에 손실됬는지, 멈춰있는지 알 수가 없다. 따라서 packet switching은 항상 최선의 노력(best effort)를 했지만 보장은 하지 못한다고 한다.
circuit switching
circuit network에서 가장 중요한 것은 circuit 설정이다.
packet network와는 다르게 circuit network는 데이터가 호스트에서 목적지로 가는 경로가 단 하나다. 즉, 유일한 경로를 통해 데이터를 전송한다. 때문에 circuit만 설정하면 데이터는 그저 보내기만 하면 된다.
packet의 헤더같은 정보가 필요 없고, 중간에 저장하고 보내는 과정도 필요없고, 데이터의 흐름대로, 물리적으로 데이터가 빠르게 순차적으로 전송된다.
게다가 유일한 경로를 사용한다는 특성 때문에 100% 보장이란걸 할 수 있다.
두 호스트간에 circuit이 한 번 설정되면 해당 circuit을 점유하고 있는 것이기 때문에 다른 제 3의 호스트나 데이터가 끼지 못한다. 전송되는 데이터는 길을 잃을 가능성이 없고, 손실될 가능성도 거의 적어진다.
만약 목적지에서 데이터가 잘 왔는지 확인하고 싶다면 출발지의 호스트가 아닌 바로 전의 네트워크에 물어보면 된다. 왜냐하면 유일한 경로를 사용하기 때문에 바로 전의 네트워크 역시 출발지의 호스트에게 모든 데이터를 받았을 확률이 100%이기 때문이다.
단 ! circuit을 예약하는데 매우 복잡해 시간이 오래걸린다. 네트워크가 많아질 수록 circuit을 점유하는 데 복잡도가 엄청나게 증가한다.
그리고 circuit을 점유하고 있다는 특성 때문에 다른 네트워크가 해당 링크를 사용할 수 없게 되어 비용이 증가하고, 만약 점유하고 있는 circuit에서 정보를 보내지 않는 시간동안은 회선이 낭비되게 된다.
이 circuit network는 전화망에서 주로 사용된다. 우리가 전화를 할 때 연결음이 가기 전 잠시동안 지연되는 시간이 있다. 이 지연시간이 바로 회선을 잡는 시간이다.
packet switching vs circuit switching
circuit switching network의 가장 큰 장점은 유일한 회선 사용에 의한 빠른 데이터 전송이다. 이는 무시할 수 없는 큰 매력이다. 하지만 네트워크가 점점 복잡해져 가는 현시대에 circuit을 설정하는 것이 더 복잡해져 간다.
따라서 packet switching network를 주장하는 사람들은 아래의 이유를 든다.
(1) 회선 교환보다 전송 용량을 더 잘 공유하고
(2) 회선 교환보다 구현이 간단하고 효율적이며 구현 비용이 적다는 점
(3) 패킷 교환은 필요에 따라 링크 사용을 할당 (링크를 효율적으로 사용할 수 있음)
가변적이고 예측할 수없는 종단 간 지연 때문에 (주로 가변적이고 예측할 수 없는 대기열 지연 때문에) 패킷 스위칭이 실시간 서비스 (예 : 전화 통화 및 화상 회의 통화)에 적합하지 않다
하지만 패킷 교환 및 회선 교환이 오늘날의 통신 네트워크에서 널리 보급 되더라도, 추세는 확실히 패킷 교환의 방향에 있다. 오늘날 많은 회선 교환 전화 네트워크 조차도 서서히 패킷 교환으로 전환하고 있다. 특히, 전화 네트워크는 전화 통화비가 비싼 해외 의 경우 패킷 교환을 사용하는 경우가 많다.