네트워크 상에서 데이터를 주고받는 방식인 Circuit Switching(회선 교환 방식)과 Packet Switching(패킷 교환 방식)을 정리한다.
# Circuit Switching
Circuit Switching은 출발지에서 목적지까지 가는 길(회선)을 특정 사용자만을 위해 할당했다고 생각하면 된다.
예를 들어 전화와 같은 통신을 생각하면 되는데,
회선 전체를 점유하고 있기에 실시간 통신이 가능하고 속도와 성능이 일정하며, 다른 사람이 끼어들 수 없다.
다만, 이러한 특징으로 인해 Bandwidth(대역폭, 일정한 시간 내에 통과할 수 있는 데이터량의 척도)가 1 Mbps라면 100kb를 사용하는 유저 10명이 Circuit Switching으로 통신하고 있을 경우 최대 10명밖에 사용하지 못하게 된다.
이는 인터넷과 같은 환경에선 매우 불리한 방식이다.
# Packet Switching
Circuit Switching이 인터넷과 같은 환경에서 불리함을 인지했다면, Packet Switching으로 해결할 수 있다.
Packet Switching은 데이터를 패킷 단위로 쪼개 그때그때 받아서 들어온 순서대로 전달하기에 회선을 점유하지 않으므로 10명 이상의 더 많은 유저를 수용할 수 있게 된다.
그러나, 이 Packet Switching도 문제가 발생할 수 있는데,
아까와 같은 Bandwidth가 1 Mbps에 100kb를 사용하는 유저가 있는 환경에서 평소에는 문제가 없지만 갑자기 유저가 몰려 10명 이상이 동시에 사용하게 될 경우, delay가 발생하게 된다.
(티켓 예매나 수강 신청, 게임 이벤트 등을 생각해보면 될 것 같다.)
이 delay는 출발지와 목적지 사이의 라우터들을 거치며 발생하게 되며,
크게 4가지가 존재한다.
- processing delay : 최초에 받았을 때 패킷을 검사하고 분석하는 delay, 링크 길이(length of physical link) / 빛의 속도(propagation speed in medium)
- queueing delay : 사용자가 많을 때 라우터의 대기 큐에 들어가서 차례를 기다리는 delay
- transmission delay : 대기 큐에서 차례가 되어 패킷의 모든 비트가 링크를 타고 나갈 때까지 걸리는 delay, packet length(bits) / link bandwidth(bps)
- propagation delay : 마지막 비트가 링크에 올라와 다음 라우터까지 도달하는데 걸리는 delay
네트워크의 효율은 이 delay들을 줄이는 게 관건이며, 각 delay를 줄이는 방법은 다음과 같다.
우선, propagation delay는 제어가 불가능 한 영역이니 어쩔 수 없다. (빛의 속도를 제어할 수 없기에 단순히 링크 길이에 좌우됨.)
processing dealy는 라우터의 스펙을 키우면 개선할 수 있다. (고속도로에 하이패스를 도입한 것으로 비유할 수 있다.)
transmission delay는 케이블을 공사하여 Bandwidth를 늘리면 개선할 수 있다. (고속도로의 차선을 늘리는 것으로 비유할 수 있다.)
문제는 queueing delay인데 사실상 모든 delay는 여기서 발생한다.
왜냐하면, queueing delay는 클라이언트들의 인터넷 사용량에 의해 결정되므로 어떻게 손을 쓸 수 없기 때문이다.
게다가 라우터에 달려있는 대기 큐의 용량도 무한이 아니기에 만약 패킷이 쏟아져 큐의 용량을 초과할 경우 패킷을 버려야 하는 packet loss(패킷 유실)도 발생할 수 있다.
이 packet loss를 대처하는 방법은 재전송인데, 이건 TCP와 신뢰성을 보장하는 방법을 공부할 때 더 자세히 다뤄보자.
'Computer Science > Computer Networks' 카테고리의 다른 글
[Computer Networks] HTTP란? (0) | 2022.12.26 |
---|---|
[Computer Networks] 프로토콜(Protocol)이란? (0) | 2022.12.20 |