[네트워크] Packet switching vs Circuit switching

black·2021년 9월 8일
0

네트워크

목록 보기
1/2
post-thumbnail

Packet이란?

패킷(Packet)이란 네트워크에서 출발지와 목적지 간에 라우팅되는 데이터 단위입니다. 네트워크 패킷은 사용자 데이터와 제어 정보로 이루어지며, 사용자 데이터는 페이로드(payload)라고 합니다. 제어 정보는 페이로드를 전달하기 위한 정보입니다. 예를 들어, 이메일과 웹 페이지는 네트워크 패킷을 사용하여 송신자와 수신자 사이에 정보를 주고받습니다. 전송되는 각 패킷에는 소스 및 대상, 프로토콜 또는 ID와 같은 정보가 포함됩니다.

왜 인터넷에서 Packet을 사용할까?

packet을 사용하는 다양한 이유가 있지만, 가장 중요한 이유는 데이터에 에러가 있을 경우 재전송을 최소화하여 cost를 줄이기 위함입니다.

예를 들어, 보내야할 데이터의 크기가 150MB이고,
1. 150MB의 데이터를 한번에 보내는 경우와
2. 150MB를 1.5KB의 크기로 나누어 100,000개의 packet을 보내는 경우로 가정해봅시다.

150MB의 데이터를 한번에 전송하는 경우, 한 비트에 오류가 있다면 150MB의 데이터를 재전송해줘야 하는 cost가 발생합니다. 반대로 100,000개의 packet으로 보내는 경우에는 한 비트에 오류가 있다면 1.5KB의 packet 하나만 재전송하면 되기 때문에 전체 데이터를 전송하는 것보다 cost가 훨씬 줄어들게 됩니다.

Packet switching과 Circuit switching

Packet switching

packet switching은 송신할 데이터를 packet 단위로 쪼개서 전송합니다.

패킷은 간단하게 헤더(header)와 페이로드(payload)로 나눌 수 있습니다. 헤더에는 목적지 host의 IP 주소, 패킷의 번호, 길이, 프로토콜 등의 식별 정보들을 담고 있고, 페이로드에는 위에서 말한거와 같이 전송하고자 하는 데이터가 담겨 있습니다.

핵심은 패킷의 헤더 부분입니다. 헤더의 정보를 이용해 목적지의 IP 주소에 순서대로 전송될 수 있습니다. 그리고 이 패킷의 구조나 주소 체계 등이 바로 프로토콜의 일종입니다.
만약 프로토콜을 사용하지 않았다면, 패킷마다 정보를 저장하는 방식과 읽는 방식이 매번 달라야 할 것입니다.

이 패킷의 정보들을 이용해 송신 측의 호스트가 데이터를 전송하면 패킷이 링크를 타고, 스위치를 타고, 라우터를 거쳐 수신 측 호스트에 도달하게 됩니다. 이 과정에서 방향을 잃지 않는 이유가 명확한 목적지 주소를 가지고 있기 때문입니다.

이 과정에서 라우터가 중요한 역할을 합니다. 패킷이 수신된 링크를 구별하고 송신할 링크를 찾는, 경로를 탐색해 적절한 링크로 내보내는 역할을 라우터가 합니다. 이때 패킷 전체가 라우터 버퍼에 저장되었다가 포워딩(Store and forward) 됩니다.

이러한 packet switching은 모든 링크를 사용할 수 있다는 장점이 있습니다. 전송된 패킷들은 네트워크 상의 어떤 링크든지 목적지에 연결되어 있다면 타고 갈 수 있습니다.

하지만, 라운터에 패킷이 몰리게 되면 packet delay나 심하면 packet loss까지 발생할 수 있습니다.


Circuit switching

circuit switching은 호스트와 호스트 간의 링크를 예약해서 사용하는 방식을 말합니다. 이때, 회선을 셋업하는 과정이 필요합니다.

circuit switching은 유일한 경로로 전달하기 때문에 패킷의 헤더같은 정보가 필요 없고, 중간에 저장하고 보내는 과정도 필요 없고, 데이터의 흐름대로, 데이터가 빠르게 순차적으로 전송됩니다.

하지만 회선을 셋업하는데 매우 복잡해 시간이 오래 걸립니다. 네트워크가 많아질수록 회선을 점유하는 데 복잡도가 증가합니다.

또한, 회선을 점유해 사용하기 때문에 다른 네트워크가 해당 링크를 사용할 수 없게 되어 네트워크를 사용할 수 있는 사용자 수가 제한되고, 점유하고 있는 회선에서 데이터를 보내지 않는다면, 그 시간동안 회선은 낭비되게 됩니다.

circuit switching 방식은 주로 전화망에서 사용됩니다.


Packet switching vs Circuit switching

circuit switching은 회선을 점유해 데이터를 전송하기 때문에 신뢰성과 전송 속도를 보장할 수 있습니다.

하지만 회선을 셋업하는 데에 시간이 너무 오래 걸리고, 수용할 수 있는 사용자가 제한되고, 데이터가 전송되지 않는 동안에 회선 낭비된다는 단점이 있습니다.

이에 반해, packet switching은 링크를 공유하기 때문에 많은 사용자를 수용하고 링크가 낭비되지 않는다는 장점이 있습니다.

하지만 데이터가 급격하게 몰리게 되면 packet delay, loss와 같은 문제가 발생하게 됩니다. 이는 신뢰성 있는 데이터 전송과 congestion control이 요구되는 프로토콜을 사용하여 해결할 수 있습니다.


Reference

Computer Networking: A Top-Down Approach

0개의 댓글