인터넷 프로토콜(네트워크) 패킷 구조
- 크기 : 바이트 (실제값 설명)
* Ethernet header : 14
- 목적지 MAC 주소 : 6
- 출발지 MAC 주소 : 6
- 타입 : 2 (0x0800=이더넷)
- 데이터 : 46~1500 (IP Header + TCP 헤더 + TCP 데이터 )
- Checksum(CRC) : 4
//===========================================================
* IP Header
- 버전 : 4bits (4 = IPv4, 12=IPv6)
- 헤더 길이, IHL(Internet Header Length) : 4bits
- 4바이트 단위, 5 = (5 x 4 = 20bytes )
- Type of Service(TOS) : 1 (0, 전송우선순위 등의 정보)
- 전체 길이 : 2 ('이더넷 헤더'를 제외한 전체 패킷의 길이, 최대길이=2^16=65536)
- ID : 2 ( 패킷 ID, 단편화시 활용)
- Flags : 2 (단편화관련 정보)
- 예비: 1bit ( 항상 0 )
- DF : 1bit ( 0 = 단편화되었음, 1 = 단편화되지 않았음 )
- MF : 1bit ( 0 = 마지막 단편화 데이타, 1 = 단편화 데이타 더 있음 )
- Fragment offset : 13bits ( 원래 데이타에서의 offset )
- TTL(Time to Live) : 1 (차후 경유할수 있는 라우터 수의 한계)
- Protocol : 1 (6=TCP, 0x11=UDP, 0x01=ICMP)
http://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
- Checksum : 2 (헤더의 에러 체크용)
- 출발지 IP 주소 : 4
- 목적지 IP 주소 : 4
- 옵션 : 0 ~40
* TCP Header
- 출발지 포트 번호 : 2
- 도착지 포트 번호 : 2
- Sequence number(순번) : 4 (전송된 순서)
- ACK (Acknowledge Number) : 4 (다음 수신 예상 순번)
- 데이터 위치,(헤더 길이(HLEN)) : 4bits (TCP 실제 데이터 위치 계산에 쓰임)
- 4바이트 단위, 5 = (5 x 4 = 20bytes )
- 예비 : 4bits ( 항상 0)
- 예비 : 3bits
- NS (1 bit) – ECN-nonce concealment protection
- Code bits : 1 (8 bits)
- CWR (Congestion Window Reduced)
- ECE (ECN-Echo) :
- URG( Urgent ) : 긴급 메시지를 전송
- ACK( Acknowledgement ) : 수신 양호 표시
- PSH( Requests PUSH ) : 버퍼링된 자료 푸쉬용
- RST( Reset connection ) : 호스트는 즉시 연결을 끊음
- SYN( Sync sequence numbers ) : sequence 번호 동기화
- FIN( sender finished ) : 테스트를 거쳐서 연결을 끊음
- Window Size: 2 (TCP 흐름제어를 위해 상대편에게 자신의 버퍼 크기를 지속적으로 통보)
- Checksum : 2
- Urgent pointer : 2 (URG 필드에 의한, 긴급 데이터가 시작되는 위치 정보)
- Option : 0~40
- 실제 데이터
//참고
IP Header : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/TCP_IP/IP_Header
TCP Header : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/TCP_IP/TCP_Header#s-2.2
http://www.zytrax.com/tech/protocols/tcp.html
'Code > Desktop' 카테고리의 다른 글
VirtualAlloc, VirtualProtect 사용법 (0) | 2014.06.29 |
---|---|
cURL 사용법 (0) | 2014.06.21 |
Cpp Sound Library(C++) (0) | 2014.06.05 |
CodeProject - 사운드 관련 자료 정리 (0) | 2014.06.05 |
시스템 대기모드(절전 모드, 스크린세이버) 들어가는 것 방지 (0) | 2014.05.16 |