Post

허브

허브는 물리 계층에서 여러 대의 호스트를 연결하는 장비이다.

그래서 통신 매체를 통해 송수신되는 메세지가 다른 호스트에게 전달되는 과정에서 허브를 거쳐가곤 한다.

하나 짚고 가야 할게 있는데, 물리 계층에는 주소 개념이 없다는 점이다. 송수신지를 특정하려면 데이터 링크 계층까지 가야 한다. 여기에서는 단순히 연결과 송수신만 하고 정보를 변경하거나 판단하지 않는다.

1. 허브의 특징

허브에는 커넥터를 연결할 수 있는 연결지점인 포트가 있는데, 포트로 호스트와 연결된 통신 매체들을 연결할 수 있다. 허브는 아래와 같은 특징을 같는다.

1-1. 전달받은 신호를 다른 모든 포트로 다시 내보낸다.

허브는 물리 계층에 속하는 장비이고, 물리 계층에서는 주소 개념이 없어 허브는 수신지를 특정할 수 없다. 그래서 신호를 전달받으면 송신지를 제외한 모든 포트에 내보낸다. 허브를 통해 이 신호를 전달받은 모든 호스트는 데이터 링크 계층에서 패킷의 MAC 주소를 확인하고 자신과 관련 없는 주소는 폐기한다.

1-2. 반이중 모드로 통신한다.

반이중$^{half\ duplex}$ 모드는 마치 1차선 도로처럼 송수신을 번갈아 가며 하는 통신 방식이다. 가령 호스트 A가 B에게 메세지를 송신할 때 호스트 B는 A에게 송신할 수 없다. 반대의 경우도 마찬가지.

반대로 전이중$^{full\ duplex}$ 모드는 송수신을 동시에 양방향으로 할 수 있는 통신 방식이다.

1-3. 콜리전 도메인

허브는 반이중 통신을 하기 때문에 동시에 허브에 신호를 송신하면 충돌$^{collision}$(콜리전)이 발생한다.

허브에 호스트가 많이 연결될 수록 그런 충돌 발생 가능성이 높다. 그리고 충돌이 발생할 수 있는 영역을 콜리전 도메인이라고 한다. 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속한다.

허브의 넓은 콜리전 도메인으로 인한 충돌 문제를 해결하기 위해선 CSMA/CD 프로토콜을 사용하거나 스위치 장비를 사용해야 한다.

2. CSMA/CD

허브에서 충돌이 발생하는 근본적인 이유는 반이중 모드로 통신하기 때문이다. 그리고 CSMA/CD는 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜이다.

그럼 CSMA/CD라는 용어가 어떤 뜻으로 쓰이는지 살펴보면서 어떤 기술인지 이해해보자.

2-1. CS는 Carrier Sense, 캐리어 감지를 의미한다.

CSMA/CD 프로토콜을 사용하는 반이중 이더넷 네트워크에서는 메세지를 보내기 전에 현재 네트워크 상에서 전송 중인 것이 있는지 먼저 확인한다. 현재 통신 매체의 사용 가능 여부를 검사하는 것이다. 이를 캐리어 감지라고 한다.

2-2. MA는 Multiple Access, 다중 접근을 의미한다.

때로 캐리어 감지를 해도 두 개 이상의 호스트가 동시에 네트워크를 사용하려 할 때가 있다. 이런 상황을 다중 접근이라고 한다. 이때 충돌이 발생하게 된다.

2-3. CD는 Collision Detection, 충돌 검출을 의미한다.

충돌이 발생하면 이를 검출하는데, 이를 충돌 검출이라고 한다. 충돌을 감지하면 전송이 중단되고, 충돌을 검출한 호스트는 다른 이들에게 충돌이 발생했음을 알리고자 잼 신호$^{jam\ signal}$라는 특별한 신호를 보낸다.

2-4. 그래서 CSMA/CD는?

CSMA/CD 프로토콜을 사용하면 호스트들은 메세지를 전송하기 전에

  1. 먼저 현재 전송이 가능한 상태인지 확인하고,
  2. 다른 호스트가 전송중이지 않을 때 메세지를 전송한다.
  3. 만일 부득이하게 다수의 호스트가 접근해서 충돌이 발생하면 임의의 시간만큼 대기한 후 다시 전송한다.

참고자료

This post is licensed under CC BY 4.0 by the author.