[RE] 802.3 VS ETHERNET...
Reg. Date: June 19, 2002 By 김학용
이와 비슷한 질문들이 계속 반복되고 있군요. 질문하신 것처럼 Ethernet frame과
IEEE 802.3 frame은 frame format이 동일합니다. 단지 차이가 있다면, 프레임의
세번째 필드가 ethernet에서는 type을 나타내고 802.3에서는 data의 length를
나타내는데 사용된다는 것이죠.
문제는 이 둘 사이의 구분인데, 이것은 type 혹은 length field의 값에 의해
결정됩니다. 아시겠지만, ethernet frame에서 data의 최대 길이는 1500 bytes
입니다. 따라서, length 필드에 1500 이상의 값이 있으면 이상하잖아요.
즉, type/length field의 값이 1500 이하이면 length로 사용되어 802.3 포맷이구
1500 이상이면 프로토콜 타입을 나타내는데 사용되며 ethernet 포맷이 됩니다.
근데, 1500은 16진수로 0x05DC이므로 딱 떨어지는 값이 아니라서 실제로는
0x05FF (십진수 1535)까지 length로 사용하고 그 이상의 값에 대해서는
프로토콜을 나타내는데 사용합니다.
예를 들면, ethernet format에서 type field의 값이 0x0800 이면 IP 패킷을
0x0806 이면 ARP 패킷을 0x8100 이면 VLAN을 나타내는데 사용됩니다.
그럼, IEEE 802.3 포맷에서는 프로토콜 타입을 어떻게 정해주는지 궁금해지죠.
그것은 바로 데이터 영역에 실제 데이터와 추가적인 헤더 필드가 들어가게
됩니다. 바로 IEEE SAP (Service Access Point)를 사용하는 것입니다.
이것은 DSAP라는 1 바이트의 필드를 가지게 되는데, 이 필드를 사용해
몇몇 프로토콜을 구분하게 됩니다. 그러나, Ethernet에서 사용되는 프로토콜
타입은 2 바이트 필드에 의해 나타내어지기 때문에 1 바이트로는 부족하게
되고, 또 다른 목적 등으로 인해 IEEE SNAP (SubNetwork Access Protocol)
포맷이 들어가기도 합니다. 이것은 SAP의 DSAP 값이 0xAA 일때 SAP가
SNAP로 사용되게 되는데, 이때는 2 바이트의 PID(protocol ID)가 추가되어
1 바이트의 DSAP 대신 2 바이트로써 Ethernet의 protocol type 필드를 대신하게
됩니다.
너무 말로만 이야기를 해서 복잡하게 생각될지도 모르겠으나, 천천히 생각해
보시면, 그 차이를 분명히 이해할 수 있으리라 생각합니다.
김학용 홈페이지 바로가기: http://hakyongkim.net
그 필드 중에 2 바이트의 Protocol ID라는 필드가 있는데, 이것이
Ethernet format에서의 type field와 동일하게 사용됩니다.
>안녕하세요...
>궁금한것이 생겨서 여러분들의 도움을 받고자 이렇게 질문을 드리게 되었습니다.
>
>저희가 사용하는 NIC card에서 일반적으로(제가 알고 있기로는...)Ethernet 과 802.3 MAC protocol 이 모두 지원되는 것으로 알고있습니다.packet을 받아서 ethernet이냐 802.3냐에 따라서 de-capsulation 하는방식이 다른것으로 알고 있는데요... 그렇다면 nic에서 헤더의 어떤필드를 보고 각각의 프로토콜들을 구분하는지요?
>두 개의 헤더를 살펴보면 차이점은 802.3같은 경우는 주소다음 필드가 length필드로 정해져 있구요(type 필드는 802.2(LLC) 필드내에 정의 되어 있구요...) ethernet같은 경우는 type필드로 정해져 있던데 ...이 필드로 구분을 하나요?
>
>제가 잘못 알고 있는 부분은 지적해 주시고..답변 주시면 감사드리겠습니다.
>
>감사합니다.