일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 엑스퍼트생일축하해
- object
- lua install
- lua setup
- file write
- #부동산전자거래 #부동산전자계약 #부동산계약 #부동산전자계약방법 #부동산전자계약하는법 #부동산계약방법 #부동산중개수수료 #부동산중개수수료아끼기 #부동산복비아끼기
- QT TCP
- 국토교통부
- 등록임대주택
- TCP/IP
- 강남역맛집 #육전국밥강남역점 #강남국밥맛집 #서울국밥추천 #강남육전맛집 #강남혼밥 #강남역점심 #서울국밥집 #강남수육국밥 #육전정식
- 엑스퍼트2주년
- 육전국밥 #강남역맛집 #24시간맛집 #소고기국밥 #육전 #모둠전 #해물파전 #강남한식 #혼밥맛집 #강남역국밥
- Lua
- C API
- #신혼부부 #결혼준비 #신혼부부희망타운신혼부부특별공급
- FILE TRANSFER
- lua interpreter
- 편편집 #강남역맛집 #강남샤브샤브 #강남무한리필 #편백찜맛집 #월남쌈맛집 #샤브샤브맛집 #가성비맛집 #강남회식 #강남데이트
- 티몬삼겹살데이
- 전동포 #송파구전기자전거 #전동킥보드수리 #모토벨로대리점 #전기자전거판매 #전동스쿠터수리 #배터리수리 #전기자전거수리 #송파구전동킥보드 #전동이동수단
- 중소규모택지
- #서초구맛집 #교대역된장찌개 #옥된장교대점 #서초된장맛집 #교대직장인맛집 #된장찌개전문점 #서울된장정식 #혼밥맛집 #건강한한끼 #교대점심맛집
- 수도권주택공급
- C++ API
- QTcpServer
- 월세
- lua for windows
- 찾다죽는줄
- 순남시래기 #교대맛집 #교대역맛집 #한식맛집 #시래기국 #서울맛집 #가성비맛집 #건강한식단 #셀프반찬 #직장인맛집
- Today
- Total
Value Creator의 IT(프로그래밍 / 전자제품)
#2 Ethernet, IP, TCP/UDP 헤더 소개(Packet Header: Ethernet, IP & TCP/IP) 본문
#2 Ethernet, IP, TCP/UDP 헤더 소개(Packet Header: Ethernet, IP & TCP/IP)
valuecreatort 2019. 6. 13. 17:54아래 그림은 Ethernet 헤더부터 IP 헤더, 그리고 TCP/UDP 헤더를 패킷의 응용을 어떻게 구별하는지를 그 과정을 보이고 있습니다.
1. 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이 나오게 됩니다.
2. 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입니다.
3. 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)이 무엇인지 확인이 가능합니다.
'1. 프로그래밍 > 4) Network' 카테고리의 다른 글
Chapter 1 서버-클라이언트 소스코드 분석 (0) | 2019.10.28 |
---|---|
윤성우의 열혈 TCP/IP 프로그래밍 pdf 사이트 (0) | 2019.09.19 |
#4 리눅스 네트워크 프로그래밍 (0) | 2019.06.18 |
#3 TCP/IP 송수신 과정 (0) | 2019.06.17 |
#1 Ethernet, TCP/IP 프로토콜 총 정리 (0) | 2019.06.13 |