Post date: Nov 30, 2016 3:20:10 AM
LTE 중계기 개발 중 중요 이슈로 떠오른 Ethernet frame 구조에 대해 설명하고자 한다..
물론 일부 내용들은 [펌 : http://blog.daum.net/woosun79/2 ] 들이다...
내용을 보면 Ethernet V2 Frame 이라고 되어 있다. 이 프로토콜은 오늘날 대부분( 90% 이상) 사용하고 있는 프로토콜이다.
물론 IEEE 802.3 프로토콜도 있긴하지만 포맷은 거의 비슷하며 혼용가능한 프로토콜이다.. 이부분에 대해서는 다음 섹션에서 설명하기로 하겠다.
이부분에서 중요한것은( 개인적으로 ) Data 필드의 길이가 최소 46byte 라는 것이다.
실제 팻킷 데이터
6c f0 49 5e 57 b7 02 03
02 a2 00 8e 08 00 45 00
00 2c 00 00 40 00 40 11
b8 11 c0 a8 00 7e c0 a8
00 e1 20 00 20 00 00 18
3c d6 00 00 00 00 01 22
00 0a 00 00 00 0b ff 00
00 00 00 00
--Address INFO Total : 14 byte--
Dest Address( 6byte) : 6c f0 49 5e 57 b7
Source Address( 6byte) : 02 03 02 a2 00 8e
Type( 2byte) : 08 00
--IP HEAD INFO Total : 20 byte--
Version / Head Length( 1byte): 45
Type Of Service( 1byte) : 00
Total Length( 2byte) : 00 2c ( 44 byte [ IP HEAD SIZE + UDP SIZE ] )
Identification( 2byte) : 00 00
Flag / Fragment Offset( 2byte) : 40 00
Time to live( 1byte) : 40
Protocol( 1byte) : 11( UDP )
Header Checksum( 2byte) : b8 11
Source IP( 4byte) : c0 a8 00 7e
Dest IP( 4byte) : c0 a8 00 e1
--UDP INFO Total : 24 byte--
Source Port( 2byte) : 20 00
Dest Prot( 2byte) : 20 00
UDP Length( 2byte) : 00 18 ( 24 byte , PAD 제외 )
UDP Checksum( 2byte) : 3c d6
UDP Data( 16byte) : 00 00 00 00 01 22 00 0a 00 00 00 0b ff 00 00 00
--Padding INFO --
PAD( 2byte) : 00 00
여기서 IP HEAD SIZE + UDP SIZE가 최소 46byte가 되어야 함으로
Padding에 2byte를 추가한것을 볼 수 있다.
주의할것은 UDP 정보에 UDP Length는 Padding 2byte를 제외한 24byte로 잡혀 있다는것이다.
정리하자면
IP HEAD SIZE 20BYTE 고정, UDP HEAD 8BYTE 고정 일때 UDP 데이터는 최소 18BYTE가 되어야 최소 46BYTE를 만들 수 있으므로 필요할 경우 PADDING BYTE를 추가한다는것이다. 물론 CPU에 따라 다를 수 있지만...