[네트워크] 1-2. Packet switching, Circuit switching

kkado·2023년 4월 7일
0

네트워크

목록 보기
2/49

⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.


네트워크 상에서 데이터를 주고받는 방법에는 패킷 교환(packet switching), 회선 교환(circuit switching)이 있다.

1. Packet

패킷이란 네트워크 전송의 용량 단위이다.

송신자(sender)가 수신자(receiver)에게 메시지를 보내면, 호스트는 이를 패킷 단위로 쪼개어 보낸다.

패킷의 구조

메시지를 잘 전달하기 위한 정보가 들어 있다. 보내야 하는 주소가 적혀 있고, 라우터는 이 주소를 routing table에서 참조하여 올바른 link로 보낸다.

택배 상자의 '운송장' 같은 것이라 보면 된다. 택배 기사가 택배 상자 안에 무엇이 들어있나 관심이 없고 전달만 하듯, 라우터 역시 패킷의 헤더만 볼 뿐 안에 있는 메시지 내용은 관심이 없다.

이 메시지가 각 계층을 거치면서 전송되는 동안 올바른 전송을 위해 필요한 정보를 덧붙이거나 제거하는 과정도 발생한다. (나중에 다룸)

Payload

실질적으로 전달하고자 하는 메시지 내용이 들어 있다. 택배 상자 안의 '내용물' 이라고 이해하면 쉽다.

2. Packet switching

한 컴퓨터에서 다른 컴퓨터로 데이터를 전송할 때 여러 개의 라우터를 거치고 거쳐 전송된다. 이 때 데이터를 패킷 단위로 쪼개어 전송하는 방식이다.

패킷 교환 방식은 한 링크에서 다른 링크로 보낼 때 일단 패킷들을 모두 저장하고, 버퍼에 저장되어 있는 패킷들을 하나씩 꺼내어 보내는 store-and-forward 방식을 따른다.
즉 패킷이 다음 링크로 전송되기 전에 꼭 전체 패킷이 라우터에 도착한 후에 다음 링크로 출발할 수 있다.

queueing delay

또한, 패킷이 들어온 순서대로 처리되기 때문에 (선입선출, 큐 방식) 자신보다 먼저 들어온 패킷들을 처리하느라 일정 시간 기다려야 하는데, 이러한 지연 시간을 queueing delay 라고 한다.

packet loss

각 라우터에 저장할 수 있는 큐(버퍼)의 크기는 유한하다. 그러나 이 데이터들을 처리하는 tranmission rate 보다 데이터가 들어오는 arrival rate 가 더 크면 큐가 가득 찰 우려가 있다.

이렇게 큐가 가득 찬 상황에서 추가로 들어오려는 데이터가 있으면, 그 데이터는 큐에 들어오지 못하고 소실(drop)된다. 이를 packet loss 라고 한다.

Forwarding & Routing

네트워크의 중요한 두 가지 기능은 ForwardingRouting 이다. 두 가지 모두 '적절한 길을 찾아 보낸다' 라는 느낌은 비슷하지만 조금 다르다.

Forwarding

포워딩(Forwarding)이란 input link를 통해 들어온 패킷을 적절한 output link로 보내는 것을 말한다.

이 때 적절한 link라는 것은, 패킷에 쓰여 있는 주소를 routing table 에서 찾은 것이다.

Routing table, 또는 local forwarding table 이라고도 하는 것은, 라우팅 알고리즘을 통해 어떤 주소로 가려면 어떤 링크로 가야 하는지 를 표시해 놓은 표 같은 것이다.

이렇듯 포워딩은 라우터 하나에서 들어오는 데이터를 적절하게 내보내는 작업이므로 지역적 (local action)이다.

Routing

라우팅(Routing)이란 라우팅 알고리즘을 사용해 출발지부터 목적지까지의 경로를 정하는 과정이다.

다르게 말하면 라우팅 테이블을 만드는 과정이라고 할 수 있다. 패킷을 보고 이 패킷의 도착지를 결정하므로 전역적 (global action)이다.


Transmission & Propagation

나중에 delay 부분을 다루면서 설명하겠지만 여기서 transmission delaypropagation delay 에 대해 간단히 짚고 넘어가고자 한다.

transmission delay

라우터가 패킷을 link로 밀어내는, 즉 전파(propagate)를 시작하는 데 드는 시간이다.
이 시간은 패킷의 길이 L과 단위 시간 당 처리할 수 있는 데이터의 양을 나타내는 transmission rate R로 표현할 수 있으며 L/R 로 나타낼 수 있다.

즉 패킷 사이즈가 클수록, transmission rate가 낮을수록 데이터를 처음부터 끝까지 링크로 내보내는 시간이 길어진다.

예를 들어, 100Mbps의 transmission rate을 가지고 있는 라우터에서 10kb의 패킷을 링크로 내보낼 때 걸리는 시간은 10kb / 100 x 1000kb = 1/10000 sec = 0.1ms이다.

propagation delay

데이터가 실질적으로 전선을 타고 전파되는 데 걸리는 시간이다.
이 시간은 두 링크 간의 물리적 거리, 그리고 전송 매체가 무엇이냐에 의존적이다.

물리적 거리 d와 propagaion speed s를 이용하여 d/s 로 표현한다.


3. Circuit switching

패킷 교환과 상반된 개념은 회선 교환(circuit switching) 이다.

회선 교환 방식은 데이터를 전송하기 전 출발지에서 목적지까지의 회선을 미리 확보해 두고 그 회선을 따라 데이터를 전송하는 방식이다.

자원(회선)을 먼저 할당받기 전까지는 데이터를 보내지 않는다.
그리고 할당받은 회선은 다른 사람이 끼어들 수 없이 나만 독점해서 사용할 수 있다.

한 번 할당받은 회선은 데이터 전송이 완료될 때까지 나만 사용할 수 있으므로 속도와 성능이 일정하게 보장된다.

회선 교환은 다시 두 가지 방식으로 나뉜다.

FDM (Frequency Division Multiplexing)

하나의 회선 안에서 주파수를 나누어 할당해 주는 방식

한 사람에게 할당되는 주파수 대역은 좁지만, 중간에 누군가의 개입 없이 온전히 사용할 수 있다.

TDM (Time Division Multiplexing)

전체 회선을 단위 시간 간격으로 나누어 할당해 주는 방식

한 사람은 본인 차례에 회선을 100% 사용할 수 있지만, 여러 사람이 시간을 기준으로 나누어 사용한다는 특징이 있다.


4. packet switching vs circuit switching

예를 들어 1Gbps의 대역폭을 가지고 있는 회선이 있다고 가정한다.
그리고 각각의 사용자는 100Mbps만큼의 대역폭을 사용하고, 전체 사용 시간의 10% 정도만 사용한다. (active 하다)

이런 상황에서 회선 교환 방식은 최대 10명의 사용자에게 회선을 할당해 줄 수 있을 것이다. 그러나 각각의 사용자는 본인이 할당받은 회선을 100% 활용하지 않고 10%만 활용하므로 나머지 대부분의 시간은 회선이 사용되지 않을 것이므로 비효율적이다.

반면 패킷 교환 방식은 10명보다 더 많은 사람들을 수용할 수 있다. 예를 들어 35명의 사용자들 중에 10명 이상이 동시에 active할 확률은 0.04%보다 작다. 즉 회선의 사용률을 최대화하면서 회선 교환 방식보다 훨씬 더 많은 사용자를 수용할 수 있다.

그러나 너무 많은 사람들이 동시에 회선을 사용하려고 하면 queueing delay가 발생하다가 결국 큐가 가득 차 packet loss가 발생할 우려가 있다.

profile
베이비 게임 개발자

0개의 댓글