이더넷 프레임

컴퓨터 망에서 이더넷 프레임(Ethernet frame)은 데이터 링크 계층의 프로토콜 데이터 단위이며 기본 이더넷 물리 계층 전송 메커니즘을 사용한다. 즉, 이더넷 링크의 데이터 단위는 이더넷 프레임을 페이로드로 전송한다.

이더넷 프레임 앞에는 물리 계층에서 이더넷 패킷의 일부인 프리앰블과 프레임 시작 구분자(SFD)가 붙는다. 각 이더넷 프레임은 이더넷 헤더로 시작하며, 헤더의 처음 두 필드에는 목적지 및 원본 MAC 주소가 포함된다. 프레임의 중간 부분은 프레임에 담긴 다른 프로토콜(예: 인터넷 프로토콜)의 헤더를 포함한 페이로드 데이터이다. 프레임은 데이터 전송 중 손상을 감지하는 데 사용되는 32비트 순환 중복 검사인 프레임 검사 시퀀스(FCS)로 끝난다.

구조
전선 상의 데이터 패킷과 그 페이로드인 프레임은 이진 데이터로 구성된다. 이더넷은 가장 중요한 옥텟(바이트)을 먼저 전송한다. 그러나 각 옥텟 내에서는 가장 덜 중요한 비트가 먼저 전송된다.

이더넷 프레임의 내부 구조는 IEEE 802.3에 명시되어 있다. 아래 표는 MTU 1500 옥텟까지의 페이로드 크기에 대해 전송되는 전체 이더넷 패킷과 그 내부의 프레임을 보여준다. 기가비트 이더넷 및 기타 고속 이더넷 변형의 일부 구현은 점보 프레임으로 알려진 더 큰 프레임을 지원한다.

+ 802.3 이더넷 패킷 및 프레임 구조 계층  프리앰블  프레임 시작 구분자 (SFD)  MAC 목적지  MAC 원본  802.1Q 태그 (선택 사항)  이더타입 (이더넷 II) 또는 길이 (IEEE 802.3)  페이로드  프레임 검사 시퀀스 (32비트 CRC)  인터패킷 갭 (IPG) 길이 (옥텟) 7  1  6  6  (4)  2  42–1500  4  12 레이어 2 이더넷 프레임 (프레임의 일부가 아님)  (프레임의 일부가 아님) 레이어 1 이더넷 패킷 & IPG   ← 12 옥텟 →

선택 사항인 802.1Q 태그는 프레임에서 추가 공간을 차지한다. 이 옵션에 대한 필드 크기는 위 표에 괄호로 표시되어 있다. IEEE 802.1ad (Q-in-Q)는 각 프레임에 여러 태그를 허용한다. 이 옵션은 여기에 설명되어 있지 않다.

 이더넷 패킷 – 물리 계층 

 프리앰블 및 프레임 시작 구분자 

이더넷 패킷은 7옥텟(56비트) 프리앰블과 1옥텟(8비트) 프레임 시작 구분자(SFD)로 시작한다. 프리앰블 비트 값은 1과 0을 번갈아 가며 수신기가 비트 수준에서 송신기와 클록을 동기화할 수 있도록 한다. 프리앰블 다음에는 SFD가 오는데, 이는 프리앰블의 비트 패턴을 깨고 실제 프레임의 시작을 알리기 위해 0 대신 1로 끝난다.

물리 계층 트랜시버 회로(줄여서 PHY)는 이더넷 MAC을 물리적 매체에 연결하는 데 필요하다. PHY와 MAC 간의 연결은 물리적 매체와 독립적이며 매체 독립 인터페이스(MII) 계열 (GMII, RGMII, SGMII, XGMII 등)의 버스를 사용한다. 프리앰블과 SFD 표현은 버스의 너비에 따라 달라진다.
+비트, 십진수, 바이트, 니블로 표시된 프리앰블 및 SFD 표현표현56비트 (7바이트) 프리앰블SFD 바이트인코딩되지 않은 온-더-와이어 비트 패턴은 왼쪽에서 오른쪽으로 전송된다 (더 큰 심볼 대신 직렬 비트를 전송하는 이더넷 변형에서 사용됨)1010101010101010101010101010101010101010101010101010101010101011이더넷 LSb-우선 순서의 십진수858585858585852138비트 폭 버스에 대한 16진수 LSb-우선 바이트
(기가비트 이더넷 트랜시버용 GMII 버스)0x550x550x550x550x550x550x550xD54비트 폭 버스에 대한 16진수 LSb-우선 니블 (MII 버스 for 고속 이더넷 or RGMII for gigabit transceivers)0x50x50x50x50x50x50x50x50x50x50x50x50x50x50x50xD

SFD 다음에는 목적지 MAC 주소가 바로 오는데, 이는 이더넷 프레임의 첫 번째 필드이다.

프레임 – 데이터 링크 계층 
헤더
헤더에는 목적지 및 원본 MAC 주소(각각 6옥텟 길이), 이더타입 필드 및 선택적으로 IEEE 802.1Q 태그 또는 IEEE 802.1ad 태그가 포함된다.

이더타입 필드는 2옥텟 길이이며 두 가지 다른 용도로 사용될 수 있다. 1500 이하의 값은 페이로드의 크기를 옥텟 단위로 나타내는 데 사용되며, 1536 이상의 값은 이더타입으로 사용되어 프레임 페이로드에 캡슐화된 프로토콜을 나타낸다. 이더타입으로 사용될 때 프레임의 길이는 인터패킷 갭과 유효한 프레임 검사 시퀀스(FCS)의 위치에 따라 결정된다.

IEEE 802.1Q 태그 또는 IEEE 802.1ad 태그는 존재하는 경우 4옥텟 필드이며 가상 LAN(VLAN) 멤버십 및 IEEE 802.1p 우선 순위를 나타낸다. 태그의 처음 2옥텟은 Tag Protocol Identifier (TPID)라고 불리며 프레임이 802.1Q 또는 802.1ad 태그가 지정되었음을 나타내는 이더타입 필드 역할을 한다. 802.1Q는 0x8100의 TPID를 사용한다. 802.1ad는 0x88a8의 TPID를 사용한다.

페이로드
페이로드는 가변 길이 필드이다. 최소 크기는 64옥텟(바이트)의 최소 프레임 전송 요구 사항에 의해 결정된다. 헤더와 FCS를 고려하면 802.1Q 태그가 있는 경우 최소 페이로드는 42옥텟이고, 없는 경우 46옥텟이다. 실제 페이로드가 최소값보다 작으면 그에 따라 패딩 옥텟이 추가된다. IEEE 표준은 최대 1500옥텟의 페이로드를 지정한다. 비표준 점보 프레임은 이를 지원하도록 구축된 네트워크에서 더 큰 페이로드를 허용한다.

프레임 검사 시퀀스
프레임 검사 시퀀스(FCS)는 수신 측에서 수신된 전체 프레임 내의 손상된 데이터를 감지할 수 있는 4옥텟 순환 중복 검사(CRC)이다. 표준에 따르면 FCS 값은 보호된 MAC 프레임 필드(원본 및 목적지 주소, 길이/유형 필드, MAC 클라이언트 데이터 및 패딩(즉, FCS를 제외한 모든 필드))의 함수로 계산된다.

표준에 따라 이 계산은 왼쪽 시프트 CRC-32 (다항식 = 0x4C11DB7, 초기 CRC = 0xFFFFFFFF, CRC는 후 보수화됨, 검증 값 = 0x38FB2284) 알고리즘을 사용하여 수행된다. 표준은 데이터가 최하위 비트(비트 0)부터 전송되는 반면, FCS는 최상위 비트(비트 31)부터 전송된다고 명시한다. 대안으로는 오른쪽 시프트 CRC-32 (다항식 = 0xEDB88320, 초기 CRC = 0xFFFFFFFF, CRC는 후 보수화됨, 검증 값 = 0x2144DF1C)를 사용하여 CRC를 계산하여 FCS의 비트 역전인 CRC를 얻고, 데이터와 CRC를 모두 최하위 비트부터 전송하여 동일한 전송을 초래할 수 있다.

표준은 수신기가 데이터가 수신될 때 새로운 FCS를 계산하고 수신된 FCS를 수신기가 계산한 FCS와 비교해야 한다고 명시한다. 대안으로는 수신된 데이터와 FCS 모두에 대해 CRC를 계산하여 고정된 0이 아닌 검증 값을 얻는 것이다. (CRC가 CRC 생성 중 후 보수화되므로 결과는 0이 아니다). 데이터는 최하위 비트부터 수신되므로 옥텟 데이터를 버퍼링해야 하는 것을 피하기 위해 수신기는 일반적으로 오른쪽 시프트 CRC-32를 사용한다. 이렇게 하면 검증 값(때로는 매직 체크라고 불림)이 0x2144DF1C가 된다.

그러나 논리적으로 오른쪽으로 시프트하는 CRC의 하드웨어 구현은 갈루아 선형 되먹임 시프트 레지스터를 CRC 계산의 기반으로 사용할 수 있으며, 비트를 반전시켜 검증 값 0x38FB2284를 얻는다. CRC의 보수는 계산 후 및 전송 중에 수행될 수 있으므로 하드웨어 레지스터에 남아 있는 것은 보수화되지 않은 결과이다. 따라서 오른쪽으로 시프트하는 구현의 잔여값은 0x2144DF1C의 보수인 0xDEBB20E3이고, 왼쪽으로 시프트하는 구현의 잔여값은 0x38FB2284의 보수인 0xC704DD7B가 된다.

 프레임 끝 – 물리 계층 
프레임의 끝은 일반적으로 물리 계층의 데이터 스트림 끝 기호 또는 반송파 신호의 손실로 표시된다. 예를 들어 10BASE-T에서는 수신 스테이션이 반송파 손실로 전송된 프레임의 끝을 감지한다. 후기 물리 계층은 모호성을 피하기 위해 명시적인 데이터 끝 또는 스트림 끝 기호 또는 시퀀스를 사용하는데, 특히 프레임 사이에 반송파가 지속적으로 전송되는 경우 그렇다. 예를 들어 기가비트 이더넷은 8b/10b 인코딩 방식을 사용하여 프레임 전후에 전송되는 특수 기호를 사용한다.

인터패킷 갭 – 물리 계층 
인터패킷 갭 (IPG)은 패킷 사이의 유휴 시간이다. 패킷이 전송된 후 송신기는 다음 패킷을 전송하기 전에 최소 96비트(12옥텟)의 유휴 회선 상태를 전송해야 한다.

유형
+ 이더넷 프레임 구분 프레임 유형  이더타입 또는 길이  페이로드 시작 2바이트 이더넷 II  ≥ 1536  임의 Novell raw IEEE 802.3  ≤ 1500  0xFFFF IEEE 802.2 LLC  ≤ 1500  기타 IEEE 802.2 SNAP  ≤ 1500  0xAAAA

이더넷 프레임에는 몇 가지 유형이 있다.

 이더넷 II 프레임 또는 이더넷 버전 2, 또는 DIX 프레임은 현재 가장 일반적으로 사용되는 유형으로, 종종 인터넷 프로토콜에서 직접 사용된다.
 노벨 (기업) 원시 IEEE 802.3 비표준 변형 프레임
 IEEE 802.2 LLC (Logical Link Control) 프레임
 IEEE 802.2 SNAP (Subnetwork Access Protocol) 프레임

다른 프레임 유형은 다른 형식과 MTU 값을 가지지만 동일한 물리적 매체에서 공존할 수 있다. 프레임 유형 간의 구분은 오른쪽 표를 기반으로 가능하다.

또한, 네 가지 이더넷 프레임 유형 모두 IEEE 802.1Q 태그를 선택적으로 포함하여 소속 VLAN과 우선 순위(서비스 품질)를 식별할 수 있다. 이 캡슐화는 IEEE 802.3ac 사양에 정의되어 있으며 최대 프레임을 4옥텟 증가시킨다.

IEEE 802.1Q 태그는 존재하는 경우 원본 주소와 이더타입 또는 길이 필드 사이에 배치된다. 태그의 처음 두 옥텟은 태그 프로토콜 식별자(TPID) 값인 0x8100이다. 이는 태그 없는 프레임의 이더타입/길이 필드와 동일한 위치에 있으므로 이더타입 값이 0x8100인 경우 프레임이 태그가 지정되었음을 의미하며, 실제 이더타입/길이는 Q-태그 다음에 위치한다. TPID 다음에는 태그 제어 정보(TCI)(IEEE 802.1p 우선 순위(서비스 품질) 및 VLAN ID)를 포함하는 2옥텟이 이어진다. Q-태그 다음에는 위에서 설명한 유형 중 하나를 사용하여 프레임의 나머지 부분이 이어진다.

이더넷 II
이더넷 II 프레이밍(DIX 이더넷이라고도 불리며, 설계에 주요 참여자였던 DEC, 인텔 및 제록스의 이름을 따서 명명됨)은 이더넷 프레임에서 목적지 및 원본 MAC 주소 앞에 오는 2옥텟 이더타입 필드를 정의하며, 이 필드는 프레임 데이터에 의해 캡슐화된 상위 계층 프로토콜을 식별한다. 특히, 0x0800의 이더타입 값은 프레임에 IPv4 데이터그램이 포함되어 있음을 나타내고, 0x0806은 ARP 데이터그램을 나타내며, 0x86DD는 IPv6 데이터그램을 나타낸다. 자세한 내용은 를 참조하라.

섬네일|center|700px|가장 일반적인 이더넷 프레임 형식, 유형 II

이 산업 개발 표준이 공식 IEEE 표준화 과정을 거치면서 이더타입 필드는 새로운 802.3 표준에서 (데이터) 길이 필드로 변경되었다. 수신자는 여전히 프레임을 해석하는 방법을 알아야 하므로, 표준은 길이 뒤에 IEEE 802.2 헤더를 따라 유형을 지정하도록 요구했다. 수년 후, 802.3x-1997 표준과 이후 버전의 802.3 표준은 두 가지 유형의 프레이밍을 공식적으로 승인했다. 이더넷 II 프레이밍은 단순성과 낮은 오버헤드 때문에 이더넷 근거리 통신망에서 가장 일반적이다.

일부 이더넷 II 프레이밍을 사용하는 프레임과 802.3 프레이밍의 원본 버전을 사용하는 프레임이 동일한 이더넷 세그먼트에서 사용될 수 있도록 허용하려면, 이더타입 값은 1536(0x0600) 이상이어야 한다. 이 값은 이더넷 802.3 프레임의 페이로드 필드의 최대 길이가 1500옥텟(0x05DC)이기 때문에 선택되었다. 따라서 필드 값이 1536 이상이면 프레임은 해당 필드가 유형 필드인 이더넷 II 프레임이어야 한다. 1500 이하이면 해당 필드가 길이 필드인 IEEE 802.3 프레임이어야 한다. 1500에서 1536 사이의 값(포함하지 않음)은 정의되지 않는다. 이 규칙은 소프트웨어가 프레임이 이더넷 II 프레임인지 또는 IEEE 802.3 프레임인지 결정할 수 있도록 하여 동일한 물리적 매체에서 두 표준의 공존을 가능하게 한다.

Novell raw IEEE 802.3
노벨의 원시 802.3 프레임 형식은 초기 IEEE 802.3 작업을 기반으로 했다. 노벨은 이를 출발점으로 삼아 이더넷을 통한 자체 IPX 네트워크 프로토콜의 첫 번째 구현을 만들었다. 그들은 LLC 헤더를 사용하지 않고 길이 필드 바로 다음에 IPX 패킷을 시작했다. 이는 IEEE 802.3 표준을 따르지 않지만, IPX가 항상 FF를 처음 두 옥텟으로 가지는 반면(IEEE 802.2 LLC에서는 이 패턴이 이론적으로 가능하지만 극히 드물다), 실제로는 다른 이더넷 구현과 일반적으로 공존한다. 단, 일부 초기 DECnet 형태는 이로 인해 혼동을 겪었다.

노벨 넷웨어는 1990년대 중반까지 이 프레임 유형을 기본적으로 사용했으며, 당시 넷웨어가 매우 널리 퍼져 있었고 IP는 그렇지 않았기 때문에 한때 전 세계 이더넷 트래픽의 대부분이 IPX를 운반하는 원시 802.3을 통해 실행되었다. 넷웨어 4.10부터는 IPX를 사용할 때 넷웨어는 기본적으로 LLC를 사용하는 IEEE 802.2(넷웨어 프레임 유형 이더넷_802.2)를 사용한다. (HTML-formatted version )  — a classic series of Usenet postings by Novell's Don Provan that have found their way into numerous FAQs and are widely considered the definitive answer to the Novell Frame Type usage.

IEEE 802.2 LLC

OSI 스택용으로 설계된 프로토콜과 같은 일부 프로토콜은 연결 지향 및 비연결 네트워크 서비스를 모두 제공하는 IEEE 802.2 LLC 캡슐화 바로 위에서 작동한다.

IEEE 802.2 LLC 캡슐화는 현재 일반 네트워크에서 널리 사용되지 않으며, IP를 통해 넷웨어로 아직 마이그레이션되지 않은 대기업 넷웨어 설치를 제외한다. 과거에는 많은 기업 네트워크가 이더넷과 토큰링 또는 FDDI 네트워크 간의 투명한 브리지를 지원하기 위해 IEEE 802.2를 사용했다.

IPv4 트래픽을 IEEE 802.2 LLC SAP/SNAP 프레임에 캡슐화하기 위한 인터넷 표준이 존재한다.   이는 이더넷에서는 거의 구현되지 않지만, FDDI, 토큰링, IEEE 802.11 (단, 5.9 GHz 대역에서는 이더타입을 사용한다) 및 기타 IEEE 802 LAN에서 사용된다. IPv6도 IEEE 802.2 LLC SAP/SNAP를 사용하여 이더넷을 통해 전송될 수 있지만, 이 역시 거의 사용되지 않는다.

IEEE 802.2 SNAP

802.2 LLC 헤더를 검사하여 SNAP 헤더가 뒤따르는지 확인할 수 있다. LLC 헤더는 OSI 용어로 서비스 액세스 포인트(SAP)라고 불리는 두 개의 8비트 주소 필드를 포함한다. 원본 및 목적지 SAP가 모두 0xAA 값으로 설정되면 LLC 헤더 뒤에 SNAP 헤더가 온다. SNAP 헤더는 이더타입 값을 모든 IEEE 802 프로토콜과 함께 사용할 수 있도록 허용하고, 개인 프로토콜 ID 공간도 지원한다.

IEEE 802.3x-1997에서는 IEEE 이더넷 표준이 MAC 주소 뒤의 16비트 필드를 길이 필드 또는 유형 필드로 명시적으로 사용할 수 있도록 변경되었다.

이더넷("이더토크")의 애플토크 v2 프로토콜 스위트는 IEEE 802.2 LLC + SNAP 캡슐화를 사용한다.

최대 처리량
이더넷의 프로토콜 오버헤드를 백분율(IPG를 포함한 패킷 크기)로 계산할 수 있다.

이더넷의 프로토콜 효율성을 계산할 수 있다.

최대 효율성은 허용되는 최대 페이로드 크기에서 달성되며 다음과 같다.

태그가 없는 프레임의 경우, 패킷 크기는 최대 1500옥텟 페이로드 + 8옥텟 프리앰블 + 14옥텟 헤더 + 4옥텟 트레일러 + 최소 인터패킷 갭(12옥텟에 해당) = 1538옥텟이다. 최대 효율성은 다음과 같다.

802.1Q VLAN 태깅을 사용하는 경우.

처리량은 효율성으로부터 계산할 수 있다.
,
여기서 물리 계층 순수 비트 전송률(회선 비트 전송률)은 이더넷 물리 계층 표준에 따라 달라지며, , ,  또는 일 수 있다. 따라서 100BASE-TX 이더넷의 최대 처리량은 802.1Q 없이 이고, 802.1Q를 사용하면 이다.

채널 활용률은 프로토콜 효율성과 종종 혼동되는 개념이다. 이는 전송되는 데이터의 성격(페이로드 또는 오버헤드)을 무시하고 채널의 사용만 고려한다. 물리 계층에서 링크 채널과 장비는 데이터와 제어 프레임의 차이를 알지 못한다. 채널 활용률은 다음과 같이 계산할 수 있다.

총 시간은 채널을 따라 왕복하는 시간, 호스트에서 처리하는 시간, 데이터 및 승인을 전송하는 시간을 고려한다. 데이터 전송에 소요된 시간은 데이터와 승인을 포함한다.

런트 프레임
런트 프레임은 IEEE 802.3의 최소 길이인 64옥텟보다 짧은 이더넷 프레임이다. 런트 프레임은 일반적으로 충돌로 인해 발생하며, 다른 가능한 원인으로는 오작동하는 네트워크 카드, 버퍼 언더런, 이중화 불일치 또는 소프트웨어 문제 등이 있다.  

내용주

 각주 

분류:이더넷