네트워크에 대해서 알아보자 3 - 데이터 링크 계층 편
- Published on
오늘은 OSI 모델의 2계층인 데이터 링크 계층(Data Link Layer)
에 대해서 알아보겠습니다.
데이터 링크 계층
은 같은 네트워크 내에서 통신하는 절차를 다루는 계층입니다. 또한, 물리 계층에서 일어나는 에러를 감지하고 수정하는 역할을 합니다. 즉, 물리적 주소 설정, 흐름제어, 에러제어 등의 역할을 합니다. 데이터 링크 계층의 주요 네트워크 기기는 물리적인 주소를 통해 데이터를 전송하는 스위칭 허브
가 있으며, 주요 프로토콜은 이더넷
, CSMA/CD
등이 있습니다. 데이터 단위는 프레임
입니다.
데이터 링크 계층은 LLC(Logical Link Control)
와 MAC(Media Access Control)
, 두개의 부계층으로 이루어져있습니다.
LLC
: 데이터 링크 계층의 기본 기능을 다루는 계층입니다.MAC
: 물리계층과 직접적으로 관련있는 프로토콜입니다. MAC에는 이더넷
, 토큰링
, 토큰버스
와 같은 프로토콜이 존재합니다.스위치
는 스위칭 허브라고도 불리며, 여러 포트 중에서 실제로 통신이 발생한 포트에만 데이터를 전송하는 스위칭 기능(point to point )을 가진 허브입니다. 스위칭 기능을 통해 물리 계층에서 사용되면 더미 허브가 가지고 있던 속도 저하 문제를 해결 할 수 있게 되었습니다. 스위칭 허브는 더미허브에 스위칭 기능이 추가된 것으로 더미 허브의 외관상의 차이는 없습니다.
스위치가 어떻게 동작하는지 예를 통해 확인해 보겠습니다. 스위칭 허브에 A,B,C,D 4개의 컴퓨터가 연결되어있으며, A에서 C로 데이터를 전송하려고 합니다.
A의 헤더
에는 출발/목적지 MAC주소
가 저장되어있습니다. A가 C로 보내려고하는 데이터는 포트 1을 통해 스위치 1로 이동하고, 스위치 1은 MAC주소 테이블
에 데이터를 전달 받은 정보인 포트 1, MAC 주소 A라는 정보를 기록합니다.
스위치 1
은 전송받은 포트(포트1)를 제외하고 나머지 포트(포트2,3)에 모두 데이터를 전송합니다. 이를 플러팅
이라고 합니다. 플러팅의 과정에서 B는 데이터의 목적지가 아님에도 데이터를 받았습니다. 그러므로 이 데이터는 파기됩니다.
스위치 2
는 스위치 1로부터 받은 데이터에 대한 정보(포트 3, MAC 주소 A)를 MAC주소 테이블에 기록합니다.
스위치 2
는 데이터를 전송받은 포트 3을 제외하고 포트1,2에 데이터를 전송합니다. (플러팅) 이 과정에서 D는 데이터의 목적지가 아니기 대문에 데이터를 파기합니다. C는 데이터를 받습니다!
이제 C가 받은 데이터를 다시 A로 전송하려고 합니다.
C의 헤더
에는 출발/목적지 MAC 주소
가 저장되어있습니다. C가 A로 보내려고하는 데이터는 포트 1을 통해 스위치 2로 이동하고, 스위치 2는 MAC주소 테이블
에 데이터를 전달 받은 정보인 포트 1, MAC 주소 C라는 정보를 기록합니다.
스위치 2
의 MAC 주소 테이블에 기록된 MAC A라는 정보와 C의 헤더에 기록된 목적지 MAC 주소 A는 일치하므로 스위치1로 데이터를 전송합니다. 이러한 동작을 포워딩
이라고 합니다. 이에 따라 D에는 데이터가 전송되지 않는데 이러한 동작은 필터링
이라고 합니다.
스위치1
은 MAC 주소 테이블에 포트 3, MAC 주소 C를 기록하고 포워딩과 필터링의 과정을 진행하며 마침내 A로 데이터를 전달되게 됩니다.
스위치 동작 과정에서 알게된 세가지 동작에 대해서 다시 한번 정리해 봅시다.
플러딩(flooding)
: 수신 포트를 제외한 다른 모든 포트로 데이터를 보내는 동작을 뜻합니다.필터링(filtering)
: 데이터의 도착지 MAC주소와 MAC주소 테이블을 비교해 일치하지 않을 경우 데이터를 전송하지 않는 동작을 뜻합니다.포워딩(forwarding)
: 데이터의 도착지 MAC주소와 MAC주소 테이블을 비교해 주소가 일치할 경우 데이터를 전송하는 동작을 뜻합니다.스위치의 동작과정에서 MAC 주소라는것이 언급되었는데요, MAC 주소
는 이더넷에서 인터페이스를 특정하기 위한 48비트(6Byte)의 물리 주소/하드웨어 주소입니다. 예를들어, 4대의 네트워크 기기가 허브에 연결되어있을때 MAC주소를 통해 각각의 기기를 구분할 수 있는 것입니다. MAC주소는 제조할 때 새겨지는 번호이기때문에 모두 고유한 주소를 가지게 됩니다.
MAC주소
는 미디어 접속 제어 주소이며, 물리적인 주소입니다. IP주소
는 인터넷 프로토콜 주소이며, 논리적인 주소입니다.
이더넷
은 OSI 모델 2계층인 데이터 링크 계층과 TCP/IP 모델 1계층인 네트워크 인터페이스 층의 프로토콜 입니다. IEEE 802 위원회에서 표준으로 지정했으며 ISO에서도 국제 표준으로 이더넷을 지정했습니다. 이더넷을 통해 유선 네트워크를 만들 수 있으며 대부분의 LAN은 이더넷 방식을 사용하고 있습니다.
이더넷은 전송 속도
에 따라 아래와 같이 나뉘기도 합니다. 기가 비트 이더넷
부터는 1Gbps로 속도가 아주 빨라졌으며, 이전의 이더넷과도 호환이 가능합니다. 그리고 스타형 네트워크 토폴로지를 사용합니다. 현재는 기가 비트 이더넷 이상을 사용합니다.
이더넷의 규격
에 대해서도 알아봅시다. 예를들어, 1000BASE - T
이라고하면 1000Mbps의 전송속도를 가지고 있으며 베이스밴드 방식과 UTP 케이블을 사용한 이더넷 규격이라고 이해하면 됩니다. 참고로, - 뒤의 FX
는 광섬유케이블, SX
는 550M의 광섬유 케이블, LX
는 5Km의 광섬유 케이블을 뜻하며, E5
혹은 E2
는 초기에 이더넷 규격에서 사용한 동축케이블을 나타냅니다.
여기까지 이해하셨다면 문제! 이더넷의 규격인 10GBASE - T
은 어떻게 풀어 설명할 수 있을까요?
정답은, 10Gbps의 전송속도를 가졌으며, 베이스 밴드 방식과 UTP케이블을 사용한 이더넷 규격입니다! 중간에 10과 BASE사이에 G가 있는데 이는 Gbps의 전송속도 단위를 나타냅니다. G라는 함정이 있었지만 직감을 발휘해서 맞추셨을 것이라 생각이 듭니다(???)🤓.
이더넷 헤더
는 출발지 MAC 주소, 목적지 MAC 주소 그리고 타입 정보를 가지고 있습니다. 출발지 MAC 주소
와 목적지 MAC 주소
를 알아야 어떤 기기로 프레임을 전송해야 하는지 알 수 있습니다. 타입
은 상위 계층의 프로토콜 종류를 구분해주는 역할을 합니다.
트레일러
는 FCS(Frame Check Sequence)라고도 하며 오류 발생을 체크하는 용도로 사용합니다.
이더넷 프레임
은 이더넷 헤더와 트레일러가 붙으며 캡슐화된 데이터를 뜻하며, 데이터 링크 계층의 데이터 단위입니다. 프레임을 주고 받는 과정에서 이더넷 헤더의 목적지 MAC 주소와 출발지 MAC 주소를 참조하게 됩니다.
초기 이더넷의 규격은 동축 케이블의 버스형이었습니다. 버스형은 여러대의 기기가 동시에 데이터를 전송하면 충돌이 일어납니다. 이를 해결하기 위해 나온 매커니즘이 CSMA/CD
입니다.
CSMA/CD
의 매커니즘을 살펴 보겠습니다.
OSI 모델의 2계층인 데이터 링크 계층(Data Link Layer)
에 대해서 알아보았습니다.
데이터 링크 계층에 대해서 요약
해보자면 아래와 같습니다.
다음 시간에는 한 네트워크 내에서의 통신이 아닌, 네트워크와 네트워크 간의 통신을 다루는 계층인 네트워크 계층
에 대해서 알아보도록 하겠습니다😎.
그림으로 이해하는 네트워크 용어
(기타미 류지 지음/성창규 옮김/길벗) 도서를 참고하여 정리한 글입니다.