인터넷 프로토콜(네트워크) 패킷 구조


    - 크기 : 바이트 (실제값 설명)
* 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


반응형
Posted by codens