[네트워크] 인터넷 프로토콜 IP

ljkgb·2021년 5월 3일
0

Network

목록 보기
6/12
post-thumbnail

네트워크

1. 인터넷 프로토콜(Internet Protocol) = IP

  • 비신뢰성(Unreliable), 비연결형(Connectionless) 데이터그램 프로토콜
    • best-effort 전달 서비스를 제공(최선을 다해서 패킷을 보내보겠지만 못 갈 수도 있다! 반드시 가는건 아님! = 믿을 수 없음!)
    • 에러제어나 흐름제어가 없음(에러 검출과 회복시키는 에러제어 기능과 송신자가 보낸 데이터를 알맞게 보낼 수 있도록 제어하는 흐름제어 기능이 없다)
    • 에러 검출만 하고 만일 발견되면 폐기(그렇기 때문에 신뢰가 중요한 전송에서는 TCP를 함께 사용해야 함 => TCP/IP 이렇게 짝꿍으로 있어야 신뢰성 있는 전송 가능!)
  • 신뢰성이 중요한 전송에서는 TCP를 함께 사용해야함
  • IP에서 패킷을 데이터그램이라고도 함

    2. IP 패킷의 형태

    * 출처: 쉽게배우는 네트워크 강의(한국직업방송)

그림에서 가로행을 보면 한 행이 32Bits = 4Byte로 맨위에서 Option 전까지 5줄(20Byte)은 기본으로 들어가고 그 외의 총 40Byte의 Option이 올 수 있다. 즉, 헤더의 크기는 20에서 60Bytes로 가변적으로 올 수 있다.

하나하나 뜯어서 보자면,
- VER(Version)
IP프로토콜의 버전을 나타내는 것으로 4혹은 6이 될 수 있음

- HLEN(Header Length)
herder의 길이를 나타내는 것으로 해더의 길이는 가변적이기 때문에 어디까지가 헤더인지를 알려줌(한 단위가 4Byte 이기 때문에 옵션이 없다면 들어가는 값은 5가 될 것임)

- Service
IP패킷이 가져야하는 서비스의 형태를 의미하는 것으로 서비스의 형태는 응용서비스 별로 주요하게 다루어야할 특성을 말한다.(지연시간, 신뢰성, 처리량 등)

- Total length
IP패킷의 전체길이를 나타냄 -> Byte로 나타냄

전체 길이의 필드 크기가 16비트로 이루어져 있기 때문에 IP패킷의 표시할 수 있는 총 가능한 길이의 최대수는 0 ~ 65535Byte까지 가능하다.

- TTL(Time to live, 생존시간)
IP 데이터그램이 지나가는 최대 홉(Hop)의 수로서, 각 라우터는 데이터 그램이 지나갈 때마다 1씩 감소시켜 그 값이 0이 되면 라우터는 해당 데이터 그램을 폐기하게 된다.(이 필드가 없을 경우 송신지에서 IP패킷이 출발해서 수신지 까지 도착하지 못하고 패킷이 돌아다니게 됨! 그렇게 되면 쓸뎅벗이 대역폭을 잡아먹게 되고 속도가 점점 느려지게 됨으로 이를 해결하기위해 TTL값을 넣어두는 것임)

- Protocol
IP 계층위에서 존재하는 상위 프로토콜이 무엇인지 나타냄
즉, header를 잘 파악해서 IP가 데이터를 누군가에게 줘야하는데 누구한테 줄지를 명시해놓은 것임! ICMP,IGMP,SCTP,TCP,UDP,OSPF와 같이 다양한 프로토콜이 있을 때 어디로 보낼지 명시해 놓은 것

- Checksum(체크섬)
IP 패킷 헤더에 대한 오류 검사를 위해서 사용됨(데이터에 대해서 Checksum하지 않고 header에 대해서만 Checksum하게 됨 -> 사용자 데이터가 깨졌는지 안깨졌는지에 상관없이 헤더에 에러났는지 확인해서 에러나면 폐기시킴)

  • 체크하는 방법
    처음에 Checksum값을 0으로 해놓고 전체 헤더를 16비트 단위로 쭉 나열을 시켜서 덧셈을 한다.(1의 보수 연산과 2의 보수 연산이 있는 2진수 덧셈에서 여기서는 1의 보수 연산을 수행한다) 그리고 그 결과 값을 보수로 만들어서 체크섬 필드에 저장하게 된다.
    => 쉽게 설명하자면! 16비트로 쭉 나열한다음에 더해서 10이 나왔다면 보수로 취하면 -10이 됨 = 체크섬 필드를 포함해서 더했을 때 0이 나오면 에러가 없는 것으로 보겠다

- 송신자 주소와 목적지 주소
송신자와 수신자의 IP주소

3. 단편화와 옵션

1) 단편화

인터넷은 여러 네트워크가 서로 연결되어 있는 형태로 네트워크가 통과 시킬 수 있는 IP 패킷의 최대 바이트 양이 정해져있고 수용할 수 있는 프레임의 크기와 형태는 네트워크에 따라서 다르다. 그래서 IP 패킷을 네트워크가 수용할 수 있는 크기로 분할시키는 것을 단편화(Fragmentation)이라고 한다.

MTU(Maximum transfer unit): 어떤 네트워크에서 보낼 수 있는 데이터의 최대 크기

2) 옵션

아래와 같은 옵션은 최대 40바이트 까지 가능하다.

(1) Single-byte(옵션이라기보단 옵션을 처리하기 위한 부분)

  • No operation
  • End of option

(2) Multiple-byte(실제 옵션)

  • Record route: IP 패킷이 가면서 경로를 기록하는 것
  • Strict source route: 라우터 어디어디를 거쳐가라 라고 하는 부분을 정확하게 지정 하는 것
  • Loose source route: 다른 곳 거쳐도 되지만 어디어디는 꼭 거쳐 가라.
  • Timestamp: 시간찍기~

* 내용출처: 쉽게배우는 네트워크 강의(한국직업방송)

profile
🐹

0개의 댓글