| 리포트 | 기술문서 | 테크-블로그 | 글로벌 블로그 | 원샷 갤러리 | 통신 방송 통계  | 한국 ICT 기업 총람 |

제품 검색

| 네트워크/통신 뉴스 | 기술자료실 | 자유게시판 |  
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
스폰서채널 |

 

  스폰서채널 서비스란?
Ethernet, IP, TCP/UDP 헤더 소개
Packet Header: Ethernet, IP & TCP/IP
December 29, 2011 | By 유창모 (cmyoo@netmanias.com)
코멘트 (15)
35

 

아래 그림은 Ethernet 헤더부터 IP 헤더, 그리고 TCP/UDP 헤더를 통해 패킷의 응용을 어떻게 구별하는지를 그 과정을 보이고 있습니다.

 

 

 

L2: Ethernet Header

Ethernet 헤더는 Destination MAC Address(6B), Source MAC Address(6B) 그리고 Ethernet Type(2B)로 구성이 됩니다.

그리고 위 그림과 같이 Ethernet Type의 값이 1536(0x600) 보다 크면 RFC 894에서 규정한 DIX 2.0 포맷이 되구요(아래 그림 좌측과 같이). 만약 이 보다 작은 값이면 IEEE에서 정의한 SNAP 혹은 SAP 포맷이 됩니다. 현재 유선 Ethernet 망에서 다니는 대부분의 패킷은 이 DIX 2.0 이므로 일단 이 것만 아셔도 될 듯 합니다. 

여기서 이 Ethernet Type 필드는 L3 패킷의 타입을 명시하는 역할을 하는데요. Ethernet Type=0x0800이면 IPv4 패킷, 0x0806이면 ARP 패킷입니다. 그리고 마지막으로 0x8100이면 VLAN Tag(아래 그림의 우측)가 Ethernet 헤더와 L3 패킷 사이에 붙는다는 의미입니다. 이 VLAN Tag에는 VLAN ID와 QoS 정보를 담고 있는 802.1p(CoS라고도 부름)가 포함되어 있습니다. 그리고 VLAN Tag 이후에 L3 패킷 타입을 명시하기 위해 다시 Ethernet Type이 나오게 됩니다.

 

 

 

L3: IP Header

Ethernet Type=0x0800이면 IPv4(IP version 4) 패킷이죠. 현재 전 지구상에 다니는 대부분의 패킷 타입니다. IPv4 헤더는 통상적으로 20B(바이트)이구요. 여기에 Source IP Address(4B)나 Destination IP Address(4B)가 들어 있습니다. 이 중에 Protocol ID(2B)라는 필드가 있는데요. 이 필드가 L4 패킷 타입을 명시하는 역할을 합니다. 그래서 맨 위 그림과 같이 Protocol ID=1이면 ICMP(Ping이 ICMP 패킷의 일종이죠), 2이면 Multicast에서 사용되는 IGMP(여러분들 집에 IPTV에서 채널 바꾸면 셋톱박스에서 망으로 IGMPv2를 보냅니다), 6이면 TCP, 17이면 UDP입니다.

 

 

 

 

L4: TCP/UDP Header

이제 마지막으로 TCP/UDP 헤더입니다. UDP 헤더는 8B(바이트)이고 TCP 헤더는 20B이죠. 이 두 헤더 모두 첫 2B가 Source Port Number(SP)이고, 다음 2B가 Destination Port Number(DP)입니다. 여기서 SP에는 패킷 송신 단말에서 고른 random한 값이 들어가게 되구요(이를 Ephemeral Port라고 부릅니다.), DP에 바로 "응용 트래픽"의 타입이 들어가게 됩니다. HTTP는 TCP를 사용하는 응용이므로 TCP 헤더의 DP=80이고, VoIP에서 사용되는 SIP는 UDP 헤더의 DP=5060이구요.

 

 

이와 같은 방법으로 Ethernet 헤더의 "Ethernet Type", IP 헤더의 "Protocol ID", TCP/UDP 헤더의 "Destination Port Number"를 통해 최종 응용(Application)이 무엇인지 확인이 가능합니다.

 

김상현 2012-06-25 08:57:34
좋은 정보 감사합니다~
이지연 2012-07-09 09:04:04
잘 보고 가요 :D
홍대흠 2014-12-19 18:23:54

좋은 자료 정말 고맙습니다.

Edy 2015-07-31 09:58:09

2~3 번 읽어보고 다른 자료보고 또 읽어보고 하니깐 점점 이해가 되네요

성재우 2015-09-08 18:06:10

감사합니다.

ischoi 2016-04-18 20:45:19

좋은 정보 & 자료 고맙습니다.

kjw 2016-04-22 09:21:00

패킷 전체구조를 볼수있는곳 찾기가 쉽지않내요. 좋은 정보 정말감사합니다.

질문사항이 하나있는데요. Protocol ID에 따라서 ICMP,TCP,UDP 등등이 정해지는데요 그럼 Protocol ID가 1인경우

TCP Header자리에 ICMP가 대신 오게되는것인가요?

계층 구조가 TCP, UDP는 전송계층이고 ICMPv4는 인터넷 계층이라고 알고있는데 어떤식으로 캡슐화될지 궁금합니다.

권순호 2016-04-22 11:41:02

IP header에 protocol ID = 1인 경우, IP header 다음에 ICMP가 위치하는 것이 맞습니다. 그걸로 끝이지 ICMP 다음에 TCP나 UDP가 또 위치하는건 아닙니다.

kjw 2016-04-22 14:55:39

답변 감사합니다.  "Netmanias 기술문서: Network 엔지니어 이론 교육 자료집"문서를 지금봤내요. 이 문서부터 보고 질문을 드렸어야하는데 송구스럽습니다. ㅎ


추가 질문이 있습니다.

답변에 적어주신것 처럼 ICMP는 Protocol ID = 1인경우 IP Header다음에 위치합니다. 그런데 이 위치가 전송계층의 TCP, UDP와 동일한 위치로 생각이되는데요. ICMP는 인터넷 계층으로 알고있는데 이는 왜그런것인가요? 


(ICMPv4와 IPv4가 같은 계층에 속해 있으므로 ICMPv4역시 Ethernet Type에서 변동해야 하는게 아닐까 생각합니다. ICMP의 사용용도를 생각하면 이해해 가지만 계층은 네트워크 속하는게 맞는것인지 의문이 들어서요 )

권순호 2016-04-22 15:27:55

ICMP를 인터넷 계층이라고 하는 이유는, ICMP 단어가 의미하듯이 "Internet Control Message Protocol" 즉, 인터넷 계층 제어 메시지 프로토콜이기 때문입니다.

일반적으로 IP 헤더(layer 3) 다음에 위치하는 패킷은 layer 4이지만, ICMP, IGMP(IP 계층의 multicast membership을 제어하는 프로토콜)는 예외입니다.

kjw 2016-04-22 15:52:33

답변감사합니다!

서준수 2016-05-13 03:28:20

감사합니다. 각계층별 헤더 패킷을 직접 살펴보며 학습하였는데 네트워크에 대한 이해가 한층 더 높아진것 같습니다.

그런데 L2 Ethernet 헤더에서 Type값 뒤에(?) Padding값이 붙는 경우가 종종 있었습니다.

그래서 Wireshark에서 eth.padding으로 필터링을 걸어보니 제법 가변적인 크기입니다.

헤더에 명시되어 있지 않는데.. 이 녀석의 크기와 용도가 궁금합니다.

송주환 2016-05-26 01:01:52

Data 뒤에 나오는 Padding 말씀이신 듯 한데.. 

이것은 CSMA/CD 알고리즘의 Slot time을 보장하기 위한 최소 길이가 64Byte이기 때문입니다.

 

때문에 Ethernet 프레임의 최소 길이는 64Byte이고, 이 길이에 미달하는 경우 64Byte에 맞게 값을 채워주게 됩니다.

기가비트 이더넷의 경우는 최소 길이가 512Byte이며, CRC 뒤에 붙게 됩니다. 이를 Carrirer Extension이라 부릅니다.

서준수 2016-06-08 12:56:32

소중한 정보 감사드립니다. CSMA/CD 알고리즘에 대해 조금더 깊이 있게 다루어볼 필요가 있어 보이네요.

말씀해주신 부분들에 대해 유염하여 학습하도록 하겠습니다. 친절한 답변 감사드려요!

vin_ 2018-11-12 13:49:32

IPv4 header 에 Protocol ID (2B) 라고 적으셧는데 1B아닌가요...?

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
Related Contents
12/30/2011
Netmanias Blog
12/28/2011
Netmanias Blog
02/10/2010
Netmanias Technical Documents
11/12/2004
Netmanias Technical Documents
08/11/2003
Netmanias Technical Documents
View All (973)
5G (68) AI (5) ALTO (1) AR (2) ARP (6) AT&T (1) Akamai (5) Authentication (5) BT (1) Backhaul (2) Big Data (2) Bridging (5) C-RAN/Fronthaul (17) CDN (20) CIoT (2) CPRI (6) Carrier Aggregation (5) Charging (2) China Mobile (2) Cisco (6) CoMP (3) Comcast (1) DHCP (6) DNS (15) Data Center (15) EDGE (11) EMM (1) EPS Bearer (7) Ethernet (3) FTTH (8) GSLB (5) Gigabit Internet (17) Google (17) Google Global Cache (8) Google TV (1) HLS (5) HTTP (5) HTTP Adaptive Streaming (7) HTTP Progressive Download (2) Handover (5) Huawei (1) IGMP (3) IP (6) IP Allocation (8) IP Routing (20) IPSec (4) IPTV (25) IoST (2) IoT (45) KT (45) Korea (8) Korea ICT Vendor (1) L3 Switch (5) LG U+ (24) LTE (99) LTE-A (10) LTE-A Pro (1) LTE-M (1) LTE-U (3) LoRa (5) MEC (11) MPLS (3) MWC 2013 (1) MWC 2015 (3) MWC 2016 (2) MWC 2017 (1) Mobile IPTV (1) Multi-Screen (1) Multicast (2) NAT (9) NB-IoT (6) NTT Docomo (1) Netflix (5) Network Protocol (49) Network Slicing (3) OSPF (3) OTT (20) Operator CDN (1) P2P (3) PS-LTE (3) Pooq (2) QoS (5) RCS (1) RRH (1) Request Routing (3) SD-WAN (8) SDN/NFV (34) SK Broadband (1) SK Telecom (38) Samsung (2) Security (8) Self-Driving (3) Shortest Path Tree (2) Small Cell (3) Spectrum Sharing (1) TAU (2) Transparent Caching (9) UHD (7) VLAN (2) VPN (3) VR (3) Video Streaming (22) VoLTE (1) VoWiFi (1) WAN Optimization (1) Wi-Fi (30) WiBro(WiMAX) (2) YouTube (16) eICIC (1) eMBMS (1) ePDG (6) u+ tv G (4) 로컬 5G (1)

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2019년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호