진짜 개발자
본문 바로가기

CS(Computer Science)/Network

Network - Network 계층 - 인터넷 프로토콜(IP)

728x90

인터넷 프로토콜이란(IP)?

 -  인터넷 프로토콜은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약이며, OSI 네트워크 

     계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 줄여서 아이피라고도 한다(출처 - Wiki)



특성

 1. 인터넷 프로토콜은 다음과 같은 특성을 가진다 최선형(Best Effort) 말 그대로 어떠한것도 보장하지는 않고 데이터 전송에

   최선을 다하기만 한다는 것이다 즉, 비신뢰성이며, 비연결형이다.


 2. 비신뢰성의 경우 에러제어와 흐름제어를 하지 않는다 즉 에러를 발견하면 패킷을 버리기만하며 패킷이 잘못되었으니 다시 보내어달라는 등       의 패킷 복구작업을 취하지 않는다, 또한 송신측의 속도가 빠르고 수신측의 처리속도가 느려 데이터를 수신하지 못하는 경우 흐름제어를     통해 송신속도를 조절해주는 작업을 하지 않는다.


 3. 옵션에 따라 헤더의 길이가 가변적으로 변한다 (옵션이 없는 경우 기본 20byte)




단편화?  

 - 인터넷은 여러 네트워크들이 서로 연결되어있으며 한 네트워크에서 통과시킬 수 있는 최대 Byte가 정해져 있다 때문에 전달할 수 있는 최대

   Byte량인 MTU(Maximum Transfer Unit)에 따라 IP 데이터그램을 잘라야하는데 이런 네트워크 전송가능량에 맞추어 데이터그램을 자르는

   행위를 단편화라고 한다

 *Ethernet의 MTU는 1500byte




IP 데이터그램 구조

- Header 와 Data 로 구성

 필드

설명 

 Header

 Fragmentation 정보, 데이터그램 크기 , 헤더크기, IP버전 정보 

 Data

트랜스포트 계층에서 만들어진 Segment 



1. Version 

- IP프로토콜 버전

- 4 또는 6



2. Header Length 

- 헤더의 길이를 나타내는 필드로 옵션에 따라 길이가 가변적으로 변경될 수 있는 특성 때문에 어디까지가 헤더인지를 

  나타내기 위해 필요하다.

- 기본 4byte 단위로 표시되며 옵션이 없다면 기본 5로 되어있음



3. TOS 

- 라우터에게 QOS 정보를 제공하기 위해 사용 

- 3Bit : 우선권 필드 , 4Bit : TOS필드 , 1Bit : 사용안함



4. Total Length 

- 단편화된 IP 데이터그램의 전체길이로 Byte 단위로 표시



5. Identification 

- 호스트가 전송한 데이터그램을 유일하게 식별한다.



6. Flag  

- 단편화(Fragmentation)에 대한 정보, 

- 3bit를 사용한다 맨앞의 비트는 사용하지 않는다

- 2번째 bit는 do not fragment bit로 이 bit가 세트되어 있다면 단편화가 이루어지지 않는다

- 3번째 bit는 more fragment bit로 뒤에 더 단편이 있다 라는 것을 알려주는 bit이다.



7. Fragment Offset 

- 수신지에서 쪼개진 데이터그램을 하나의 데이터그램으로 합칠때 

  전체의 데이터그램에서 각각의 데이터그램의 상대적 위치를 표시



8. TTL 

- 데이터그램이 지날 수 있는 라우터의 수에 대한 생존시간

- TTL이 없다면 경로상의 문제로 목적지에 전달되지 못하고 네트워크상에 떠돌아 다니는 패킷들이 생겨나는 경우 이 패킷들이 

  사라지지 않고 네트워크 상에 끊임없이 돌아다니며 트래픽을 야기할 것이다.



9. Protocol

- IP 데이터그램의 Data 구간에 입력된 상위계층의 프로토콜표시



10. Header Checksum

- 헤더의 손상여부 파악

- 송신지 에서는 전체 헤더를 4비트로 나누어 모두 더한뒤 이를 1의 보수를 취해 checksum에 담아 송신하며 수신지에서는 이 checksum 을 포함한 전체 비트를 더하여 결과가 0일 경우 오류가 없다고 판단한다

- checksum 자세히 : https://galid1.tistory.com/310



11. Destination IP Address

- 목적지 IP 주소



12. Source IP Address

- 발신지 IP 주소