개발은 재밌어야 한다
article thumbnail
Published 2021. 7. 23. 22:17
IP(인터넷 프로토콜)이란? Network
반응형

인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보의 규약(프로토콜[약속과 같은 것])이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당합니다.

 

예시를 들어서 설명해보겠습니다.

한국에 사는 홍길동이 미국에 사는 Merry에게 우편을 보낸다고 가정해보겠습니다.

보통 편지에는 보내는 사람의 이름,주소과 받는사람의 이름,주소 정도의 출발지에대한 정보와 목적지에 대한 정보가 담겨있고 편지안에는 편지에 대한 내용물에 대한 내용물이 있을 수 있습니다.

인터넷 프로토콜의 관점에서 보면 보내는사람의 주소는 출발지의 IP, 받는사람의 주소는 목적지의 IP, 그리고 편지안의 내용은 전송하고자하는 전송데이터로 볼 수 있습니다.

 

인터넷 프로토콜(IP)의 역할

  • 지정한 IP 주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

 

이러한 전송하고자하는 정보 데이터의 형식을 패킷이라는 하나의 블록 단위로 이루어서 출발지IP에서 목적지 IP까지 패킷을 통해서 전달하고자하는 데이터를 전달합니다.

물론 IP패킷은 우편의 내용처럼 간단하지 않고 정해진 구성에 따라서 특정한 데이터의 길이를 가지고 있는 복잡한 데이터의 구성으로 이루어져 있습니다.

- 버전

- 헤더길이

- 서비스타입

- 식별자

- 플래그

- 단편화 오프셋

- Time-To-Live(TTL)

- 프로토콜

- 헤더 체크섬

- 송신자 IP주소

- 수신자 IP주소

 

이러한 구성으로 정해져있는 IP헤더 필드에 패킷을 목적지까지 전송하기 위해 IP계층에서 필요한 값들이 담겨져 있습니다.

 

이런 IP 프로토콜의 한계점도 있습니다.

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.

보내고자하는 대상 서버가 패킷을 받을 수 있는 상태인지 없는 상태인지를 보내는 입장에서는 알 수가 없는 입장입니다. 그래도 보내는 서버에서는 계속해서 패킷을 보냅니다.

(마치 이사가 친구에게 편지를 계속 써도 편지는 계속해서 보내는 것처럼말이죠)

 

  • 비신뢰성
    • 중간에 패킷이 사라져도 IP 프로토콜에서 전송하는 데이터가 정확하게 갔는지 확인하지 않는다. (패킷 전달 여부에 대해서 보증하지 않는다). 

      패킷이 중간에 소실이 되어버려도 어쩔수 없다는 한계가 있습니다. 마치 택배를 보냈는데 택배가 물류센터에서 사라져버린것처럼 말입니다.
    •  패킷을 보낸 순서와 받는 순서가 다를 수 있습니다.

그럴일은 없겠지만 배송을 하다가 편지안의 내용물이 거꾸로 뒤집어진다던가하는 그런문제가 IP프로토콜에서는 여러개의 패킷이 전달되지만 순서를 보장해주지 않기 때문에 전달받은 데이터가 Hello World! -> World! Hello와 같이 순서가 맞지 않는 문제가 발생 할 수 있습니다.

 

  •  프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러개일 경우 구분이 어렵다. (IP 주소는 해당 기기의 고유한 주소인데 해당 주소에서 여러개의 애플리케이션에 대한 구분이 어려움)

 

그래서 이러한 IP 프로토콜의 한계를 극복한 프로토콜이 TCP 프로토콜입니다. 

 

TCP에 대한 내용은 다음 포스팅에서 다루겠습니다.

 

 

 

해당 포스팅은 김영한님의 HTTP강의를 토대로 만들어진 포스팅입니다.

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스

www.inflearn.com

 

반응형

'Network' 카테고리의 다른 글

버추얼박스(VirtualBox) 설치 및 구동 (CentOS 8 버전)  (0) 2022.01.16
Port란?  (0) 2021.11.30
TCP, UDP 개념  (0) 2021.08.03
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!