직접 연결된 네트워크 장비 간의 데이터 전송을 담당하는 계층입니다.
데이터 링크 계층은 다음과 같은 기능을 합니다.
데이터 링크 계층에서는 위에서 설명드렸던 기능을 지원하기 위해 이더넷(Ehternet)이라는 프로토콜을 사용합니다. LAN에서 적용되는 프로토콜로 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을 때 사용합니다.
이더넷에서 송수신되는 프레임은 이더넷 프레임이라고 합니다.
특정 컴퓨터에게 데이터를 보내는데 다른 컴퓨터가 그 데이터를 받아 보면 안될 것입니다. 따라서 다른 컴퓨터는 데이터를 못보게 하는 규칙이 정해져 있습니다. 보내려는 데이터에 목적지 정보를 추가해서 보내고 목적지 이외의 컴퓨터는 데이터를 받아도 무시하게 합니다.
다만, 여러 대의 컴퓨터가 동시에 데이터를 보내면 데이터가 서로 충돌이 일어날 수 있는데 이더넷은 여러 대의 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조로 되어 있습니다. 이를 위해 이더넷에서는 CSMA/CD라는 방법을 사용합니다.
Carrier Sense Multiple Access with Collision Detection
반송파 감지 다중 접속 및 충돌 탐지
CS는 데이터를 전송하고자 하는 컴퓨터가 케이블에 신호가 흐르는지 확인한다는 규칙이고 MA는 케이블에 신호가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙이고 CD는 충돌이 발생하고 있는지를 확인한다는 규칙입니다. 이러한 규칙으로 데이터를 주고 받으면 충돌이 일어나지 않습니다.
현재는 효율이 좋지 않다는 이유로 CSMA/CD는 거의 사용하지 않고 스위치(Switch)라는 네트워크 장비를 사용하여 충돌을 막습니다.
Media Access Control Address
LAN 카드에는 MAC 주소라는 번호가 할당되어 있습니다. 전 세계에서 유일한 번호로 할당되어 있습니다. 중복되지 않도록 규칙이 명확하게 정해져 있고 48비트 숫자로 구성되어 있습니다. 앞 24비트는 랜 카드를 만드는 제조사 번호, 뒤 24비트는 제조사가 랜 카드에 붙인 일련번호입니다.
앞선 포스팅에서 데이터가 전송될 때 7계층부터 1계층으로 내려오면서 헤더를 붙인다고 하였습니다. 데이터 링크 계층에서는 이더넷 헤더와 트레일러가 붙습니다.
이데넛 헤더는 목적지 MAC 주소(6바이트), 출발지 MAC 주소(6바이트), 유형(2바이트)으로 총 14바이트로 구성되어 있습니다. 유형은 프로토콜을 나타냅니다. 프로토콜의 종류에는 IPv4, ARP, IPv6 등이 있습니다.
트레일러는 FCS(Frame Check Sequence)라고도 부르며 데이터 전송 중 오류를 확인하는 용도입니다.
스위치(Switch)는 데이터 링크 계층에서 동작하는 장비입니다. 허브와는 다르게 스위치 내부에는 MAC 주소 테이블이 존재합니다. MAC 주소 테이블은 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되어 있는 데이터베이스입니다.
스위치는 자체적으로 스위치 내부에 MAC 주소를 등록합니다.
스위치의 전원을 켰을 때, MAC 주소 테이블에는 아무것도 등록되어 있지 않습니다. 연결되어 있는 컴퓨터에서 목적지 MAC 주소가 추가된 프레임이 전송되면 MAC 주소 테이블을 확인합니다. 출발지 MAC 주소가 등록되어 있지 않다면 MAC 주소를 포트와 함께 등록합니다. 이 기능을 MAC 주소 학습 기능이라고 합니다.
스위치가 수신 포트 이외의 모든 포트에서 데이터를 송신하는 것을 플러딩(Flooding)이라고 합니다. 도착지 MAC 주소가 아직 MAC 주소 테이블에 등록되지 않은 경우에 플러딩이 발생합니다.
도착지 MAC 주소가 MAC 주소 테이블에 등록되어 있다면 목적지에만 데이터를 송신합니다.