1. 헤더 패킷의 ASCII를 10진수로변환해주기 위해 파이썬 모듈 struct를 이용. 

- struct (https://ko.wikipedia.org/wiki/Struct


 - 각 타입별 포멧 정보


2. 파이썬에서 확인

- byte = b'V\xce\x97W\x00\r5\xebhello'

- struct.unpack('!HHHH', byte[:8])

  (22222, 38743, 13, 13803)

- struct.pack('!HHHH', 22222, 38743, 13, 13803 )

  b'V\xce\x97W\x00\r5\xeb'


struct를 통해서 2바이트씩 숫자를 확인할 수 있다.

! 바이트 오더

- 0x12 34 56 78

1) little endian -> 0x78 56 34 12 (순서가 바뀜)

2) big endian -> 0x12 34 56 78 (그대로)


3. Layer 3: 네트워크 계층 (Network Layer)

https://en.wikipedia.org/wiki/Network_layer

- 대표적인 프로토콜: IP, ICMP, 라우팅 프로토콜(RIP, OSPF, ...), IPSEC

- 주소 체계: IP Address

- PDU( Protocol Data Unit/프로토콜 데이터 단위): Packet

- 서로 다른 네트워크간의 통신 (경로 설정)




4. IPv4

- 네트워크상에서 호스트를 식별할 수 있는 번호 부여

- 4바이트의 숫자로 표현: 0 ~ 42억개 정도

- ip 관리 국제 기관 IANA: 주소 쳬계, 배포, 관리

- 4자리 숫자를 '.'으로 구분하여 표기

! 사용할 수 없는 번호

- 0.0.0.0 -> 네트워크의 대표 아이피

- 255.255.255.255 -> 브로드캐스팅 아이피

- 둘 다 장비에 설정할 수 없음.


A class

- 첫 번째 1자리 숫자를 네트워크 아이디로 사용

- 나머지 3자리 숫자를 호스트의 아이디로 사용

- 첫 번째 비트가 0으로 공통 비트를 갖도록 설정

- 0 000 0000 ~ 0 111 1111: 0 ~ 127

- 126개의 네트워크를 표현

- 호스트는 나머지 3자리를 가지고 표현

- 네트워크별 호스트의 아이디 표현 범위.

0000 0000.0000 0000.0000 0000 ~ 1111 1111.1111 1111.1111 1111

-> 0.0.0 ~ 255.255.255 : 16,581,373개의 호스트를 표현


! 사용할 수 없는 번호

- 네트워크 번호로 0번을 사용할 수 없다.

- 127번은 특별한 용도로 지정: 루프백 주소(가상 인터페이스 주소)

- 호스트의 번호도 0번을 사용할 수 없다. 1.0.0.0

- 호스트의 번호도 255번으로 사용할 수 없다. 1.255.255.255


! 사설 네트워크: private network

- ip고갈문제를 해결하기 위해 등장.

- 공인망 (public network)과는 별도로 분리된 네트워크

- a class의 사설 네트워크 아이디는 10번


! NAT (Network Address Translation)

- 네트워크 주소 변환

- 라우터에서 지원하는 기능

! 넷마스크: 네트워크 아이디를 분리

- 10.10.10.2/255.0.0.0

-> 0000 1010. 0000 1010. 0000 1010. 0000 0010

    1111 1111. 0000 0000. 0000 0000. 0000 0000 and

-> 0000 1010. 0000 0000. 0000 0000. 0000 0000 -> 10.0.0.0


- 10.10.10.2/255.128.0.0


B class

C class

--------------------------------------------

D class

- 공통비트: 1110

- 장비나 인터페이스에서 설정할 수 없다.

- 멀티캐스팅 용도로 사용

- 1110 0000.0000 0000.0000 0000.0000 0000~

        1110 1111.1111 1111.1111 1111.1111 1111

- 224.0.0.0 ~ 239.255.255.255 (멀티캐스팅 구간)

E class

- 공통비트: 1111

- 그냥 안쓴다, 예약된 번호

+ Recent posts