[네트워크] 혼공네트 독서 #3 - 이더넷 프레임

2026. 1. 14. 14:07·CS/컴퓨터 네트워크

https://dev-dx2d2y-log.tistory.com/178

 

[네트워크] 혼공네트 독서 #2 - 이더넷과 통신매체, 케이블 NIC

https://dev-dx2d2y-log.tistory.com/176 [네트워크] 혼공네트 독서 #1 - 네트워크 개관, 네트워크 참조모델 기초거시적관점에서의 네트워크노트북, 스마트폰 등 대부분의 현대 전자장치는 주변 장치들과 유

dev-dx2d2y-log.tistory.com

저번에는 이더넷과 통신매체인 케이블에 대해서 알아보았고, 이번에는 데이터 링크 계층에서 일어나는 일을 알아보려한다.

 

https://dev-dx2d2y-log.tistory.com/176

 

[네트워크] 혼공네트 독서 #1 - 네트워크 개관, 네트워크 참조모델 기초

거시적관점에서의 네트워크노트북, 스마트폰 등 대부분의 현대 전자장치는 주변 장치들과 유무선으로 연결되어 정보를 주고받는다. 이렇게 다른 장치끼리 그물망 같이 연결되어 정보를 주고받

dev-dx2d2y-log.tistory.com

네트워크 참조모델의 경우에는 이 글을 참고


이더넷 프레임

데이터 링크 계층과 거기서 주로 사용되는 기술인 이더넷은 LAN 환경에 주로 적용되기 때문에 LAN 환경에서 정보를 주고받을 프레임 형식도 정해져있다. 이를 이더넷 프레임이라고 한다.

 

이더넷 프레임은 주로 상위계층에서 내려온 정보에 LAN 환경 수신용 정보를 프레임의 헤더로 설정한다. (캡슐화)

 

데이터 링크 계층에서 사용되는 이더넷 프레임은 위와 같은 형태를 가진다.


프리앰블

프리앰블(Preamble)은 이더넷 프레임의 시작을 알리는 8바이트 정보다.

프리앰블의 첫 7바이트는 10101010이며, 마지막 바이트는 10101011을 가진다. 그래서 이 첫 바이트를 통해 수신지는 이더넷 프레임이 오고있음을 알 수 있다.

 

네트워크 장비는 아무 비트도 오지 않다가 갑자기 비트가 흘러들어왔을 때, 그 비트가 10101010으로 시작하면 이더넷프레임으로 인식하고, 그렇지 않을 경우 오류로 인식해 폐기한다.


송/수신지 MAC 주소

MAC주소는 '물리적 주소'라고도 한다. 저번에 NIC에 대해서 다룰 때, NIC는 통신매체로 흘러들어오는 정보를 컴퓨터가 이해할 수 있게 바꾸는 작업을 하는데, MAC 주소는 네트워크 인터페이스 (대표적인 예시가 NIC)마다 6바이트 크기로 부여되는 주소다. 따라서 이 MAC 주소를 통해 NIC와 송수신지를 인식할 수 있다.

 

그래서 네트워크 내에서 MAC주소는 일반적으로는 고유하고, 일반적으로 변경되지 않는 주소로 네트워크 인터페이스마다 부여된다. 그래서 한 장치에 NIC가 여러 개면 MAC주소도 여러 개를 부여받는다.

 

다만 MAC주소는 변경가능한 경우도 많기 때문에 고유하지 않을 수 있지만 그 확률이 낮고, 흔치 않은 상황이기 때문에 일반적으로는 고유하다.

 

윈도우에서 CMD 창에 getmac /v 를 입력하면 위와같이 네트워크 정보가 뜬다. 물리적 주소가 MAC주소에 해당하며, 보통은 16진수 숫자 12자리, 총 48비트로 구현된다.


타입/길이

타입이나 길이를 명시한다. 필드에 명시된 크기가 1500(16진수 05DC) 이하인 경우에는 길이를, 1536(16진수 0600) 이상인 경우에는 타입을 나타낸다. 그 중간값이 표기되면 오류다.

 

타입은 이더넷 프레임이 어떤 정보를 캡슐화했는지 나타낸다. 상위계층에서 사용한 프로토콜을 주로 명시하며 대표적으로 IPv4 프로토콜은 0800, IPv6는 86DD, ARP 프로토콜은 0806을 사용한다.


데이터

상위계층에서 전달받거나 상위계층으로 올려야하는 정보다. 최대 크기는 1500바이트, 최소크기는 46바이트다. 만약 데이터가 46바이트보다 작다면 46바이트가될 때까지 0으로 채운다 (패딩)

 

만약에 데이터가 중간에 유실되었다면, 이를 인지하는 것이 중요하다. 데이터가 유실될 경우 데이터양이 짧아지게되므로, 46바이트를 기준으로 그보다 짧은 데이터가 왔다면 이를 유실된 것으로 인식한다.

 

왜 그 크기가 46바이트냐면, 과거 L1계층 (물리계층)에서 표준으로 사용되었던 케이블 때문이다. 이 때 케이블은 10BASE5 를 사용했는데, 한 가지 문제가 있었다. 호스트 간 프레임을 전송하고 문제가 생겼을 경우 재전송하기 위해서는 전송한 프레임이 목적지에 도달할 때까지 충돌이 발생하는지 검사해야한다.

 

그런데 만약 호스트A가 프레임을 한 개 호스트B에게 전송하고, 이후 충돌신호가 오지 않아 다음 프레임을 전송한 직후에 첫 번째 프레임에서 충돌이 발생했고, 그 충돌신호가 호스트A가 감지했다면? 호스트A는 마지막에 보낸 두 번째 프레임에서 충돌이 발생했다고 생각해 두 번째 프레임을 재전송할 것이다.

 

그렇기 때문에 이 문제를 막기 위해서는 목적지에 도착할 때까지 프레임을 보내고 있어야한다. 그리고 프레임의 첫 번째 비트에서 충돌하지 않고 상대방에게 도달했다면 이는 정상처리된 것으로 본다. 따라서 프레임의 첫 번째 비트가 상대방에게 전송될 때까지 프레임을 전송 중이어야한다.

 

10BASE5는 500M가 최대 거리이고, 리퍼터라는 네트워크 장비를 최대 4개 사용하여 2.5KM까지 전송거리를 늘릴 수 있었다. 10BASE5는 500M 이동에 2.8㎲, 2.5km 이동에 14㎲ 소요되고, 가장 멀리서 충돌이 일어나면 데이터가 갈 때 14, 올 때 14해서 총 28㎲가 소요될 것이다.

 

여기에 리퍼터 한 개를 거칠 때마다 3㎲만큼의 지연이 추가되므로 편도기준 총 12㎲의 지연이 발생하므로 따라서 가장 멀리서 충돌이 일어난 경우에 전송시간 28㎲ + 지연시간 24㎲ 지연이 발생해 총 52㎲만큼의 시간이 소요된다.

 

10BASE5가 1비트를 전송하기 위해서는 0.1㎲가 필요하다. 그러면 최소 520비트를 전송해야한다. 그래야 마지막 비트를 전송했을 때 상대방이 첫 번째 비트를 받고 충돌신호를 보내든가 보내지 않든가 할테니. 다만 비트 수를 맞추기 위해서 512비트를 사용한 것 분이다.

 

512비트는 64바이트이므로, 이더넷 프레임의 최소크기는 64바이트가 되어야 이더넷 프레임의 첫 번째 비트가 도달할 때 충돌신호가 발생하더라도 여전히 그 프레임이 전송 중일 때 충돌신호를 감지할 수 있으므로 다시 그 프레임을 재전송하면 된다. 따라서 최소 크기가 64바이트인거고, 이더넷 프레임에서 프리앰블은 단순한 이더넷 프레임 시작신호이기 때문에 제외, 송수신지 MAC주소 6바이트 + 6바이트에 타입/길이 2바이트 + FCS 4바이트까지해서 총 18바이트를 페이로드 제외부분이 담당한다. 따라서 페이로드, 즉 보낼 데이터는 64바이트에서 메타데이터 18바이트를 제외한 46바이트가 최소값이 된다.

 

이 방식을 CSMA/CD 방식이라고한다. 곧 허브를 다루는데, CSMA/CD 방식의 매커니즘은 이정도로하고, CSMA/CD의 등장방식은 허브에서 주로 사용되는 반이중 통신방식을 알아야하기 때문에 거기서 다룰 예정이다.

 

최대값이 1500바이트인 이유는 MTU라고 최소 패킷 크기를 지정하는데, 그 크기가 1500바이트로 지정되어있기 때문에 1500 바이트로 페이로드의 최대크기를 지정한 것이다. MTU는 따로 다룰 예정


FCS

이더넷 프레임의 오류를 검출한다. 이전 블로그에서 데이터 링크 계층에서 오류검출이 일어난다고했는데, 여기서 오류 검출이 일어난다.

 

FCS필드에는 CRC라고 불리는 오류 검출용 값이 들어간다. 송신지에서는 프리앰블을 제외한 값들로 CRC 값을 계산해 FCS 필드에 명시한다.

https://depotceffio.tistory.com/entry/CRC%EC%9D%98-%EB%9C%BB%EA%B3%BC-%EA%B3%84%EC%82%B0-%EB%B0%A9%EB%B2%95

 

CRC의 뜻과 계산 방법

CRC는 Cyclic Redundancy Check의 약자로, 데이터의 정합성을 체크하는 방법 중 하나입니다. 주로 데이터를 송수신할 때 사용하며, 원본 데이터가 훼손이 없다는 것을 증명하기 위해 사용합니다. CRC 관

depotceffio.tistory.com

CRC 계산법은 위 블로그 링크 참고

 

수신지에서는 프리앰블과 FCS필드를 제외한 나머지 값들로 CRC 값을 계산하고 FCS 필드에 적힌 값과 대조한다. 값이 일치하면 정상적으로 도착한 정보라는 뜻이다.

'CS > 컴퓨터 네트워크' 카테고리의 다른 글

[네트워크]IPv4 패킷필드에서 옵션은 무엇을 담당하는가?  (0) 2026.01.16
[네트워크] 혼공네트 독서 #5 - 네트워크 계층과 IPv4, IPv6 패킷구조, ARP  (1) 2026.01.15
[네트워크] 혼공네트 독서 #4 - 네트워크 장비, 허브와 스위치  (0) 2026.01.14
[네트워크] 혼공네트 독서 #2 - 이더넷과 통신매체, 케이블 NIC  (0) 2026.01.14
[네트워크] 혼공네트 독서 #1 - 네트워크 개관, 네트워크 참조모델 기초  (0) 2026.01.13
'CS/컴퓨터 네트워크' 카테고리의 다른 글
  • [네트워크] 혼공네트 독서 #5 - 네트워크 계층과 IPv4, IPv6 패킷구조, ARP
  • [네트워크] 혼공네트 독서 #4 - 네트워크 장비, 허브와 스위치
  • [네트워크] 혼공네트 독서 #2 - 이더넷과 통신매체, 케이블 NIC
  • [네트워크] 혼공네트 독서 #1 - 네트워크 개관, 네트워크 참조모델 기초
컬러잇
컬러잇
탄천러너지망생
  • 컬러잇
    Color it
    컬러잇
  • 전체
    오늘
    어제
    • 분류 전체보기 (252)
      • 신년사 (3)
        • 2025년 (2)
        • 2026년 (1)
      • CS (79)
        • JVM (12)
        • 인프라 (6)
        • 백엔드 (22)
        • 논리회로 (5)
        • 언어구현 (1)
        • 인공지능 (1)
        • 코드설계 (3)
        • 컴퓨터구조 (9)
        • 데이터베이스 (4)
        • 컴퓨터 네트워크 (16)
      • 보안 (3)
        • 웹보안 (3)
        • AI보안 (0)
        • 시스템보안 (0)
        • 네트워크보안 (0)
      • 언어공부 (65)
        • Java | Kotlin (49)
        • JavaScript | TypeScript (9)
        • C | C++ (6)
      • 개인 프로젝트 (11)
        • [2025] Happy2SendingMails (3)
        • [2026] 골든리포트! (8)
        • 기타 이것저것 (0)
      • 팀 프로젝트 (29)
        • [2025][GDG]홍대 맛집 아카이빙 프로젝트 (29)
      • 알고리즘 (13)
        • 백준풀이기록 (11)
      • 에러 수정일지 (4)
      • 고찰 (33)
        • CEOS 23기 회고록 (9)
        • 놀이터 (0)
  • 링크

    • 교양있는컬러잇
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.5
컬러잇
[네트워크] 혼공네트 독서 #3 - 이더넷 프레임
상단으로

티스토리툴바