1. 패킷이란?
패키지(package)와 덩어리를 뜻하는 버킷(bucket)의 합성어로 통신망을 통해 전송하기 쉽도록 자른 데이터의 전송 단위, 즉 한 번에 전송하는 정보의 단위를 뜻한다.
2. 패킷 구조
>Ethernet Header
preamble : 패킷의 동기화 등을 위해 각 프레임의 헤더 맨 앞에 붙이는 영역, 즉 패킷의 시작을 알려주는 패킷
da : destination address, 목적지의 MAC 주소
sa : source address, 송신지의 MAC 주소
type : data에들어있는 type, 상위 계층 프로토콜 종류를 표시 0x600 이상이면 Type(DIX 2.0), 0x600 이하이면 Length(802.3)으로 해석. type의 종류에 따라서 데이터를 몇 비트씩 잘라서 해석할지 결정
-Type: 많은 타임을 가지고 있으며 대표적인 Type은 IP(Internet Protocol)
-Length: 길이 (3~1500byte)를 나타냄
data: 46~1500 byte의 상위 프로토콜 데이터 패킷(ip, tcp or udp, 실제 전송될 데이터) 즉 상위에 있는 레이어에 대한 프로토콜의 정보가 들어 있다.
fcs : 프레임에 있는 에러를 검출하기 위해서 사용 이떄 CRC를 사용
*순환중복검사(CRC): 에러검출 방법 중의 하나로 송신 측에서 데이터로부터 다항식에 의해 추출된 결과를 여분의 오류검사필드(FCS)에 덧붙여 보내면, 수신 측에서는 동일한 방법으로 추출한 결과와의 일치성으로 오류검사를 하는 기술
>IP Header
Version(4 bits):IP 버전을 표시(ex IPv4 or IPv6)
HL(Header Length): IP 패킷에서 헤더가 차지하는 길이
-IP패킷은 "헤더+데이터+옵션"으고 구성되므로 헤더의 길이를 알면 데이터의 시작점을 할 수 있다.
TOS(Type Of Service): 서피브 타입 및 수준을 표시함(패킷이 얼마나 빨리 처리/전달 되어야 하는가에 대한 정보)
111 : 네트워크용 컨트롤용
110 : 인터네트워크 컨트롤용
101 : CRITIC/ECP
100 : 플래쉬 오버라이드용
011 : 플래쉬 용
010 : 즉시 처리용
001 : 우선 처리용
000 : 일반 처리용
Total Length(16bit): 패킷의 전체 길이를 표시
Identification(16bit): 하나의 패킷이 여러 조각으로 분할되었을 경우 각 조각을 구분하기 위하여 부여하는 정보
Flags(3 bits): 패킷 분할에 관한 컨트롤 정보
-Bit 0 : 항성 0으로 예약되어 있음
-Bit 1 : (DF) 0 = 분할가능, 1 = 분할불가
-Bit 2 : (MF) 0 = 마지막 조각, 1 = 이후 조각 더 있음
Fragment Offset(13 bits): 이 조각(Fragment)이 어느 데이터그램(IP패킷)에 소속되는지 표시
TTL(Time to Live) (8 bits): 이 패킷이 인터넷에서 사용될 수 있는 시간을 표시
일반적으로 라우터를 하나 거칠 때마다 1씩 줄어들어 0 이 되면 폐기함
Protocol(8 bits): 상위 계층의 프로토콜을 표시 (ex: tcp/udp 등)
Header Checksum(32 bits): 해더 부분에 대하여 에러 발생시 에러 정정을 위한 체크
Source Address(32 bits): 출발시 IP 주소
Destination Address(32 bits): 목적지 IP 주소
Option(27 bits) : 선택사양, 보안단계, 소스경로, Route recode, timestamp 등
>TCP Header
Source port(16 bits) : 상위 Application에 따른 값이 결정되며 송신지 포트 번호를 나타냄
Destination port(16 bits) : 수신지 포트 번호를 나타냄
Sequence Number(23 bits) : 패킷의 송신 Data의 일변번호를 나타냄
Acknowlegement number(32 bits) : 수신 Data의 일련 번호를 나타냄(수신될 다음번 바이트의 예상 일련번호)
Data offset(4 bits): 패킷내의 데이터 오프셋
-Reserved(6 bits)
-Control(6 bits) : TCP의 연결 및 종료를 제어합니다.
: URG(긴급 포인터)
ACK(승인)
PSH(푸쉬기능)
RST(접속의 리셋)
SYN(동기화 일련번호)
FIN(송신자로부터 더이상의 데이터 없음) 등
Window(16 bits) : 메시지 전송시 흐름제어 합니다.
Checksum(16 bits) : 에러 check를 합니다. TCP 메시지 검사 및 목적지에 제대로 도작했는지 확인합니다.
Urgent Position(16 bits) : TCP 긴급 포인터
Options(24 bits) : TCP 옵션들
: SEG_SEQ : 패킷의 일련번호
SEG_ACK : 패킷의 확인번호
SEG_FLAG : 제어비트
Data
'CS' 카테고리의 다른 글
IAT,EAT 로딩 과정 문서화 (0) | 2020.11.02 |
---|---|
네트워크 보안 2주차 (0) | 2020.09.19 |
네트워크 보안 1주차 (0) | 2020.09.14 |
DDos 공격 대응 가이드 pdf (http 위주) (0) | 2020.02.24 |
wireshark를 이용한 패킷 분석 (0) | 2020.02.17 |