# IP header와 Ethernet header 패킷 분석
IP header
1. IP(Internet Protocol) header
- 20byte 고정 크기
- 옵셔널 필드가 존재하기 때문에 사실은 가변 크기
- 최근에는 거의 사용되지 않기 때문에 20byte로 고정되어 있다.
- E\x00\x00!\x00\x00@\x00@\x11\xa2i\xc0\xa8\x0b\xdf\xc0\xa8\x0b3
- 1: E
- 2: \x00
- 3: \x00 !
- 4,5: \x00\x00 @ \x00
- 6: @
- 7: \x11
- 8: \xa2 i
- 9: \xc0 \xa8 \x0b \xdf
- 10: \xc0 \xa8 \x0b 3
1) ip 버전과 헤더의 길이 (1byte) - 첫번째 필드
- E -> 0x45 -> 상위4비트(버전) / 하위4비트(길이)
- 0x4 : 0100 -> 4bit -> 4는 ip버전(ipv4)
- 5 : 0101 -> 좌로 2번 이동 -> 10100 -> 20bit -> 20은 헤더의 길이
2) service(1byte) - 두번째 필드
- 0x00(default)
- 서비스별로 통신을 제어하기 위한 용도
- 지금은 사용되지 않는다.
3) Total Length(2byte) - 세번째 필드
- IP Packet의 전체 크기 (ip헤더 -> E부터 보낼 데이터까지 길이)
- ip header(20) + udpheader(13)
- \x00 ! -> 0x00 0x21 -> 33byte
4) identfication(2byte) - 네번쨰 필드
5) flag & fragment offset(2byte) - 다섯번째 필드
- 4,5필드는 ip fragment(분할) 와 관련된 헤더필드 (ip 패킷을 여러개로 분할 할 수 있다)
6) TTL(Time To Live) (1byte) - 여섯번째 필드
- packet이 지나갈 수 있는 라우터(홉/hop)의 최대 갯수
- @ -> 0x40 -> 64
- 최대 64개의 라우터를 지나갈 수 있다.
- 리눅스64, 윈도우128, 유닉스253
- 30개정도면 전세계 통신가능
7) 프로토콜의 타입(1byte) - 일곱번째 필드
- ip packet의 올수 있는 타입
- \x11 -> 17
- icmp:1, tcp:6, udp:17
8) 체크섬(2byte) - 여덜번째 필드
9) 출발지 아이피(4byte) - 아홉번째 필드
10) 도착지 아이피(4byte) - 열번째 필드
#Layer 2 데이터 링크 계층 (Data-Link Layer)
- 대표적인 프로토콜: Ethernet, ARP, VPN(터널링)
- 주소 체계: MAC(Media Access Control) Address
- PDU (프로토콜 데이터 단위) : Frame
- 물리적으로 같은 네트워크(라우팅이 필요하지 않음)
- 물리적인 이상이 없다면 반드시 통신이 되어야 한다.
MAC Address의 주소 체계
- 16진수 6자리 숫자로 구성
- 각 자리를 ':' 혹은 '-' 로 구별
- 앞의 3자리 숫자를 벤터 아이디로 사용(네트워크 회사 아이디)
2. Ethernet header
- \x00 \x0c ) \xcc \xcc \x01 \x00 \x0c ) \xcc \xcc \x02 \x08 \x00
- 14바이트 고정크기
1) 도착지의 물리 주소(6byte)
2) 출발지의 물리 주소(6byte)
3) 이더넷의 타입(2byte)
- 대표적인 타입
IPv4: 0x0800
IPv6: 0x86DD
ARP : 0x0806
'Hacking > Network penetration' 카테고리의 다른 글
Network hacking - struct 모듈, Layer3(IPv4) (0) | 2017.11.05 |
---|---|
Network hacking - Socket Programming (0) | 2017.10.29 |
Network hacking - OSI 7 계층과 socket server, client (0) | 2017.10.23 |
Network hacking - 실습환경 세팅하기(3) (0) | 2017.10.19 |
Network hacking - 실습환경 세팅하기(2) (0) | 2017.10.18 |