Full-Duplex와 Half-Duplex의 차이를 알아보고 데이터를 주고받는 방식, 통신 속도와 충돌 발생 여부의 차이를 쉬운 예시로 정리합니다.

네트워크 장비의 사양을 보다 보면 Full-DuplexHalf-Duplex라는 표현을 볼 수 있습니다.

처음 보면 이름부터 조금 어렵게 느껴집니다.

하지만 두 용어가 의미하는 것은 생각보다 단순합니다.

핵심은 데이터를 서로 주고받을 때 동시에 통신할 수 있는가입니다.

이 차이를 이해해 두면 이더넷이나 스위치 같은 네트워크 장비가 어떻게 데이터를 주고받는지도 훨씬 쉽게 이해할 수 있습니다.

Duplex는 무엇을 의미할까?

Duplex는 통신에서 데이터를 양방향으로 주고받는 방식을 설명할 때 사용하는 표현입니다.

예를 들어 A와 B라는 두 장치가 있다고 해보겠습니다.

A  ←────────→  B

A에서 B로 데이터를 보내기도 하고 B에서 A로 데이터를 보내기도 합니다.

문제는 이 양방향 통신을 동시에 할 수 있느냐, 아니면 ​한쪽씩 번갈아 해야 하느냐입니다.

여기서 Full-Duplex와 Half-Duplex가 나뉩니다.

Full-Duplex는 동시에 통신한다

Full-Duplex는 양쪽 장치가 동시에 데이터를 보내고 받을 수 있는 통신 방식입니다.

예를 들어 A와 B가 통신한다고 하면:

A  ─────────→  B
A  ←─────────  B

두 방향의 데이터가 동시에 이동할 수 있습니다.

전화 통화를 생각하면 이해하기 쉽습니다.

내가 말을 하면서 상대방도 동시에 말을 할 수 있습니다.

물론 실제 대화에서는 서로 말이 겹칠 수 있지만, 통신 자체는 양방향으로 동시에 이루어질 수 있습니다.

Half-Duplex는 한 번에 한 방향만 가능하다

Half-Duplex는 양쪽 방향으로 통신할 수는 있지만 동시에 데이터를 보내지는 못하는 방식입니다.

예를 들어:

A  ─────────→  B

A  ←─────────  B

한쪽이 데이터를 보내는 동안 다른 쪽은 기다려야 합니다.

즉, 통신 방향을 서로 번갈아 사용하는 방식입니다.

이것을 무전기와 비교하면 이해하기 쉽습니다.

무전기에서는 한 사람이 이야기할 때 다른 사람이 동시에 같은 채널로 이야기하기 어렵습니다.

한쪽이 말을 끝낸 다음 다른 사람이 이야기하는 식입니다.

가장 간단한 차이

두 방식의 차이를 한 줄로 정리하면 다음과 같습니다.

Full-Duplex
→ 동시에 송신 + 수신

Half-Duplex
→ 송신 또는 수신을 번갈아 사용

이 차이가 가장 핵심입니다.

왜 Full-Duplex가 유리할까?

Full-Duplex에서는 송신과 수신을 동시에 할 수 있기 때문에 통신 효율이 좋습니다.

예를 들어 컴퓨터가 서버로 데이터를 보내면서 동시에 서버에서 데이터를 받을 수 있습니다.

PC  ─────────→  서버
PC  ←─────────  서버

두 방향의 통신이 동시에 이루어질 수 있습니다.

반면 Half-Duplex에서는 한쪽 방향으로 통신하는 동안 반대쪽 방향의 통신을 기다려야 합니다.

따라서 동일한 환경이라면 Full-Duplex가 통신 효율 측면에서 유리합니다.

Half-Duplex에서는 충돌이 발생할 수 있다

Half-Duplex를 이해할 때 같이 알아두면 좋은 것이 충돌(Collision)​입니다.

여러 장치가 하나의 통신 매체를 공유하면서 동시에 데이터를 보내려고 하면 데이터가 서로 충돌할 수 있습니다.

PC A ──→
          ╲
           X  충돌
          ╱
PC B ──→

이런 충돌을 처리하기 위해 과거 이더넷에서는 CSMA/CD 같은 방식을 사용했습니다.

CSMA/CD는 데이터를 보내기 전에 통신 매체를 확인하고, 충돌이 발생하면 일정 시간을 기다린 뒤 다시 전송하는 방식입니다.

앞에서 CSMA/CD를 따로 공부했다면 여기서 연결해서 이해하면 좋습니다.

Full-Duplex에서는 충돌이 발생하지 않는다

Full-Duplex에서는 송신과 수신이 서로 다른 방향에서 동시에 이루어질 수 있기 때문에 일반적인 Full-Duplex Ethernet에서는 충돌을 처리하기 위한 CSMA/CD가 필요하지 않습니다.

예를 들어:

PC
 │
 │ 송신
 ↓
스위치
 │
 │ 수신
 ↓
PC

송신과 수신이 동시에 이루어질 수 있기 때문입니다.

그래서 현대적인 유선 Ethernet 환경에서는 일반적으로 Full-Duplex 방식이 사용됩니다.

스위치와 Full-Duplex

현재 사용하는 일반적인 유선 네트워크에서는 스위치(Switch)​와 연결된 장치가 Full-Duplex로 통신하는 경우가 많습니다.

예를 들어:

PC A ─────┐
          │
PC B ─────┼── 스위치
          │
PC C ─────┘

각 장치가 스위치와 개별적인 링크를 통해 통신할 수 있습니다.

이런 환경에서는 과거처럼 하나의 공유 매체를 여러 장치가 함께 사용하는 상황이 크게 줄어들었습니다.

그래서 네트워크를 공부할 때 허브와 스위치의 차이를 같이 알아두면 Full-Duplex의 의미가 더 잘 이해됩니다.

Hub에서는 Half-Duplex가 사용될 수 있다

과거에 많이 사용되던 허브(Hub)​는 연결된 장치들에게 데이터를 전달하는 방식이 스위치와 다릅니다.

허브는 하나의 공유된 통신 매체처럼 동작하기 때문에 여러 장치가 동시에 데이터를 전송하면 충돌이 발생할 수 있습니다.

그래서 허브 기반 Ethernet에서는 Half-Duplex 통신이 사용되었습니다.

반면 스위치는 각 포트에 연결된 장치를 구분하고 필요한 포트로 프레임을 전달하기 때문에 Full-Duplex 통신이 일반적입니다.

전화와 무전기로 비교하면 쉽다

개인적으로 이 두 개념을 처음 접한다면 전문적인 네트워크 용어보다 일상적인 통신 방법으로 생각하는 게 편합니다.

Full-Duplex

전화 통화

나  ←────────→  상대방

동시에 말하고 들을 수 있음

Half-Duplex

무전기

나  ─────────→  상대방

잠시 후

나  ←─────────  상대방

물론 실제 전화나 무전기의 내부 통신 기술은 훨씬 복잡하지만 동시 양방향 통신과 번갈아 하는 양방향 통신의 차이를 이해하는 데는 좋은 비유입니다.

속도에도 차이가 있을까?

Full-Duplex가 Half-Duplex보다 무조건 “인터넷 속도가 2배”가 되는 것은 아닙니다.

여기서 흔히 오해하기 쉬운 부분입니다.

Full-Duplex의 핵심은 송신과 수신을 동시에 할 수 있다는 것입니다.

예를 들어 1Gbps Full-Duplex라고 표시된 장비가 있다면 일반적으로 송신 방향과 수신 방향을 동시에 사용할 수 있다는 의미로 이해할 수 있습니다.

즉, 단순히 “1Gbps가 2Gbps가 된다”라고 생각하면 안 됩니다.

방향별 통신을 동시에 처리할 수 있다는 것이 핵심입니다.

실제 네트워크에서는 어떤 방식을 사용할까?

현재 일반적인 유선 LAN 환경에서는 대부분 Full-Duplex를 사용합니다.

예를 들어:

PC
 ↓
LAN 케이블
 ↓
스위치
 ↓
라우터
 ↓
인터넷

이런 일반적인 환경에서는 Full-Duplex 통신이 사용되는 경우가 많습니다.

그래서 요즘 네트워크 환경에서는 Half-Duplex라는 단어를 실제 설정에서 자주 볼 기회가 많지 않을 수도 있습니다.

다만 네트워크 장비의 동작 원리나 오래된 Ethernet 환경을 공부할 때는 여전히 중요한 개념입니다.

Auto-Negotiation이라는 기능도 있다

네트워크 장비를 연결하면 장치끼리 통신 방식과 속도를 자동으로 결정하는 경우가 있습니다.

이 기능을 Auto-Negotiation이라고 합니다.

예를 들어:

PC  ←→  스위치

속도 협상
Duplex 방식 협상

장비가 지원하는 속도와 Duplex 방식을 서로 확인하고 적절한 설정을 선택할 수 있습니다.

그래서 일반적인 가정용이나 사무실 네트워크에서는 사용자가 직접 Full-Duplex를 설정하지 않아도 자동으로 설정되는 경우가 많습니다.

Duplex Mismatch는 주의해야 한다

네트워크 장비의 양쪽 설정이 서로 맞지 않는 경우 문제가 발생할 수 있습니다.

예를 들어 한쪽은 Full-Duplex인데 다른 쪽이 Half-Duplex로 설정되어 있다면 Duplex Mismatch가 발생할 수 있습니다.

이런 경우 네트워크 성능이 크게 떨어지거나 충돌 및 패킷 손실 같은 문제가 나타날 수 있습니다.

장비 A
Full-Duplex

        X

장비 B
Half-Duplex

따라서 네트워크 장애를 분석할 때 Duplex 설정이 서로 일치하는지도 확인할 필요가 있습니다.

Full-Duplex와 Half-Duplex 비교

두 방식을 표로 정리하면 다음과 같습니다.

구분Full-DuplexHalf-Duplex
통신 방향양방향양방향
동시 송수신가능불가능
충돌일반적으로 발생하지 않음발생 가능
대표적인 예현대적인 스위치 기반 Ethernet허브 기반 Ethernet
효율상대적으로 높음상대적으로 낮음
CSMA/CD일반적으로 사용하지 않음사용 가능

어떤 방식이 더 좋은가?

단순히 비교한다면 일반적인 네트워크 환경에서는 Full-Duplex가 더 유리합니다.

송신과 수신을 동시에 처리할 수 있고 충돌 문제도 크게 줄어들기 때문입니다.

특히 현재 사용하는 스위치 기반 Ethernet에서는 Full-Duplex가 일반적인 방식입니다.

Half-Duplex는 오래된 네트워크 환경을 이해하거나 특정 통신 환경을 공부할 때 알아두면 좋은 개념이라고 볼 수 있습니다.

정리하면서 알게 되는 핵심

Full-Duplex와 Half-Duplex는 이름이 복잡해 보이지만 결국 하나만 기억하면 됩니다.

Full-Duplex
= 양쪽이 동시에 말할 수 있음

Half-Duplex
= 한쪽이 말하면 다른 쪽은 기다림

여기에 네트워크 관점에서 조금 더 붙이면:

Full-Duplex
→ 동시 송수신 가능
→ 충돌 없음
→ 현대적인 스위치 기반 Ethernet에서 일반적

Half-Duplex
→ 송수신을 번갈아 수행
→ 충돌 발생 가능
→ 허브 기반 Ethernet 등에서 사용

네트워크를 공부하면서 이 개념을 처음 접하면 단순히 “Full은 좋고 Half는 나쁘다” 정도로 외우기 쉽습니다.

하지만 실제로는 통신 매체를 어떻게 공유하는지, 송신과 수신이 어떤 방식으로 이루어지는지​를 이해하는 것이 더 중요합니다.

특히 다음에 Ethernet이나 스위치의 동작 방식을 공부할 때 Full-Duplex 개념을 다시 만나게 되므로, 지금 단계에서는 동시에 양방향 통신이 가능한가만 확실하게 기억해 두면 충분합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

글쓴이

rjsan46@koreabites.com

관련 게시물

웹 브라우저에 주소를 입력하면 일어나는 일

웹 브라우저 주소창에 웹사이트 주소를 입력하고 엔터를 누르면 바로 화면이 나타나는 것처럼 보인다. 하지만 실제로는 그 짧은 순간에 꽤 많은 일이 일어난다....

모두 읽어보기

소켓이란 무엇일까? 프로그램과 네트워크를 연결하는 통로

네트워크를 공부하다 보면 IP 주소와 포트 번호라는 말을 계속 만나게 된다. IP 주소는 어떤 컴퓨터와 통신할 것인지 구분하고, 포트 번호는 그 컴퓨터에서...

모두 읽어보기

쿠키와 세션은 어떻게 다를까?

웹사이트를 이용하다 보면 한 번 로그인한 뒤 다른 페이지로 이동해도 로그인 상태가 계속 유지되는 것을 볼 수 있다. 예를 들어 쇼핑몰에 로그인한...

모두 읽어보기

SSL과 TLS는 어떤 역할을 할까?

앞에서 HTTPS가 HTTP보다 안전한 이유를 살펴봤다. HTTPS는 단순히 HTTP 자체가 더 안전하게 만들어진 프로토콜이 아니라, HTTP 통신에 TLS라는 보안 계층을 적용한 것이라고...

모두 읽어보기

포트 번호로 네트워크 서비스를 구분하는 방법

컴퓨터가 네트워크를 통해 다른 컴퓨터와 통신할 때 가장 먼저 떠오르는 것이 IP 주소다. 예를 들어 어떤 서버의 IP 주소가 192.168.0.10이라고 해보자. 그런데...

모두 읽어보기

HTTPS는 HTTP보다 무엇이 안전할까?

인터넷에서 웹사이트에 접속하다 보면 주소창에 http://가 붙어 있는 경우도 있고 https://가 붙어 있는 경우도 있다. 요즘은 대부분의 웹사이트가 HTTPS를 사용하기 때문에 사실상...

모두 읽어보기