Skip to main content

네트워크 물리 계층 & 데이터 링크 계층

이더넷 (Ethernet)

오늘날의 물리 계층과 데이터 링크 계층은 이더넷이라는 공통된 기술이 사용되기 때문에 밀접하게 연관되어 있다. 이더넷은 다양한 통신 매체의 규격들과 송수신되는 프레임의 형태, 프레임을 주고받는 방법 등이 정의된 네트워크 기술로, 현대 LAN, 특히 유선 LAN 환경에서 가장 대중적으로 사용되는 기술이다.

서로 다른 컴퓨터가 각기 다른 제조사의 네트워크 장비를 사용하더라도 동일한 형식의 프레임을 주고받고 통일된 형태로 작동하는 것은 통신 매체를 비롯한 네트워크 장비들이 이더넷 표준을 준수하기 때문이다.

이더넷 프레임

현대 유선 LAN 환경은 대부분 이더넷을 기반으로 구성되므로 호스트가 데이터 링크 계층에서 주고받는 프레임 형식도 정해져 있다. 즉, 이더넷 네트워크에서 주고받는 프레임인 이더넷 프레임 형식은 정해져 있다.

이더넷 프레임은 상위 계층으로부터 받아들인 정보에 헤더와 트레일러를 추가하는 캡슐화 과정을 통해 만들어진다. 수신지 입장에서는 프레임의 헤더와 트레일러를 제거한 뒤 상위 계층으로 올려보내는 역캡슐화 과정을 거친다.

이더넷 프레임 헤더는 기본적으로 프리앰블, 수신지 MAC 주소, 송신지 MAC 주소, 타입/길이로 구성되고, 페이로드는 데이터, 트레일러는 FCS로 구성된다.

ethernet_frame

프리앰블 (preamble)

프리앰블은 이더넷 프레임의 시작을 알리는 8바이트(64비트) 크기의 정보이다. 수신지는 프리앰블을 통해 이더넷 프레임이 오고 있음을 알아차린다. 즉, 프리앰블은 송수신지 간의 동기화를 위해 사용되는 정보이다.

수신지, 송신지 MAC 주소

MAC 주소는 네트워크 인터페이스마다 부여되는 6바이트(48비트) 길이의 주소로 LAN 내의 수신지와 송신지를 특정할 수 있다. 보통 NIC 장치가 네트워크 인터페이스 역할을 담당한다. 즉, 한 컴퓨터에 NIC가 여러 개 있다면 MAC 주소도 여러 개 있을 수 있다.

타입/길이

타입/길이 필드에는 타입 혹은 길이가 올 수 있다. 필드에 명시된 크기가 1500(16진수 05DC) 이하일 경우 이 필드는 프레임의 크기를 나타내는 데 사용되고, 1536(16진수 0600) 이상일 경우에는 타입을 나타내는 데 사용된다.

타입은 이더넷 프레임이 '어떤 정보를 캡슐화했는지'를 나타내는 정보로 이더타입(ethertype)이라고도 부른다. 대표적으로 상위 계층에서 사용된 프로토콜의 이름이 명시된다.

데이터

데이터는 상위 계층에서 전달받거나 상위 계층으로 전달해야 할 내용이다. 네트워크 계층의 데이터와 헤더를 합친 PDU가 이곳에 포함된다.

FCS (Frame Check Sequence)

FCS는 수신한 이더넷 프레임에 오류가 있는지 확인하기 위한 필드이다. 이 필드에는 CRC(Cyclic Redundancy Check), 즉 순환 중복 검사라고 불리는 오류 검출용 값이 들어간다.

송신지는 프리앰블을 제외한 나머지 필드 값들을 바탕으로 CRC 값을 계산한 후, 이 값을 FCS 필드에 명시한다. 그리고 수신지는 수신한 프레임에서 프리앰블과 FCS 필드를 제외한 나머지 필드 값들을 바탕으로 CRC 값을 계산한 뒤, 이 값을 FCS 필드 값과 비교한다. 이때 비교 값이 일치하지 않으면 프레임에 오류가 있다고 판단하여 해당 프레임을 폐기한다.

NIC (Network Interface Controller)

NIC는 호스트와 통신 매체를 연결하고, MAC 주소가 부여되는 네트워크 장비이다. 케이블은 NIC에 연결되는 물리 계층의 유선 통신 매체이다. 통신 매체에는 전기, 빛 등 다양한 신호가 흐를 수 있다. 호스트가 이를 제대로 이해하려면 통신 매체를 통해 전달되는 신호와 컴퓨터가 이해할 수 있는 정보 간에 변환이 이루어져야 한다. 이때 호스트와 유무선 통신 매체를 연결하고 이러한 변환을 담당하는 네트워크 장비가 NIC이다.

  • NIC는 통신 매체에 흐르는 신호를 호스트가 이해하는 프레임으로 변환하거나 반대로 호스트가 이해하는 프레임을 통신 매체에 흐르는 신호로 변환한다. 따라서 호스트가 네트워크를 통해 송수신하는 정보는 NIC를 거치게 된다.

허브 (Hub)

통신 매체를 통해 송수신되는 메시지는 다른 호스트에게 전달되는 과정에서 네트워크 장비를 거칠 수 있다. 대표적인 네트워크 장비로 물리 계층에는 허브가 있고, 데이터 링크 계층에는 스위치가 있다.

물리 계층의 허브는 여러 대의 호스트를 연결하는 장치이다. 이더넷 네트워크의 허브는 이더넷 허브라고도 부른다.

특징

  • 전달받은 신호를 다른 모든 포트로 그대로 다시 내보낸다.

    송수신지를 특정할 수 있는 주소는 데이터 링크 계층부터 존재하는 개념이기 때문에 물리 계층에는 주소 개념이 없이 단지 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신이 이루어질 뿐이다. 허브는 물리 계층에 속하는 장비이므로 신호를 전달받으면 어떠한 조작이나 판단을 하지 않고 송신지를 제외한 모든 포트에 그저 내보내기만 한다. 허브를 통해 이 신호를 전달받은 모든 호스트는 데이터 링크 계층에서 패킷의 MAC 주소를 확인하고 자신과 관련 없는 주소는 폐기한다.

  • 반이중(half duplex) 모드로 통신한다.

    반이중 모드는 한 번에 한 방향으로만 전송할 수 있는 통신 방식이다. 반대로 전이중(full duplex) 모드는 동시에 양방향으로 데이터를 전송할 수 있는 통신 방식이다. 두 대 이상의 호스트가 동시에 데이터를 전송하려고 할 때 충돌이 발생한다.

  • 충돌이 발생할 수 있는 영역을 콜리전 도메인이라고 한다. 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속한다. 콜리전 도메인의 범위가 클수록 충돌이 발생할 가능성이 높아진다.

CSMA/CD

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜이다.

  • 캐리어 감지(Carrier Sense)

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

  • 다중 접근(Multiple Access)

    복수의 호스트가 네트워크에 접근하려는 상황을 다중 접근이라고 한다.

  • 충돌 검출(Collision Detection)

    충돌을 감지하면 전송이 중단되고, 충돌을 검출한 호스트는 다른 이들에게 충돌이 발생했음을 알리고자 잼 신호(jam signal)를 보낸다. 그리고 임의의 시간 동안 기다린 뒤에 다시 전송한다.

즉, 반이중 이더넷 네트워크에서 CSMA/CD 프로토콜을 사용하면 다음과 같이 진행된다.

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

스위치 (Switch)

스위치는 데이터 링크 계층의 네트워크 장비이다. 2계층에서 사용한다 하여 L2 스위치라고도 부른다. 스위치는 허브와는 달리 MAC 주소를 학습해 특정 MAC 주소를 가진 호스트에만 프레임을 전달할 수 있고, 전이중 모드의 통신을 지원한다. 따라서 스위치를 이용하면 포트별로 콜리전 도메인이 나뉘고, 전이중 모드로 통신하므로 CSMA/CD 프로토콜이 필요하지 않게 된다. 이러한 장점 덕에 스위치는 오늘날까지도 이더넷 네트워크 구성 시 자주 사용된다.

MAC 주소 학습

MAC 주소 학습은 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억하는 스위치의 기능이다.

  • 플러딩(flooding)

    스위치의 MAC 주소 학습은 프레임 내 송신지 MAC 주소 필드를 바탕으로 이루어진다. 스위치가 처음 특정 호스트에서 프레임을 수신하면, 프레임 내 송신지 MAC 주소 정보를 바탕으로 해당 호스트의 MAC 주소와 연결된 포트를 MAC 주소 테이블에 저장한다. 하지만 여전히 수신지 호스트가 어느 포트에 연결되었는지는 알지 못한다. 이 상황에서 스위치는 마치 허브처럼 송신지 포트를 제외한 모든 포트로 프레임을 전송한다. 이러한 스위치의 동작을 플러딩이라 한다. 프레임을 전달받은 호스트 중에 수신지가 아닌 호스트들은 자신과 관련이 없는 프레임을 전송받은 셈이므로 이를 폐기한다. 한편 수신지 호스트는 스위치로 응답 프레임을 전송한다. 해당 프레임의 송신지 MAC 주소 필드를 통해 스위치는 수신지 호스트의 MAC 주소와 연결된 포트를 알아내어 이 정보를 MAC 주소 테이블에 기록한다.

  • 필터링(filtering)

    이제 스위치는 앞의 송수신지 호스트의 MAC 주소와 연결된 포트를 알고 있으므로 두 호스트가 프레임을 주고받을 때는 다른 포트로 프레임을 내보낼 필요가 없게 된다. 전달받은 프레임을 어디로 내보내고 어디로 내보내지 않을지 결정하는 스위치의 기능을 필터링이라고 한다.

  • 포워딩(forwarding)

    프레임이 전송될 포트에 실제로 프레임을 내보내는 것을 포워딩이라고 한다.

  • 에이징(aging)

    MAC 주소 테이블에 등록된 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했다면 해당 항목이 삭제되는 기능을 에이징이라고 한다.

VLAN (Virtual LAN)

VLAN은 한 대의 스위치로 가상의 LAN을 만드는 스위치의 기술이다. VLAN을 구성하면 한 대의 물리적 스위치라 해도 여러 대의 스위치가 있는 것처럼 논리적인 단위로 LAN을 구획할 수 있다. 만약 VLAN1에 속한 호스트가 VLAN2에 속한 호스트와 통신하고자 한다면 데이터 링크 계층의 장비가 아니라 네트워크 계층 이상의 상위 계층 장비가 필요하다. 또한 브로드캐스트 도메인도 달라진다. 한 VLAN에 속한 호스트가 브로드캐스트를 하게 되면 다른 VLAN에 속한 호스트에게까지는 전달되지 않는다.

VLAN

  • 포트 기반 VLAN : 스위치의 포트가 VLAN을 결정하는 방식이다.

  • MAC 기반 VLAN : 사전에 설정된 MAC 주소로 VLAN을 결정하는 방식이다.


참조

https://www.hanbit.co.kr/store/books/look.php?p_code=B3633191758

https://csnote.net