이더넷 프레임이 무엇인지 알아보고 목적지 MAC 주소, 출발지 MAC 주소, 데이터, FCS 등 프레임을 구성하는 주요 요소를 쉽게 정리합니다.

컴퓨터에서 인터넷이나 사내 네트워크를 사용하다 보면 패킷(Packet)​이라는 말을 자주 듣게 됩니다.

그런데 이더넷 네트워크에서는 패킷이 그대로 케이블을 통해 전달되는 것이 아닙니다.

네트워크 계층에서 만들어진 데이터는 Ethernet 환경에서 전송될 때 필요한 정보가 붙으면서 프레임(Frame)​이라는 형태로 만들어집니다.

쉽게 말하면 프레임은 이더넷 네트워크에서 데이터를 전달하기 위한 하나의 포장 단위라고 생각하면 됩니다.

처음 네트워크를 공부할 때 패킷과 프레임이 비슷해 보여서 헷갈리기도 하는데, 각각 사용되는 네트워크 계층과 역할이 조금 다릅니다.

이번 글에서는 이더넷 프레임이 어떤 구조로 되어 있고 각각의 정보가 왜 필요한지 알아보겠습니다.

Ethernet Frame이란?

Ethernet Frame은 이더넷 네트워크에서 데이터를 전송하기 위해 만들어지는 데이터 단위입니다.

예를 들어 PC에서 같은 네트워크에 있는 다른 PC로 데이터를 보낸다고 생각해 보겠습니다.

단순히 데이터만 보내는 것이 아니라:

목적지 MAC 주소
+
출발지 MAC 주소
+
데이터
+
오류 검사 정보

등을 함께 넣어 전송합니다.

이렇게 만들어진 하나의 데이터 묶음이 Ethernet Frame입니다.

간단하게 표현하면:

┌──────────────┬──────────────┬────────────┐
│ 목적지 MAC   │ 출발지 MAC   │    데이터  │
└──────────────┴──────────────┴────────────┘

여기에 프레임의 시작과 오류 검사를 위한 정보 등이 추가됩니다.

왜 데이터를 그냥 보내지 않을까?

“그냥 데이터만 보내면 되는 것 아닌가?”라는 생각이 들 수 있습니다.

하지만 네트워크에서는 여러 장치가 연결되어 있기 때문에 데이터가 누구에게 가야 하는지 알아야 합니다.

예를 들어 회사 네트워크에 여러 PC가 연결되어 있다고 해보겠습니다.

PC A ─┐
PC B ─┼─ 스위치
PC C ─┤
PC D ─┘

PC A가 PC C에게 데이터를 보내려면 스위치가 어떤 장치로 데이터를 전달해야 하는지 알아야 합니다.

이때 중요한 정보가 바로 MAC 주소입니다.

그래서 Ethernet Frame에는 출발지 MAC 주소와 목적지 MAC 주소가 포함됩니다.

Ethernet Frame의 기본 구조

일반적인 Ethernet II 프레임을 단순화해서 보면 다음과 같은 구조입니다.

┌──────────┬────────────┬────────────┬──────────┬──────────┬─────────┐
│ Preamble │ 목적지 MAC │ 출발지 MAC │   Type   │   Data   │   FCS   │
└──────────┴────────────┴────────────┴──────────┴──────────┴─────────┘

각 영역마다 역할이 다릅니다.

앞에서부터 하나씩 살펴보겠습니다.

1. Preamble

프레임 앞부분에는 Preamble이 있습니다.

Preamble은 수신 장치가 Ethernet 프레임을 정상적으로 받아들일 수 있도록 통신의 시작을 알리고 동기화를 맞추는 역할을 합니다.

일반적으로 7바이트의 Preamble과 1바이트의 SFD(Start Frame Delimiter)가 함께 사용됩니다.

개념적으로는:

Preamble
   ↓
"SFD"
   ↓
실제 Ethernet Frame

과 같은 흐름으로 생각하면 됩니다.

처음부터 실제 데이터가 바로 등장하는 것이 아니라 통신을 준비하는 부분이 앞에 존재한다고 이해하면 쉽습니다.

2. Destination MAC Address

그다음에는 목적지 MAC 주소가 들어갑니다.

말 그대로 프레임을 받을 장치의 MAC 주소입니다.

예를 들어:

Destination MAC

00:11:22:33:44:55

와 같은 형태입니다.

스위치는 이 MAC 주소를 확인하고 프레임을 어느 포트로 전달할지 결정합니다.

앞에서 배웠던 MAC 주소 테이블과도 바로 연결되는 부분입니다.

목적지 MAC 확인
       ↓
MAC 주소 테이블 검색
       ↓
해당 포트 확인
       ↓
프레임 전달

그래서 Ethernet 네트워크에서 목적지 MAC 주소는 상당히 중요한 정보입니다.

3. Source MAC Address

다음은 출발지 MAC 주소입니다.

이 프레임을 보내는 장치의 MAC 주소가 들어갑니다.

예를 들어:

Source MAC

AA:BB:CC:DD:EE:FF

와 같은 형태입니다.

스위치는 들어온 프레임의 출발지 MAC 주소를 확인해서 어떤 MAC 주소가 어느 포트에서 들어왔는지 학습할 수 있습니다.

예를 들어:

AA:BB:CC:DD:EE:FF
        ↓
    Port 3

처럼 MAC 주소 테이블을 만들어가는 것입니다.

즉, 목적지 MAC은 데이터를 어디로 보낼지 판단하는 데 중요하고, 출발지 MAC은 스위치가 장치의 위치를 학습하는 데 활용됩니다.

4. Type

Ethernet II 프레임에서는 MAC 주소 뒤에 Type(EtherType) 필드가 있습니다.

이 값은 프레임의 데이터가 어떤 상위 계층 프로토콜에 해당하는지 알려주는 역할을 합니다.

예를 들어 IPv4 데이터인지 IPv6 데이터인지 등을 구분할 수 있습니다.

대표적으로:

IPv4 → 0x0800
IPv6 → 0x86DD
ARP  → 0x0806

등이 있습니다.

따라서 수신 장치는 Type 정보를 보고 프레임 안에 들어 있는 데이터를 어떤 프로토콜로 처리해야 하는지 판단할 수 있습니다.

5. Data

여기가 우리가 실제로 전달하려는 데이터 영역입니다.

예를 들어 웹사이트에 접속하면서 발생한 데이터가 Ethernet Frame 안에 들어갈 수 있습니다.

구조를 단순하게 표현하면:

Ethernet Frame
 ├─ MAC 주소
 ├─ Type
 └─ Data
      └─ IP Packet
           └─ TCP Segment
                └─ Application Data

처럼 여러 계층의 데이터가 안쪽으로 들어가는 형태입니다.

이런 구조를 캡슐화(Encapsulation)​라고 합니다.

처음 네트워크를 공부할 때는 “패킷 안에 뭐가 들어가고 프레임 안에 뭐가 들어가는지”가 상당히 헷갈릴 수 있는데, 데이터를 여러 계층에서 필요한 정보로 감싸서 전달한다고 생각하면 이해하기 쉽습니다.

6. FCS

프레임의 마지막에는 FCS(Frame Check Sequence)​가 있습니다.

FCS는 프레임이 전송되는 과정에서 오류가 발생했는지 확인하기 위한 값입니다.

송신 측에서 프레임의 데이터를 기반으로 계산한 값을 넣어 보내고, 수신 측에서도 다시 계산해서 비교합니다.

송신 측
데이터 → FCS 계산
        ↓
      전송
        ↓
수신 측
데이터 → 다시 계산
        ↓
    FCS와 비교

값이 일치하지 않는다면 전송 과정에서 데이터가 손상되었을 가능성이 있다고 판단할 수 있습니다.

FCS에는 일반적으로 CRC(Cyclic Redundancy Check) 방식이 사용됩니다.

Ethernet Frame의 크기는 얼마나 될까?

일반적인 Ethernet II 프레임의 크기는 64바이트에서 1518바이트 범위입니다.

여기서 주의할 점이 있습니다.

앞에서 설명한 Preamble과 SFD는 일반적으로 Ethernet Frame 자체의 크기를 계산할 때 포함하지 않습니다.

기본적인 Ethernet Frame은:

최소 64 bytes
최대 1518 bytes

정도로 이해하면 됩니다.

여기에는:

  • Destination MAC
  • Source MAC
  • Type
  • Data
  • FCS

등이 포함됩니다.

다만 VLAN 태그가 추가되거나 Jumbo Frame을 사용하는 경우에는 크기가 달라질 수 있습니다.

데이터가 너무 작으면 어떻게 할까?

Ethernet에는 프레임의 최소 크기가 존재합니다.

그런데 실제로 전달할 데이터가 너무 작다면 최소 프레임 크기를 만족하지 못할 수 있습니다.

이 경우 Padding이 추가될 수 있습니다.

예를 들어:

실제 데이터
    ↓
크기가 너무 작음
    ↓
Padding 추가
    ↓
최소 프레임 크기 충족

이런 방식입니다.

따라서 Data 영역에는 우리가 실제로 보내는 데이터뿐만 아니라 필요한 경우 Padding이 포함될 수도 있습니다.

프레임과 패킷은 어떻게 다를까?

이 부분은 네트워크를 공부하면서 상당히 자주 헷갈리는 부분입니다.

간단하게 구분하면:

Frame
→ 데이터 링크 계층에서 사용하는 데이터 단위

Packet
→ 네트워크 계층에서 사용하는 데이터 단위

예를 들어 IPv4 통신에서는:

Ethernet Frame
└── IP Packet
    └── TCP Segment
        └── Application Data

와 같은 형태로 볼 수 있습니다.

즉, IP Packet이 Ethernet Frame 안에 들어가서 전달되는 구조입니다.

프레임은 목적지에 도착하면 어떻게 될까?

예를 들어 PC A에서 PC B로 데이터를 보낸다고 해보겠습니다.

PC A
 ↓
Ethernet Frame
 ↓
스위치
 ↓
PC B

PC A의 NIC는 데이터를 Ethernet Frame 형태로 만들어 전송합니다.

스위치는 목적지 MAC 주소를 확인하고 적절한 포트로 프레임을 전달합니다.

그리고 PC B의 NIC가 프레임을 받아 운영체제로 전달합니다.

대략적인 흐름은:

애플리케이션
    ↓
TCP
    ↓
IP
    ↓
Ethernet
    ↓
NIC
    ↓
스위치
    ↓
상대방 NIC
    ↓
Ethernet
    ↓
IP
    ↓
TCP
    ↓
애플리케이션

과 같습니다.

라우터를 지나면 프레임은 어떻게 될까?

여기서 재미있는 부분이 하나 있습니다.

Ethernet Frame은 네트워크 전체를 끝까지 그대로 들고 가는 것이 아닙니다.

라우터를 통과하면 일반적으로 기존 Ethernet Frame은 벗겨지고, 다음 네트워크 구간에 맞는 새로운 Ethernet Frame이 만들어집니다.

예를 들어:

PC A
 ↓
Frame ①
 ↓
라우터
 ↓
Frame ②
 ↓
서버

처럼 볼 수 있습니다.

IP Packet은 라우팅 과정에서 계속 전달되지만, 각 링크 구간에서 사용하는 Ethernet Frame의 MAC 주소는 달라질 수 있습니다.

이 차이를 이해하면 MAC 주소와 IP 주소의 역할 차이도 훨씬 명확해집니다.

VLAN이 붙으면 프레임 구조가 달라진다

앞에서 VLAN에 대해서도 공부했는데, VLAN을 사용하는 경우에는 Ethernet Frame에 802.1Q VLAN 태그가 추가될 수 있습니다.

기본적으로:

Destination MAC
Source MAC
Type
Data
FCS

였다면 VLAN 태그가 들어가는 경우:

Destination MAC
Source MAC
VLAN Tag
Type
Data
FCS

와 같은 형태가 됩니다.

VLAN 태그에는 VLAN ID 등의 정보가 들어갑니다.

그래서 트렁크 포트에서 여러 VLAN의 트래픽을 하나의 링크로 전달할 때 Ethernet Frame에 VLAN 정보가 함께 사용될 수 있습니다.

NIC는 프레임을 어떻게 처리할까?

PC의 NIC도 Ethernet Frame과 밀접한 관계가 있습니다.

데이터를 보낼 때는:

운영체제
 ↓
Ethernet Frame 생성
 ↓
NIC
 ↓
랜 케이블

형태로 전달합니다.

반대로 데이터를 받을 때는:

랜 케이블
 ↓
NIC
 ↓
Ethernet Frame 확인
 ↓
운영체제

과 같은 방식으로 처리됩니다.

앞에서 공부했던 NIC가 실제 Ethernet 통신에서 어떤 역할을 하는지 여기서 연결해서 이해할 수 있습니다.

실제 네트워크에서는 프레임을 직접 볼 수도 있다

Ethernet Frame은 단순한 이론적인 개념이 아닙니다.

Wireshark 같은 네트워크 분석 프로그램을 사용하면 실제로 네트워크에서 오가는 프레임을 확인할 수 있습니다.

예를 들어 패킷을 캡처하면:

Destination
Source
Type
Data

등의 정보를 직접 확인할 수 있습니다.

그래서 네트워크 문제를 분석할 때 Ethernet Frame을 이해하고 있으면 캡처된 데이터를 훨씬 쉽게 읽을 수 있습니다.

Ethernet Frame을 쉽게 기억하는 방법

처음에는 필드 이름을 전부 외우려고 하면 오히려 헷갈립니다.

가장 중요한 것부터 기억하면 됩니다.

누구에게?
→ Destination MAC

누가 보냈지?
→ Source MAC

안에는 뭐가 들어있지?
→ Data

어떤 프로토콜이지?
→ Type

전송 중 문제가 있었나?
→ FCS

이 정도만 먼저 기억해도 Ethernet Frame의 기본 구조는 충분히 이해할 수 있습니다.

정리

Ethernet Frame은 이더넷 네트워크에서 데이터를 전달하기 위해 사용하는 데이터 단위입니다.

기본적인 Ethernet II 프레임은 다음과 같은 구조로 볼 수 있습니다.

Destination MAC
        ↓
Source MAC
        ↓
Type
        ↓
Data
        ↓
FCS

앞에는 Preamble과 SFD가 붙어 프레임 전송을 위한 동기화와 시작을 알리고, 프레임 내부에는 목적지와 출발지 MAC 주소가 들어갑니다.

Type은 상위 프로토콜을 구분하는 데 사용되고, Data 영역에는 IP Packet과 같은 상위 계층의 데이터가 들어갑니다.

마지막의 FCS는 전송 중 오류가 발생했는지 확인하는 역할을 합니다.

특히 중요한 점은 프레임과 패킷이 같은 것이 아니라는 것입니다.

일반적인 통신에서는:

Ethernet Frame
   └─ IP Packet
       └─ TCP/UDP
           └─ 실제 데이터

와 같이 여러 계층의 데이터가 캡슐화되어 전달됩니다.

또한 스위치는 Ethernet Frame의 MAC 주소를 확인해 프레임을 적절한 포트로 전달하고, 라우터를 통과하면 다음 네트워크 구간에 맞는 새로운 Ethernet Frame이 만들어질 수 있습니다.

결국 Ethernet Frame을 한 문장으로 정리하면:

“이더넷 네트워크에서 MAC 주소와 실제 데이터를 담아 한 구간씩 전달하는 데이터 포장 단위”​라고 이해하면 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

글쓴이

rjsan46@koreabites.com

관련 게시물

웹 브라우저에 주소를 입력하면 일어나는 일

웹 브라우저 주소창에 웹사이트 주소를 입력하고 엔터를 누르면 바로 화면이 나타나는 것처럼 보인다. 하지만 실제로는 그 짧은 순간에 꽤 많은 일이 일어난다....

모두 읽어보기

소켓이란 무엇일까? 프로그램과 네트워크를 연결하는 통로

네트워크를 공부하다 보면 IP 주소와 포트 번호라는 말을 계속 만나게 된다. IP 주소는 어떤 컴퓨터와 통신할 것인지 구분하고, 포트 번호는 그 컴퓨터에서...

모두 읽어보기

쿠키와 세션은 어떻게 다를까?

웹사이트를 이용하다 보면 한 번 로그인한 뒤 다른 페이지로 이동해도 로그인 상태가 계속 유지되는 것을 볼 수 있다. 예를 들어 쇼핑몰에 로그인한...

모두 읽어보기

SSL과 TLS는 어떤 역할을 할까?

앞에서 HTTPS가 HTTP보다 안전한 이유를 살펴봤다. HTTPS는 단순히 HTTP 자체가 더 안전하게 만들어진 프로토콜이 아니라, HTTP 통신에 TLS라는 보안 계층을 적용한 것이라고...

모두 읽어보기

포트 번호로 네트워크 서비스를 구분하는 방법

컴퓨터가 네트워크를 통해 다른 컴퓨터와 통신할 때 가장 먼저 떠오르는 것이 IP 주소다. 예를 들어 어떤 서버의 IP 주소가 192.168.0.10이라고 해보자. 그런데...

모두 읽어보기

HTTPS는 HTTP보다 무엇이 안전할까?

인터넷에서 웹사이트에 접속하다 보면 주소창에 http://가 붙어 있는 경우도 있고 https://가 붙어 있는 경우도 있다. 요즘은 대부분의 웹사이트가 HTTPS를 사용하기 때문에 사실상...

모두 읽어보기