[HTTP] IP 프로토콜

Ceing·2024년 7월 1일
0

HTTP

목록 보기
1/7
post-thumbnail

IP 개요

  • 만약 클라이언트의 컴퓨터와 서버 컴퓨터가 가까이 있으면, 인터넷 없이 하나의 케이블만으로 클라이언트가 요청을 보내면 서버에선 즉각 응답할 수 있음

  • 하지만 현실세계에선 클라이언트와 서버의 컴퓨터가 가까이 있지 않고 멀리 있기 때문에 인터넷이란 중간 매개체를 거쳐서 클라이언트와 서버 간 통신이 이루어짐

  • 즉 클라이언트 - 인터넷 - 서버 형태가 됨 , 인터넷의 구조는 단조롭지 않고 여러 서버 노드들로 구성됨 , 클라이언트가 요청을 보내면 해당 서버 노드들을 거쳐서 최종 서버에 도착할 수 있는 것

  • 수많은 서버 노드들을 거쳐서 최종 서버까지 가기 위해 인터넷에선 규약(프로토콜)을 정해놓았음 그것이 IP(인터넷 프로토콜)임


IP

  • IP 프로토콜 , 인터넷 프로토콜 등 다양하게 불림
  • 클라이언트와 서버 간 복잡한 인터넷 망을 거쳐서 통신하려면 반드시 규약이 있어야하는데 그것이 IP
  • 송수신할 장소(클라이언트 & 서버)에 IP주소 부여해서 데이터 전달
  • 이때 패킷(Packet)이라는 통신 단위로 데이터 송수신
  • 따라서 IP 프로토콜은 패킷 단위로 출발지에서 목적지로 통신할 수 있음


패킷 구성

  • 출발지 IP , 목적지 IP , 전송할 데이터 등 으로 구성



클라이언트 - 서버 간 패킷 전달

  • 위 사진과 같이 패킷에 출발지 IP주소 , 도착지 IP주소 및 보낼 데이터를 담은 패킷 단위로 서버 및 클라이언트와 주고받음


IP 프로토콜 한계

1. 비연결성 : 수신부에서의 송신부 상태 모름

  • IP에 해당되는 위치에 클라이언트 혹은 서버가 없거나 패킷을 받을 수 없는 상태여도 일단 보냄
  • 비연결성에 의해 송신하는 쪽은 상대방이 패킷을 받을 수 있는 상태인지 아닌지 전혀 모르므로 일단 보내면서 네트워크 손실 , 리소스 낭비가 됨
  • 만약 상대방이 패킷 수신 불능 상태이면 아예 안 보내면서 리소스를 절약할 수 있지만 ,,

2. 비신뢰성 : 송신부에서 수신부에 대한 데이터에 대한 비신뢰성

  • 수신부에선 송신부에서 온 데이터에 대한 신뢰할 수 없음

  • 예를 들어 여러 개의 데이터를 보낼 경우 순서대로 도착하지 않을 수 있음 Hello World를 송신해도 순서 보장이 되지 않으니 World Hello로 도착 가능

  • 또한 데이터가 인터넷을 잘 타고 가다가 중간에 유실될 수도 있음

3. 프로그램 구분의 어려움

  • 한 IP주소의 컴퓨터 내에서 여러가지 작업(게임 , 음악 , 공부) 할 수 있는데 각 프로세스에 대한 구분이 어려움
  • 이에 따라 TCP가 등장

참고

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

profile
이유에 대해 끊임없이 생각하고 고민하는 개발자

0개의 댓글