[네트워크] 데이터링크 계층

까막이의 몸부림·2026년 7월 26일

네트워크

목록 보기
4/15

데이터링크 계층

일대일로 연결된 호스트 사이의 신뢰성 있는 전송을 보장

신뢰성을 보장하기 위해 데이터의 흐름을 제어하고 오류를 검출.
- 신뢰성 : 물리적 전송 사이에는 오류 발생이 가능한데, 이러한 오류를 방지/검출/복구한다.

데이터링크 계층에서의 신뢰성은 각 노드 간의 신뢰성을 의미한다.
- 흐름 제어 : 송수신 측의 처리 속도 차이를 해결하기 위해 데이터의 송신 속도를 제어.
- 오류 제어 : 오류가 발생하였는지 검증하고 소실된 프레임을 재전송.

LAN 환경에서는 네트워크 자원의 효율적인 활용을 위해 MAC 계층과 LLC 계층으로 구분.
- MAC 계층 : 물리적 전송 선로의 특징과 매체 간의 연결 방식.
- LLC 계층 : 데이터링크 계층의 기본 기능. 오류 제어, 재전송, 흐름 제어.

주요 프로토콜 : MAC, 이더넷

장비 : 스위치 허브, 브리지

데이터 단위 : 프레임

회선 제어

각각의 컴퓨터가 통신할 때, 신호 간의 충돌이 발생하지 않도록 제어.

ENQ/ACK 방식

한 쪽이 ENQ를 보내 연결 초기화 과정이 진행되면 다른 쪽에서는 응답으로 ACK 프레임을 보내 데이터를 받을 준비가 되었음을 알림.
데이터 전송 뒤에는 EOT 프레임을 보냄으로써 종료.

Polling 방식

선택 모드
: 주 스테이션이 데이터를 전송하고자 할 때 사용. 주 스테이션이 링크에 대한 제어 권한을 가짐.

Poll 모드
: 주 스테이션이 다수의 종속 스테이션에 보낼 데이터가 있는지의 여부를 확인하여 전송.

오류 제어

전송 도중에 오류나 손실이 발생하면 이를 탐지하고 수정.

오류 수정

전진 오류 수정 (FEC)
: 송신 축이 프레임에 부가적인 데이터를 추가해 전송하고, 수신 측이 이 부가적 데이터로 오류 검출 및 수정.
오류 검출 시, 재전송 요청 없이 스스로 수정.

후진 오류 수정 (BEC)
: 송신 측이 확장 비트를 추가해 전송하고, 수신 측이 이를 토대로 오류를 검출 시 송신 측에 재전송을 요청.

오류 검출

패리티 검사
: 1의 개수를 홀/짝수 개로 맞춰서 보낼지를 송수신 측이 교섭하고, 여분의 비트(패리티 비트)를 채워 보냄.
But 홀수 개의 오류만 검출 가능하다는 한계점.

2차원 패리티 검사
: 위의 한계점을 보완하여 수직과 수평으로 패리티 비트를 추가하고 모두 계산. 수평/수직 상에 짝수 개의 오류가 발생해도 반대쪽에서 검출 가능.
But 수평/수직으로 모두 짝수 개 씩 오류가 발생하면 검출 불가능하다는 한계점.

3차원 패리티 검사 : 효율성이 장난 아니게 떨어지는 지점이라 방식을 바꾼다

순환 중복 검사 (CRC)
: 패리티 검사의 한계를 보완. 데이터에 오류가 발생했는지 확인하는 코드를 덧붙여 보냄.

체크섬
: 데이터의 길이와 관계없이 오류 검출.
데이터링크보다는 네트워크/트랜스포트 계층에서 헤더에 붙여 주로 사용. 전송할 데이터의 전체 합을 붙여 보냄.

해밍 코드
: 하나의 데이터 단위에 대해 많은 패리티 비트를 추가해 오류를 검출하고 수정 가능.
패리티를 계산하여 모든 패리티가 0이면 오류 없음, 값이 있다면 위치를 나타냄.

오류 검출 시 재전송 (Automatic Repeat Request)

Stop & Wait ARQ
: 송신 측에서 한 번에 한 개의 프레임을 송신.
수신 측에서는 수신된 프레임의 오류 여부를 ACK 또는 NAK으로 응답. 송신 측에서는 ACK을 받으면 다음 프레임을 전송.
NAK을 받거나 일정 시간 동안 응답이 없으면 해당 프레임을 재전송.

Go Back N ARQ
: 송신 측이 프레임을 여러 개 한꺼번에 전송.
중간의 프레임에 문제가 있으면 수신 측은 NAK와 오류 프레임의 순서번호를 송신 측에 전송.
송신 측은 해당 오류 프레임부터 그 이후의 모든 프레임들을 다시 전송.

Selective Repeat ARQ
: 오류 검출 이후의 프레임들을 전부 다시 보내야하는 Go Back N의 한계점 보완.
문제가 생긴 프레임에 대해서만 NAK 응답을 보내 손상된 프레임만 선별하여 재전송

흐름 제어

송수신 측의 처리 속도 차이를 해결하기 위해 데이터의 송신 속도를 제어.

Stop & Wait
: 전송 측이 프레임을 전송한 후, 각 데이터 프레임에 대한 ACK를 기다렸다가 다음 프레임을 전송.
한 번에 하나만 전송하고 응답이 올 때까지 대기하므로 비효율적.

Sliding Window
: 전송한 프레임에 대한 ACK 프레임을 수신하지 않아도 여러 개의 프레임을 연속적으로 전송하도록 허용.
Window에 포함된 만큼의 프레임은 연속적으로 보내고, 정상 전송이 확인되면 다음 Window에 해당하는 만큼의 프레임을 보냄.

Window : 송수신 양쪽에서 만들어진 버퍼의 크기. ACK를 받지 않아도 연속적으로 전송 가능한 프레임의 개수.

MAC Address

컴퓨터 간 데이터를 전송하기 위한 고유의 물리적 주소.

데이터링크 계층에서 통신을 위해 네트워크 인터페이스 카드에 할당된 고유의 번호.
컴퓨터 네트워크에서 각 기긱를 구분하기 위해 사용하는 물리적 주소.

48비트 길이의 16진수로 구성.
앞의 24비트는 랜 카드를 만든 제조사의 번호, 뒤의 24비트는 랜 카드에 붙인 일련번호.

이더넷

LAN에서 데이터를 주고 받기 위한 규칙.

데이터링크 계층의 대표적인 통신 프로토콜.
이더넷은 CSMA/CD를 이용하여 여러 컴퓨터가 동시에 전송해도 충돌이 발생하지 않는 구조.

CSMA/CD

반송파를 이용한 충돌 감지 및 재전송.

  1. 전송 전에 먼저 현재의 네트워크에 흐르고 있는 데이터가 있는지 감지.
  2. 이미 전송 중이라면 사용할 수 있을 때까지 대기, 사용할 수 있다면 데이터 전송 시작.
  3. 동시에 전송되어 충돌이 발생하면, 최소 패킷 시간 동안 전송을 계속하여 다른 컴퓨터가 충돌을 감지할 수 있게 함.
  4. 일정 시간 기다린 뒤에 다시 신호를 감지하고 네트워크를 사용할 수 있다면 다시 전송 시작.

토큰 버스

버스 형태 + 토큰 제어 방식.
물리적인 버스 구조로 연결되지만, 논리적인 프레임 전달은 링 구조.

토큰이라는 제어 프레임을 사용하여 프레임 전송을 위해서는 토큰 확보가 필요.

토큰 링

순환되는 링 형태의 LAN 구성.
토큰 제어 프레임이 한 쪽으로 순환. 토큰을 획득한 호스트만 데이터 전송 가능.

  • 대기 모드 : 입력단으로 들어온 비트를 출력단으로 즉시 내보냄.
  • 전송 모드 : 호스트가 토큰을 획득해 프레임을 전송할 수 있는 상태. 프레임이 올바르게 전송되었음을 확인, 토큰을 링에 반환.

0개의 댓글