데이터 링크 계층은 물리 계층 바로 다음, 2번째에 위치한 계층이다.
데이터 링크라는 말만 보면 데이터를 연결해 주는 기능을 하는 것처럼 보인다.
그런데 뭘 정확히 연결한다는 것일까?
데이터 링크의 개념
데이터 링크란, 네트워크 통신에서 하나의 데이터가 다른 장치로 전달되기 위해 세워진 연결을 뜻한다.
네트워크 장비 간 데이터 전송의 신뢰성을 보장하고, 물리 계층과 네트워크 계층 사이의 연결을 관리하는 것이
데이터 링크 계층의 역할이다.
연결이라는 말이 나왔다...!
여러 시스템 간의 안정적이고 신뢰할 수 있는 데이터 링크를 보장해야 하니,
단순히 데이터를 연결해 주는 기능을 한다고 생각해도 큰 줄기만 보자면 문제가 없을 것이다.
데이터 링크의 주요 요소
프레이밍 (Framing)
네트워크 계층에서 전달받은 데이터 그램에 프레임 헤더와 트레일러를 추가해 프레임이 생성된다.
프레임엔 데이터 전송 관리를 위한 제어 정보 및 송수신자들의 MAC 주소 등이 포함된다.
프레임화는 연속적인 데이터를 구분하여 흐름을 관리하는 데 중요한 역할을 한다.
오류 검출 및 수정
전송 과정 중 발생할 수 있는 오류를 검출하고 필요하고 수정할 수 있는 경우 수정한다.
트레일러에 포함된 CRC를 사용하여 프레임에서 오류를 검출하고,
해당 프레임의 재전송을 요청할 수도 있다.
흐름 제어
시내에서 자동차를 운전한다고 생각해 보자.
시내엔 신호등이 많기 때문에 속도를 막 높일 수가 없다.
하지만 내가 여기서 과속을 한다면 신호에 맞게 제대로 멈출 수 없을 것이다.
단 한건의 속도 조절 실패였지만, 이는 큰 교통 혼란을 야기할 수도 있는 중대한 사건이다.
네트워크에서의 흐름 제어도 이와 유사하다.
송신 측은 엄청난 속도로 데이터를 보내고 있지만 수신 측이 처리하지 못하면 문제가 생긴다.
원활한 전송을 위해 흐름 제어를 통해 조율하게 된다
매체 접근 제어 (MAC, Media Access Control)
여러 장치가 데이터를 동시에 전송할 때 충돌을 방지하고,
효율적으로 데이터를 주고받을 수 있도록 매체의 접근을 제어한다.
예를 들어 이더넷(우리가 흔히 쓰는 프로토콜)에서 주로 사용되는 충돌 관리 방식으로 CSMA/CD가 있다.
이는 전송을 시작하기 전에 매체를 감지하여 사용 중인디 확인한다.
만약 사용 중이지 않으면 전송하고, 이 과정에서 충돌이 발생하면 감지(CD, Collision Detection)하고 재전송한다.
MAC 주소라는 말도 들어본 적 있지 않은가?
네트워크 장치에 부여된 고유한 식별자이다.
이는 정말 전역적으로 유일하기에 매우 좋은 식별자가 된다.
데이터 링크 계층에서 각 장치 간 정확한 데이터 전달을 위해 사용된다.
사용되는 장비
스위치
일반적인 사용자들은 평생 볼 일이 없는 장치일 수도 있다.
공유기를 생각해 보자.
공유기엔 여러 LAN 포트가 있으며, 연결된 장치들을 하나의 네트워크로 묶는다.
연결된 각 기기 간의 직접적인 통신도 가능케 한다.
같은 네트워크 상에 있는 A와 B는 인터넷을 통하지 않고도 서로 통신할 수 있다.
공유기는 여러 네트워크 장비의 기능이 합쳐져 있는 장치이기에,
1 : 1 대응은 어렵지만 스위치의 개념을 가볍게 알아보는 데 부족함이 없을 것이다.
네트워크 카드
LAN 카드를 아시는가.
컴퓨터를 오래 만져 본 사람들은 이걸 쓰던 시절을 기억할 것이다.
이게 없으면 컴퓨터에서 인터넷을 쓸 수 없었다.
요즘은 메인보드에 다 통합되어 나와서 볼 수 없지만...
이런 네트워크 카드도 고유의 MAC주소를 가진다.
물리 계층과 직접 연결되는 데이터 링크 계층의 장비이기 때문.
결론
데이터 링크 계층은 프레임의 전송, 관리, 충돌 방지, 흐름 제어 등의 역할을 수행해,
네트워크 통신의 효율성의 제고를 목표로 한다.
신뢰성 있는 통신과 성능을 위해 꼭 필요한 일을 하는 계층이라 볼 수 있다.
'Camp > Standard' 카테고리의 다른 글
[OSI 7계층] 전송 계층 (0) | 2024.09.06 |
---|---|
[OSI 7계층] 네트워크 계층 (0) | 2024.09.06 |
[OSI 7계층] 물리 계층 (0) | 2024.09.03 |
OSI 7계층이란? (0) | 2024.08.26 |
서버와 클라이언트는 무엇인가? (0) | 2024.08.26 |