반응형

2계층 : 데이터 링크(Data Link) 계층

- "가까이 있는 컴퓨터끼리 통신을 어떻게 하는 지 정의하는 것"
- 물리 계층(1계층)에서는 데이터를 단순히 물리적인 신호로 바꿔서 전달만 했었지만,
- 데이터 링크 계층(2계층)에서는 물리적 주소인 MAC 주소를 부여해 원하는 기기에만 데이터를 전달할 수 있도록 한다.
- 물리 계층을 통해 송수신 되는 정보의 오류 검출 + 흐름 제어를 수행해 신뢰성 있는 데이터 전송을 위해 동작한다.
- 프로토콜: 이더넷(Ethernet)
- 전송되는 단위: 프레임(Frame)
- 물리 계층으로 데이터를 보내기 위해, 비트(Bit)들을 일정한 크기의 논리적인 단위인 프레임(Frame)으로 묶어서 안전하게 전달한다.
- 프레임(Frame)은 헤더(Header)와 트레일러(Trailer)를 추가하여 데이터 경계를 표시한다.
- 프레임(Frame)에 물리적 주소(MAC 주소)를 부여하고, MAC 주소로 통신을 한다.
- 장비: 브리지, 스위치
이더넷(Ethernet)
- 유선 컴퓨터 네트워킹 기술의 한 종류
- 근거리 통신망(LAN)에서 사용되는 네트워킹 방법
- 장비들(하드웨어)이 서로 통신할 수 있도록, 데이터를 주고받는 규칙과 방법을 정의하는 표준
- 1983년에 'IEEE 802.3' 이라는 이름으로 국제 표준화 되었다.
- 오늘날 거의 모든 네트워크 장비가 이더넷 기반이다.
CSMA/CD
- 초기 이더넷 환경에서 네트워크 매체(케이블)에 대한 접근을 제어하고, 데이터 충돌을 관리하기 위해 사용되었던 프로토콜
- Carrier Sense Multiple Access / Collision Detection ⇒ 이렇게 3개로 나눠서 보면 이해하기 쉽다.

1. Carrier Sense (네트워크 상에 나타나는 신호 감지)
- 상황
- 어떤 PC나 장비가 데이터를 보내고 싶을 때
- 행동
- 다른 장비가 데이터를 보내고 있는지 확인한다.
⇒ 네트워크 상에서 통신이 이루어지고 있는지 신호(Carrier)를 감지(Sense)
- 다른 장비가 데이터를 보내고 있는지 확인한다.
- 결과
- 신호가 감지되면 (O) → 일단 대기
- 신호가 감지되지 않으면 (X) → 데이터를 보낼 수 있는 상태
2. Multiple Access (다중 접속)
- 상황
- 신호가 감지되지 않는 상태일 때
- 행동
- 보내고 싶은 데이터를 네트워크 케이블에 실어 보낸다.
- 결과
- 네트워크 상에 연결된 여러 장비들 중, 어떤 장비든 신호가 감지되지 않는 상태(데이터를 보낼 수 있는 상태)라면, 자유롭게 데이터를 전송할 수 있다.
⇒ 조건만 충족되면, 여러 장비들(Multiple)에서 데이터 전송(Access)이 발생
- 네트워크 상에 연결된 여러 장비들 중, 어떤 장비든 신호가 감지되지 않는 상태(데이터를 보낼 수 있는 상태)라면, 자유롭게 데이터를 전송할 수 있다.
3. Collision Detection (충돌 탐지)
- 상황
- 데이터를 보내는 도중에
- 행동
- 서로 데이터를 보내다가 충돌(Collision)이 발생하지 않는지 계속 감시(Detection)한다.
- 결과
- 충돌이 없다면 (X) → 성공적으로 데이터 전달
- 충돌이 있다면 (O) → “충돌이야!” 라는 신호(잼 신호)를 보내서 모두에게 알리고, 현재 진행되고 있던 데이터 전달을 즉시 멈추고 + 임의의 시간(백오프 시간) 동안 기다린 다음, 다시 Carrier Sense 부터 시작
cf.) 충돌이 연속으로 15번 반복되면, 데이터 전송을 더이상 시도하지 않고 중단한다.
MAC 주소 (MAC Address)

- MAC = Media Access Control
- 네트워크 장비의 고유한 식별 번호 (세상에 단 하나밖에 없는 유일한 값)
- 사람으로 치면, 주민등록 번호 or 핸드폰 번호 같은 존재이다.
- NIC(Network Interface Card, 랜카드)에 제조 단계에서 새겨져 나오기 때문에, '하드웨어 주소' 라고도 부른다.
- 48bit / 16진수 / 12자리 로 구성되어 있다.
- 앞의 24비트 (3바이트)
- OUI (Organizationally Unique Identifier) : 제조사(벤더) 고유 번호
- 뒤의 24비트 (3바이트)
- NIC (Network Interface Controller Specific) : 제조사에서 자체적으로 할당한 Host Identifier (시리얼 넘버)
- 앞의 24비트 (3바이트)
⇒ 즉, 제조사 + 일련번호 형식 (ex. 삼성에서 만든 + 123번 카드 같은 느낌)
- 8자리마다 ' - ', ' : ', ' . ' 으로 구분해서 사용한다.
- 00-60-97-8F-4F-86
- 00:60:97:8F:4F:96
- 0060.978F.4F86
cf.) MAC 주소 확인하는 방법 (Windows 기준)
⇒ cmd 창에 'ipconfig /all' 명령어 입력

프레임(Frame)
- 데이터 링크 계층의 데이터 단위 (데이터를 전송하려는 논리적인 단위)
- 쉽게 이해하기 위한 예시
- 택배 상자에 내용물을 담아서, 주소와 송장 정보를 붙여서 보내는 것과 같음
⇒ 여기서 택배상자가 = 프레임(Frame)
- 택배 상자에 내용물을 담아서, 주소와 송장 정보를 붙여서 보내는 것과 같음

< MAC Frame (Ethernet Frame) : 64~1518 byte >
1. MAC Header : 14 byte
- DA : 6 byte
- Destination MAC Address
- Frame을 전달받을 목적지 장비의 MAC 주소
- SA : 6 byte
- Source MAC Address
- Frame을 보낸 출발지 장비의 MAC 주소
- Len/Type : 2byte
- Length / Type
- Frame 내 데이터 부분의 길이를 나타내거나
- MAC Frame이 전달하는 상위 계층 프로토콜의 종류(ex. IP, ARP 등)를 나타냄
- IPv4 (0 8 0 0)
- IPv6 (0 8 D D)
- ARP (0 8 0 6)
- Length / Type
2. Data (Payload) : 46~1500 byte
- 상위 계층에서 내려온 데이터 (실제 전송하려는 데이터)
- 최소 크기: 46 byte
- 46 byte 보다 짧으면 → 부족한 부분을 채우기 위해 자동으로 Padding 이 추가된다.
- Padding 은 일반적으로 0으로 채워진다.
- 데이터 내용과 무관하고, Frame의 최소 크기를 맞추는 용도이다.
- 46 byte 보다 짧으면 → 부족한 부분을 채우기 위해 자동으로 Padding 이 추가된다.
- 최대 크기: 1500 byte
- MTU: Maximum Transmission Unit
- 택배 트럭 한 대에 실을 수 있는 최대 적재량을 정하는 것과 같다.
(정해진 적재량 보다 큰 짐은 여러 개로 분할해서 보내야 하겠지) - 네트워크를 통해 한 번에 보낼 수 있는 데이터 양을 결정한다.
- 적절한 MTU 설정은 불필요한 패킷 분할을 줄여서, 데이터 전송 효율을 높이고 & 네트워크 혼잡을 감소시킨다.
3. Trailer : 4 byte
- FCS
- Frame Check Sequence
- 오류 검출을 위한 필드
- 전송된 Frame이 손상되지 않고 잘 도착했는지 확인하는 데에 사용된다.
- CRC(Cyclic Redundancy Check) 값을 포함한다.
- Frame의 무결성을 검증하는 데 사용된다.
- [ DA + SA + Len/Type + Data ] 영역을 계산해서 에러를 판별한다.
<물리 계층 헤더 : 8 byte>
- 물리 계층(1계층)에서 전송을 준비하는 데 사용되는 부분
- 물리적인 신호 전송 과정에서 수신자와 ↔ 송신자의 동기화를 맞추고, Frame의 경계를 표시한다.
- '물리 계층 헤더' 라고 넓게 표현되지만, 그 역할이 일반적인 헤더와는 약간의 차이가 있다.
- '헤더(Header)'는 각 계층에서 데이터에 덧붙여지는 제어 정보를 의미한다.
ex) 데이터 링크 계층(2계층) 헤더에는 → 출발지/목적지 MAC 주소, 타입/길이 등의 정보가 포함된다.
- '헤더(Header)'는 각 계층에서 데이터에 덧붙여지는 제어 정보를 의미한다.
1. Preamble : 7 byte
- 0과 1이 반복되는 패턴
- 수신 측이 클럭 동기를 맞추는 용도
- 네트워크 장비에는 일정 속도로 데이터를 읽고 / 쓰는 시계(clock)를 가지고 있다.
ex) 1초에 몇 비트(0과 1)를 주고 받을까? → 이게 '전송 속도(bps)' 를 의미 - 만약에, 송신 측은 1초에 100만 번 보내는데 / 수신 측은 1초에 90만 번만 읽는다고 하면 → 데이터가 어긋나서 잘못 해석된다.
⇒ 즉, 송신자가 보낸 비트와 ↔ 수신자가 비트를 읽는 타이밍(속도)이 안 맞아서 통신 오류가 발생할 수 있다. - 그래서 수신 측은 송신 측의 클럭에 발을 맞추는 과정이 필요하다.
⇒ 클럭 동기(Clock Synchronization)
- 네트워크 장비에는 일정 속도로 데이터를 읽고 / 쓰는 시계(clock)를 가지고 있다.
2. SFD : 1 byte
- Start Frame Delimiter(구분자)
- Frame 시작을 알린다.
- 10101011 패턴 (국제 표준에 따라 정해진 고정된 값)
- 수신 장치가 Preamble을 통해 동기화를 마친 후 → MAC Frame 데이터의 시작점을 정확히 파악할 수 있도록 해주는 중요한 역할을 한다.
cf.) 헷갈리는 부분 정리
- [ Preamble + SFD ]는 실제로 'Frame 전송'에 필수적인 부분이다.
- Frame 이라는 단어를 이야기할 때, [ Preamble + SFD ]도 구성 요소로 포함은 된다고 볼 수 있다.
- 다만, 실제로 우리가 '데이터' 라고 말하는 부분은 [ Preamble + SFD ]을 제외한 나머지를 말한다.
- 쉽게 말하자면,
- 3계층 → 2계층 (캡슐화)
: MAC Header + (3계층에서 온 패킷) + Trailer ⇒ MAC Frame (실질적인 데이터) - 2계층 → 1계층 (캡슐화)
: Preamble + SFD + (MAC Frame) ⇒ Frame (물리적 전송용 데이터)
- 3계층 → 2계층 (캡슐화)
반응형
'📚 공부 > Network' 카테고리의 다른 글
| [Network] 네트워크 공부 - Layer3 / 네트워크 계층 (1) ARP, ICMP (0) | 2025.10.21 |
|---|---|
| [Network] 네트워크 공부 - Layer2 / 데이터 링크 계층 (2) 브리지, 스위치 개념 및 기능, Looping (0) | 2025.10.06 |
| [Network] 네트워크 공부 - Layer1 / 물리 계층 (0) | 2025.09.15 |
| [Network] 네트워크 공부 - 프로토콜, 네트워크 계층 (OSI 7계층, TCP/IP 5계층) (0) | 2025.09.07 |
| [Network] 네트워크 공부 - 네트워크 개념, 종류, 토폴로지, 통신 방식 (0) | 2025.09.03 |

댓글