[k-mooc/네트워크] 02. 스위칭과 다중 접속 프로토콜

2025. 8. 29. 21:32·CS/네트워크

https://lms.kmooc.kr/course/view.php?id=5858

 

K-MOOC

 

www.kmooc.kr

[K-MOOC] 네트워크 기초/안성진 강의 정리

 

01. 스위칭 방법과 종류

01.1 스위칭의 필요성

네트워크는 노드(장치)와 링크(선)로 구성된다. 노드끼리 데이터를 주고받으려면 서로 연결해주는 링크가 필요하지만, 노드가 많아질수록 연결에 필요한 선의 수가 급격히 늘어나 비용이 많이 발생하게 된다.

또한 이렇게 연결된 선들 중 실제로 데이터를 전송하는 선만 사용되고, 나머지 선은 사용되지 않고 유휴 상태가 되기 때문에 효율이 낮아진다.

즉 모든 노드를 서로 선으로 연결하는 방식은 비효율적이다.

https://book.systemsapproach.org/internetworking/switching.html

이러한 문제를 해결하기 위해, 모든 노드를 서로 직접 연결하는 방식 대신 여러 노드를 스위치(Switch)에 연결하도록 구성한다. 스위치는 필요할 때만 통신하고자 하는 두 장치를 연결한다.

이런 스위치들을 연결하면 더 큰 규모의 네트워크를 만들 수 있다. 스위치에 선을 연결해두면 통신이 필요할 때마다 특정 장치끼리 잠시 연결하여 선을 효율적으로 사용하면서 데이터를 전송할 수 있다.

이처럼 스위치가 장치 간 연결을 임시로 만들어 주는 방식을 스위칭(Switching)이라고 한다.

 

01.2 스위칭 방식의 종류

https://www.gatevidyalay.com/message-switching-types-of-switching/

 

01.2.1 회선 교환(Circuit Switching)

강의

➡️ 통신하고자 하는 두 장치 사이에 물리적인 선(회선)을 연결한다.
     선을 두 장치가 독점적으로 사용하여 다른 장치는 그 선을 사용할 수 없다.
  • 특징
    • 회선 연결 시 데이터를 주고받는 동안 계속 유지된다. ⇒ 자원이 연결 되어있는 동안 계속 점유된다.
    • 두 장치 사이에 고정된 속도를 가진다.
    • 연결을 설정하는 데 시간이 소요되지만, 이후에는 지연 시간이 발생하지 않는다.
    • 데이터 전송량이 많은 경우 유용하다.
  • 대표 사례: 전화망(PSTN; Public Switched Telephone Network)

 

01.2.2 메시지 교환(Message Switching)

💡 데이터를 보내지 않을 때는 다른 사람이 그 선을 사용할 수 있도록 하면 어떨까?

강의

➡️ 데이터를 전송하는 동안에는 다른 장치가 해당 선을 사용할 수 없지만, 전송이 끝나면 다른 장치가 선을 사용할 수 있다.

메시지 교환은 메시지 전체를 한 번에 인접 노드로 전달하며, 메시지를 수신한 노드는 메시지를 저장(Store)한 뒤 다음 노드로 전달(Forward) 한다.

1. 송신지에서 전송된 메시지가 노드에 도착하면 저장(Store) 한다.
2. 선이 준비되면 노드는 메시지를 전송(Forward) 한다. [전송 중에는 해당 선을 다른 장치가 사용할 수 없다.]
위 과정을 메시지가 수신지에 도착할 때까지 반복한다.
  • 특징
    • 유휴 링크를 다른 메시지 전송에 사용할 수 있으므로 효율적이다.
    • 각 노드는 메시지 전송 공간을 확보해야 한다.
🚧 그러나 송신지와 수신지 사이의 모든 중간 노드가 메시지를 저장(Store)해야 하므로, 용량이 큰 메시지를 전송할 경우 메모리 부담이 커진다.

 

01.2.3 패킷 교환(Packet Switching)

강의

➡️ 데이터를 통신장치가 저장할 수 있는 크기인 패킷(Packet) 단위로 나누어 전송한다.

큰 메시지를 여러 패킷으로 나누어 전송하기 때문에, 각 패킷에는 순서를 표시하기 위한 부가 정보(헤더)가 추가된다.

패킷 스위칭 방식에서는 각 패킷을 전송할 때 해당 링크를 잠시 사용하며, 전송이 끝나면 다른 컴퓨터가 같은 링크를 사용할 수 있다. 즉 링크를 효율적으로 공유하면서 데이터를 전송할 수 있는 방식이다.

  • 특징
    • 군집성(Bursty) 트래픽 전송에 적합하다.
    • 두 장치가 고정된 전송 속도를 갖지 않으므로 우선순위를 적용할 수 있다.
    • 회선 교환 방식과 달리, 링크에 문제가 발생하면 중간에 다른 링크를 선택할 수 있다.
🔖 Bursty traffic: 트래픽 발생이 간헐적이고 불규칙적으로 집중되는 특징을 가진 데이터
[예] 웹 브라우저에서 페이지를 읽다가 링크를 클릭하면 이미지와 텍스트가 한꺼번에 전송되고 그 다음 일정 시간 동안 트래픽은 거의 발생하지 않는다. 이후 다시 갑자기 트래픽이 발생하는 형태가 반복된다.

 

 

패킷 교환은 데이터그램 방식과 가상회선 방식으로 나뉜다.

01.2.3.1 데이터그램 방식(Datagram Switching)

➡️ 사용자 메시지를 목적지만 설정한 뒤 패킷 단위로 나누어 전송한다.
  • 특징
    • 각 패킷이 서로 독립적으로 처리되며, 목적지에 순서와 상관없이 도착한다.
    • 연결 설정 과정이 없다.
    • 주로 요청-응답 형태로 통신한다.
    • 항상 같은 경로로 전송하지 않는다.

강의: 네트워크 비연결형(데이터그램) 패킷 스위치

각 패킷은 서로 다른 경로로 전송될 수 있다. 따라서 송신지에서는 순서대로 보냈더라도 목적지에서는 순서가 바뀌어 도착할 수 있다.

이 방식은 패킷별로 최적 경로를 선택하여 전송하기 때문에 전송 속도를 향상시켜 네트워크 전체를 효율적으로 사용할 수 있지만, 목적지에서 패킷 순서를 맞추는 추가적인 순서 제어 기능이 필요하다.

 

01.2.3.2 가상회선 방식(Virtual Circuit Switching)

➡️ 회선 교환과 유사하게 데이터 전송 전에 연결을 설정하지만, 패킷 단위로 전송되므로 링크를 다른 장치와 공유할 수 있다.
  • 특징
    • 모든 패킷들이 가상회선을 따라 순서을 유지하며 전송되므로 동일한 경로로 순서대로 목적지에 도착한다.
    • 패킷 스위칭을 기반으로 하므로 링크를 다른 전송과 공유하여 네트워크 효율이 향상된다.

강의: 가상회선 네트워크 스위치

(1) 연결 설정

가산회선 방식은 데이터를 보내기 전에 먼저 선(circuit)을 만들기 위해 연결을 설정한다. 송신지가 데이터를 보내기 전에 네트워크 장치(스위치)를 거쳐 어떤 경로로 패킷을 보낼지 미리 결정한다.

 

(2) 가상회선 네트워크 요청 전송 [요청 포트 레이블 부여]

경로가 정해지면 각 스위치 포트에 레이블(Label)을 붙인다.
[예] 1번 포트 → 14번 레이블, 2번 포트 → 22번 레이블 … 이런 식으로 순서대로 번호를 붙인다.

이렇게 설정된 경로를 따라 가상회선이 만들어진다.

 

(3) 가상회선 네트워크 응답 전송 [응답 포트 레이블 부여]

네트워크 장치들이 요청을 받아 레이블과 경로 정보를 확인한 뒤, 가상회선이 만들어졌음을 송신지에 알린다.
⇒ 이제 송신지는 설정된 가상회선을 따라 실제 데이터를 패킷 단위로 전송할 수 있다.

 

(4) 설정된 가상회선 상의 1개 패킷 흐름 [데이터 전송]

설정된 가상회선을 따라 패킷을 전송한다. 각 패킷에는 레이블이 붙어있기 때문에 스위치가 패킷을 올바른 포트로 전달할 수 있다. 이 과정 덕분에 모든 패킷이 순서대로 목적지에 도착하게 된다.

 

01.2.3.3 MPLS(Multi-Protocol Label Switching)

➡️ 패킷 스위칭 기반 가상회선 방식을 사용한다.

강의

패킷마다 레이블을 붙여 미리 설정된 경로를 따라 전송함으로써 순서와 경로를 고정하여 속도가 향상된다.

  • 라우터나 스위치처럼 작동할 수 있다.
    • 라우터처럼 동작할 경우: 대상 주소를 기반으로 패킷을 전달한다.
    • 스위치처럼 동작할 경우: 레이블을 기반으로 패킷을 전달한다.

데이터그램 방식에서는 패킷이 들어올 때마다 최적 경로를 결정해야 하므로 처리 시간 지연이 발생하지만, MLPS는 경로가 미리 결정되어 있어 패킷 전달 속도(Switching Speed)가 매우 빠르다. 이 때문에 현재 인터넷에서는 속도 개선을 위해 MPLS를 많이 사용하고 있다.

 

 

 

02 다중 접속 프로토콜

02.1 다중 접속(Multiple Access)

✅ 여러 대의 컴퓨터가 하나의 통신 매체를 같이 쓸 때 생기는 문제를 다루는 것

공기를 매체로 두 사람이 동시에 떠들면 말이 섞여서 잘 안들리듯이 컴퓨터도 동시에 데이터를 보내면 데이터가 섞이게 된다.
따라서 누가 언제 매체를 사용할지 조정(제어)해줄 필요가 있다.

다중 접속은 일반적으로 데이터링크 계층에서 다룬다. 데이터링크 계층 기능에는 가장 중요한 기능인 에러 제어 외에도 흐름 제어와 접근 제어가 있었는데, 다중 접속과 관련된 것이 접근제어로 누가 매체를 사용할지 정해주는 것이다.

다중 접속을 다루기 위해 데이터링크 계층은 2개의 부계층으로 나뉜다. (1)상위 부계층(Data Link Control)은 데이터 링크 제어를 담당하며, 모든 데이터링크 계층이 공통적으로 가져야 하는 기능을 수행한다. (2)하위 부계층(Multiple-Access Resolution)은 공유 매체에 여러 장치가 동시에 접근할 때 생기는 충돌 문제를 해결한다. 이때 매체의 종류가 다양하므로 종류별 접속 방식을 따로 규정한다.

 

02.2 다중 접속 프로토콜(Multiple-Access Protocols)

여러 시스템이 공통된 링크에 연결된 경우를 멀티포인트 연결(Multipoint Connection)이라고 하는데, 이때 여러 장치가 동시에 데이터를 전송하면 충돌이 발생할 수 있다.

따라서 매체를 공유하는 환경에서는 누가 언제 전송할지를 정해주는 규칙이 필요하다. 이러한 매체 접근 문제를 해결하는 방법은 크게 세 가지로 분류할 수 있다.

 

02.2.1 무작위 접근(Random Access Protocol)

➡️ 여러 시스템이 서로 대등한 입장에서 정해진 규칙 없이 자유롭게 매체에 접근한다.
     한 시스템이 다른 시스템을 통제하거나 관리하지 않고, 각자가 원하는 시점에 데이터를 전송할 수 있다.

그러나 이 방식에서는 전송 순서를 정해주는 별도의 규칙이 존재하지 않기 때문에 경쟁(Contention)이 발생한다. 먼저 데이터를 전송한 시스템이 매체를 차지하게 되고, 다른 시스템들은 그 순간에는 전송할 수 없기 때문이다.

문제는 여러 시스템이 동시에 데이터를 보내게 되면 충돌(Collision)이 발생한다는 것이다. 충돌이 발생하면 해당 데이터 프레임이 손상되어 다시 사용할 수 없어 결국 다시 전송해야 한다.

🚧 무작위 접근 방식은 구조적으로 충돌을 완전히 피할 수 없으므로, 충돌을 어떻게 다루느냐가 핵심 과제가 된다.

 

02.2.1.1 ALOHA

강의

1970년대 초반 미국 하와이 대학교에서 개발한 무선 통신 시스템으로, 각 컴퓨터가 안테나를 통해 데이터를 전송하면 중간에 위치한 기지국(Base Station)이 데이터를 받아 목적지로 전달하는 구조였다. 그렇기 때문에 보통 컴퓨터가 데이터를 보낼 때와 기지국에서 데이터를 내려받을 때 서로 다른 주파수를 사용했다.

하지만 이 방식에는 큰 문제가 있었는데, 여러 컴퓨터가 동시에 데이터를 전송하면 공중에서 신호가 뒤섞여 기지국이 전달받은 데이터에 대해 제대로 해석할 수 없게 된다는 점이다. 이런 상황을 충돌이라고 부른다.

그러나 송신 시스템 입장에서는 충돌 발생 여부를 알 수 없기 때문에 데이터를 보낸 뒤에 ACK(Acknowledgement)를 기다리게 되는데, 이때 ACK는 수신 측에서 데이터를 잘 받았다는 의미로 ACK를 보내주면 송신자가 전송 성공을 확신할 수 있다. 반대로 일정 시간 동안 ACK가 오지 않으면 충돌이 발생했다고 판단하고 데이터를 다시 보내야 한다.

 

02.2.1.2 CSMA(Carrier Sense Multiple Access)

강의

ALOHA에서 여러 시스템이 동시에 데이터를 전송하면 충돌이 빈번하게 발생하는 한계점을 개선하기 위해 CSMA가 등장했다. Carrier Sense라는 개념인 데이터를 전송하기 전에 먼저 매체를 감지하는 절차가 추가되었다.

CSMA에서는 각 시스템이 데이터를 보내기 전에 매체가 사용중인지 확인한다. 이를 “sense before transmit” 또는 “listen before talk”이라고 부른다. 마치 사람이 대화를 하기 전에 다른 사람이 말하고 있는지 잠시 귀 기울여 듣는 것과 같은 원리다. 매체가 비어 있다면 데이터를 전송하고, 누군가 이미 전송 중이라면 기다렸다가 나중에 시도한다.

이 과정에서 시스템은 케이블이나 전파 상에서 캐리어 주파수(carrier frequency)가 잡히는지를 감지한다. 이를 통해 누군가가 전송중인지 판단하고 아무도 보내고 있지 않다면 데이터를 전송한다.

그러나 이렇게 하더라도 충돌은 여전히 발생한다. 왜냐하면 신호가 매체를 따라 전달되는 데에는 전파 지연 시간이 발생하기 때문이다. 예를 들어 어떤 장치가 매체를 감지했을 때는 비어 있었지만, 그 순간 다른 장치도 동시에 매체를 감지한 후 전송을 시작했다면 결국 두 신호가 중간에서 만나 충돌하게 된다.

 

02.2.1.3 CSMA/CD(CSMA with Collision Detection)

CSMA/CD는 CSMA 방식에 충돌 발생 여부를 실시간으로 감지하고 대응하는 기능을 추가한 프로토콜이다. ALOHA는 무작위로 데이터를 전송하고, CSMA는 데이터 전송 전에 매체를 감지했지만 두 방식 모두 전송 중 충돌을 완전히 방지할 수 없었다. CSMA/CD는 여기에 Collision Detection(CD)을 추가하여 데이터를 보내면서 전송의 성공여부를 계속해서 감시한다.

시스템은 데이터를 전송하기 전에 먼저 매체가 비어 있는지 확인하고 아무도 보내고 있지 않다면 전송을 시작한다. 동시에 전송 과정에서 신호가 손상되거나 충돌이 발생하는지 감지하다가, 만약 충돌이 발생할 경우 즉시 전송을 중지한다. 이미 전송 중인 데이터를 보내봐야 모두 손상될 뿐이므로 즉시 전송을 멈추고 채널을 비운 다음 다시 전송을 시도한다.

이렇게 CSMA/CD는 전송 전 캐리어 감지와 전송 중 충돌 감지를 결합함으로써 기존 CSMA보다 훨씬 효율적으로 유선 환경에서의 데이터 충돌 문제를 해결할 수 있다.

 

02.2.1.4 CSMA/CA(CSMA with Collision Avoidance)

CSMA/CD는 유선 네트워크에서 충돌을 감지하고 대응하는 방식으로 잘 작동하지만, 무선 환경에서는 충돌을 감지하기 어렵다는 한계가 있다. 무선은 케이블이 없기 때문에 신호가 전파되는 동안 감쇄가 심하게 발생하거나 충돌 신호가 약해져서 충돌이 발생했는지 원래 신호가 약한 것인지 구분이 어려워진다. 따라서 무선 환경에서는 충돌이 발생한 후 감지하기보다는 아예 충돌을 회피하는 방식을 사용한다.

CSMA/CA는 충돌을 피하기 위해 세 가지 기법을 사용한다. 첫 번째는 IFS(InterFrame Space)로, 매체가 비어 있다고 하더라도 바로 데이터를 전송하지 않고 잠시 기다리는 시간을 두어 충돌 가능성을 줄이는 방식이다. 두 번째는 충돌 윈도우(Contention Window)로, 데이터 전송 준비가 완료된 후 임의의 시간만큼 기다린다. 여러 시스템이 동시에 전송을 시도하더라도 각 장치가 랜덤한 시간만큼 잠시 대기하기 때문에 충돌 가능성을 낮출 수 있다. 마지막으로 ACK(Acknowledgement)는 데이터 수신 시스템이 보내는 응답으로, 송신 시스템은 이 ACK를 받지 못하면 데이터가 유실된 것으로 판단하고 재전송을 시도한다.

강의

결국 CSMA/CA는 IFS, 충돌 윈도우, ACK 세 가지 기법을 조합하여 무선 환경에서 충돌을 예방하고 안정적인 전송을 보장하는 방식이다.

 

 

02.2.2 통제된 접근(Controlled Access Protocol)

02.2.2.1 예약(Reservation)

예약 방식에서는 각 시스템이 데이터를 보내기 전에 전송 권한을 미리 예약해야 한다. 전체 시스템이 N개라면 N개의 미니 슬롯(mini slot)이 예약 프레임 안에 포함되어 있다. 각 시스템은 자신의 슬롯 차례가 오면 예약된 데이터 프레임을 전송할 수 있다.

02.2.2.2 폴링(Polling)

폴링 방식은 중앙에 제어 시스템이 존재하고 나머지 송수신 시스템은 이 제어 시스템과 통신한다. 송신을 원하는 시스템은 먼저 제어 시스템에게 알리고, 수신 시에도 제어 시스템에게 문의하여 전송 여부를 확인한다. 중앙에서 “너 데이터 보낼 거 있니?”라고 하나씩 확인하면서 차례대로 전송하게 하는 방식이다.

02.2.2.3 토큰 전달(Token Passing)

토큰 전달 방식에서는 토큰을 가진 시스템만 데이터를 전송할 수 있다.

 

 

02.2.3 채널화(Channelization Protocol)

채널화 방식은 하나의 링크를 시간, 주파수, 코드로 나누어 여러 개의 논리적 채널을 만들어 이를 서로 다른 시스템이 나눠 쓰는 방법이다.

02.2.3.1 FDMA(Frequency-Division Multiple Access, 주파수 분할 다중접속)

사용 가능한 전체 대역폭을 모든 시스템이 공유한다. 각 시스템은 할당된 특정 주파수 대역을 이용해 데이터를 전송하며 각 대역은 특정 시스템을 위해 예약되어 있다.

02.2.3.2 TDMA(Time-Division Multiple Access, 시간 분할 다중접속)

단일 주파수 대역을 시간 간격으로 나누어 사용한다. 예를 들어 1초 동안은 A 시스템이 데이터를 전송하고 2초 동안은 B 시스템이 전송하는 식이다.

02.2.3.3 CDMA(Code-Division Multiple Access, 코드 분할 다중접속)

링크가 전체 대역폭을 공유하면서 각 시스템이 서로 다른 코드를 이용해 동시에 데이터를 송신할 수 있다. 시간 분할 없이 동시에 데이터를 보내도 서로 다른 코드로 구분할 수 있다.

'CS > 네트워크' 카테고리의 다른 글

[k-mooc/네트워크] 05. 이동통신과 인터넷프로토콜  (0) 2025.09.10
[k-mooc/네트워크] 04. 무선 LAN과 네트워크 연결장치  (1) 2025.09.05
[k-mooc/네트워크] 03. LAN 매체와 유선 LAN 🌟  (0) 2025.09.04
[k-mooc/네트워크] 01. 네트워크 개념  (3) 2025.08.27
'CS/네트워크' 카테고리의 다른 글
  • [k-mooc/네트워크] 05. 이동통신과 인터넷프로토콜
  • [k-mooc/네트워크] 04. 무선 LAN과 네트워크 연결장치
  • [k-mooc/네트워크] 03. LAN 매체와 유선 LAN 🌟
  • [k-mooc/네트워크] 01. 네트워크 개념
마동탁
마동탁
보고또보고
  • 마동탁
    원데이투데이
    마동탁
  • 전체
    오늘
    어제
    • 분류 전체보기 (32)
      • 개발 (2)
        • Elasticsearch (2)
      • CS (20)
        • 자료구조 (15)
        • 네트워크 (5)
      • 코딩테스트 (10)
        • 문제풀이 (8)
        • 알고리즘 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
마동탁
[k-mooc/네트워크] 02. 스위칭과 다중 접속 프로토콜
상단으로

티스토리툴바