DEVCECY LOG
  • 네트워크에 대해서 알아보자 3 - 데이터 링크 계층 편

    같은 네트워크 내에서 통신, 스위칭 허브, 이더넷과 CSMA/CD, 프레임
    Published on
  • 들어가며

    오늘은 OSI 모델의 2계층인 데이터 링크 계층(Data Link Layer)에 대해서 알아보겠습니다.

    data_link_layer

    데이터 링크 계층(Data Link Layer)

    데이터 링크 계층같은 네트워크 내에서 통신하는 절차를 다루는 계층입니다. 또한, 물리 계층에서 일어나는 에러를 감지하고 수정하는 역할을 합니다. 즉, 물리적 주소 설정, 흐름제어, 에러제어 등의 역할을 합니다. 데이터 링크 계층의 주요 네트워크 기기는 물리적인 주소를 통해 데이터를 전송하는 스위칭 허브가 있으며, 주요 프로토콜은 이더넷, CSMA/CD 등이 있습니다. 데이터 단위는 프레임 입니다.

    데이터 링크 계층은 LLC(Logical Link Control)MAC(Media Access Control), 두개의 부계층으로 이루어져있습니다.

    • LLC : 데이터 링크 계층의 기본 기능을 다루는 계층입니다.
    • MAC : 물리계층과 직접적으로 관련있는 프로토콜입니다. MAC에는 이더넷, 토큰링, 토큰버스와 같은 프로토콜이 존재합니다.
    data_link_sublayer

    스위칭 허브

    스위치스위칭 허브라고도 불리며, 여러 포트 중에서 실제로 통신이 발생한 포트에만 데이터를 전송하는 스위칭 기능(point to point )을 가진 허브입니다. 스위칭 기능을 통해 물리 계층에서 사용되면 더미 허브가 가지고 있던 속도 저하 문제를 해결 할 수 있게 되었습니다. 스위칭 허브는 더미허브에 스위칭 기능이 추가된 것으로 더미 허브의 외관상의 차이는 없습니다.

    dummy_hub_vs_switching_hub

    스위치의 동작 과정

    스위치가 어떻게 동작하는지 예를 통해 확인해 보겠습니다. 스위칭 허브에 A,B,C,D 4개의 컴퓨터가 연결되어있으며, A에서 C로 데이터를 전송하려고 합니다.

    1. A의 헤더에는 출발/목적지 MAC주소가 저장되어있습니다. A가 C로 보내려고하는 데이터는 포트 1을 통해 스위치 1로 이동하고, 스위치 1은 MAC주소 테이블에 데이터를 전달 받은 정보인 포트 1, MAC 주소 A라는 정보를 기록합니다.

    2. 스위치 1은 전송받은 포트(포트1)를 제외하고 나머지 포트(포트2,3)에 모두 데이터를 전송합니다. 이를 플러팅이라고 합니다. 플러팅의 과정에서 B는 데이터의 목적지가 아님에도 데이터를 받았습니다. 그러므로 이 데이터는 파기됩니다.

    3. 스위치 2는 스위치 1로부터 받은 데이터에 대한 정보(포트 3, MAC 주소 A)를 MAC주소 테이블에 기록합니다.

    4. 스위치 2는 데이터를 전송받은 포트 3을 제외하고 포트1,2에 데이터를 전송합니다. (플러팅) 이 과정에서 D는 데이터의 목적지가 아니기 대문에 데이터를 파기합니다. C는 데이터를 받습니다!

    how_to_work_switch

    이제 C가 받은 데이터를 다시 A로 전송하려고 합니다.

    1. C의 헤더에는 출발/목적지 MAC 주소가 저장되어있습니다. C가 A로 보내려고하는 데이터는 포트 1을 통해 스위치 2로 이동하고, 스위치 2는 MAC주소 테이블에 데이터를 전달 받은 정보인 포트 1, MAC 주소 C라는 정보를 기록합니다.

    2. 스위치 2의 MAC 주소 테이블에 기록된 MAC A라는 정보와 C의 헤더에 기록된 목적지 MAC 주소 A는 일치하므로 스위치1로 데이터를 전송합니다. 이러한 동작을 포워딩이라고 합니다. 이에 따라 D에는 데이터가 전송되지 않는데 이러한 동작은 필터링 이라고 합니다.

    3. 스위치1은 MAC 주소 테이블에 포트 3, MAC 주소 C를 기록하고 포워딩과 필터링의 과정을 진행하며 마침내 A로 데이터를 전달되게 됩니다.

    how_to_work_switch_2

    플러딩,필터링,포워딩

    스위치 동작 과정에서 알게된 세가지 동작에 대해서 다시 한번 정리해 봅시다.

    • 플러딩(flooding) : 수신 포트를 제외한 다른 모든 포트로 데이터를 보내는 동작을 뜻합니다.
    • 필터링(filtering) : 데이터의 도착지 MAC주소와 MAC주소 테이블을 비교해 일치하지 않을 경우 데이터를 전송하지 않는 동작을 뜻합니다.
    • 포워딩(forwarding) : 데이터의 도착지 MAC주소와 MAC주소 테이블을 비교해 주소가 일치할 경우 데이터를 전송하는 동작을 뜻합니다.

    MAC (Media Access Control) 주소

    스위치의 동작과정에서 MAC 주소라는것이 언급되었는데요, MAC 주소이더넷에서 인터페이스를 특정하기 위한 48비트(6Byte)의 물리 주소/하드웨어 주소입니다. 예를들어, 4대의 네트워크 기기가 허브에 연결되어있을때 MAC주소를 통해 각각의 기기를 구분할 수 있는 것입니다. MAC주소는 제조할 때 새겨지는 번호이기때문에 모두 고유한 주소를 가지게 됩니다.

    mac_address

    참고) MAC주소와 IP주소는 뭐가 다른거죠?

    MAC주소는 미디어 접속 제어 주소이며, 물리적인 주소입니다. IP주소는 인터넷 프로토콜 주소이며, 논리적인 주소입니다.

    mac_vs_ip

    이더넷 (Ethernet)

    이더넷은 OSI 모델 2계층인 데이터 링크 계층과 TCP/IP 모델 1계층인 네트워크 인터페이스 층의 프로토콜 입니다. IEEE 802 위원회에서 표준으로 지정했으며 ISO에서도 국제 표준으로 이더넷을 지정했습니다. 이더넷을 통해 유선 네트워크를 만들 수 있으며 대부분의 LAN은 이더넷 방식을 사용하고 있습니다.

    이더넷의 전송 속도

    이더넷은 전송 속도에 따라 아래와 같이 나뉘기도 합니다. 기가 비트 이더넷부터는 1Gbps로 속도가 아주 빨라졌으며, 이전의 이더넷과도 호환이 가능합니다. 그리고 스타형 네트워크 토폴로지를 사용합니다. 현재는 기가 비트 이더넷 이상을 사용합니다.

    • 스탠다드 이더넷 (Standard Ethernet) : 10Mbps
    • 패스트 이더넷 (Fast Ethernet) : 100Mbps
    • 기가비트 이더넷 (Gigabit Ethernet) : 1Gbps
    • 텐 기가비트 이더넷 (Ten-Gigabit Ethernet) : 10Gbps

    이더넷의 규격

    이더넷의 규격에 대해서도 알아봅시다. 예를들어, 1000BASE - T이라고하면 1000Mbps의 전송속도를 가지고 있으며 베이스밴드 방식과 UTP 케이블을 사용한 이더넷 규격이라고 이해하면 됩니다. 참고로, - 뒤의 FX는 광섬유케이블, SX는 550M의 광섬유 케이블, LX는 5Km의 광섬유 케이블을 뜻하며, E5 혹은 E2 는 초기에 이더넷 규격에서 사용한 동축케이블을 나타냅니다.

    ethernet_standard

    여기까지 이해하셨다면 문제! 이더넷의 규격인 10GBASE - T은 어떻게 풀어 설명할 수 있을까요?

    정답은, 10Gbps의 전송속도를 가졌으며, 베이스 밴드 방식과 UTP케이블을 사용한 이더넷 규격입니다! 중간에 10과 BASE사이에 G가 있는데 이는 Gbps의 전송속도 단위를 나타냅니다. G라는 함정이 있었지만 직감을 발휘해서 맞추셨을 것이라 생각이 듭니다(???)🤓.

    이더넷 헤더

    이더넷 헤더출발지 MAC 주소, 목적지 MAC 주소 그리고 타입 정보를 가지고 있습니다. 출발지 MAC 주소목적지 MAC 주소를 알아야 어떤 기기로 프레임을 전송해야 하는지 알 수 있습니다. 타입은 상위 계층의 프로토콜 종류를 구분해주는 역할을 합니다.

    트레일러

    트레일러는 FCS(Frame Check Sequence)라고도 하며 오류 발생을 체크하는 용도로 사용합니다.

    이더넷 프레임

    이더넷 프레임이더넷 헤더와 트레일러가 붙으며 캡슐화된 데이터를 뜻하며, 데이터 링크 계층의 데이터 단위입니다. 프레임을 주고 받는 과정에서 이더넷 헤더의 목적지 MAC 주소와 출발지 MAC 주소를 참조하게 됩니다.

    ethernet_frame_header

    CSMA/CD (Carrier Sense Multiple Access/Collision Detection)

    초기 이더넷의 규격은 동축 케이블의 버스형이었습니다. 버스형은 여러대의 기기가 동시에 데이터를 전송하면 충돌이 일어납니다. 이를 해결하기 위해 나온 매커니즘이 CSMA/CD입니다.

    CSMA/CD의 매커니즘을 살펴 보겠습니다.

    • 먼저, 케이블이 현재 사용 중인지를 감지(carrier sense)합니다.
    • 만약 케이블에 트래픽이 없음을 감지한다면 데이터를 전송합니다.
    • 그리고 데이터 충돌이 감지 되지 않으면 데이터는 성공적으로 전송 된 것입니다.
    • 만약 데이터 충돌이 감지(Collision Detection)된다면 그 즉시 데이터의 전송을 중지하고, 각 컴퓨터는 설정된 랜덤시간을 기다린 후 다시 데이터를 전송합니다.
    csma_cd

    맺으며

    OSI 모델의 2계층인 데이터 링크 계층(Data Link Layer)에 대해서 알아보았습니다.

    데이터 링크 계층에 대해서 요약해보자면 아래와 같습니다.

    • 같은 네트워크 내에서의 데이터 통신을 다루며,
    • 주요 네트워크 기기는 스위칭 허브,
    • 주요 프로토콜은 이더넷, CSMA/CD
    • 데이터의 단위는 프레임

    다음 시간에는 한 네트워크 내에서의 통신이 아닌, 네트워크와 네트워크 간의 통신을 다루는 계층인 네트워크 계층에 대해서 알아보도록 하겠습니다😎.

    참고

    • 네트워크, 그림으로 이해하자 강의와 그림으로 이해하는 네트워크 용어(기타미 류지 지음/성창규 옮김/길벗) 도서를 참고하여 정리한 글입니다.
    • 본 글에 첨부된 이미지는 모두 제가 직접 그린 것으로 참고용으로만 봐주시면 감사하겠습니다.