HTTP/HTTP강의

[모든 개발자를 위한 HTTP 웹 기본] IP

비뀨_ 2022. 9. 19. 18:35

본 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 내용을 정리한 글입니다.

 

IP(Internet Protocol : 인터넷 규약)

복잡한 인터넷 망에서 한국에서 미국으로 Hello, world!라는 메시지를 보내야 한다.

어떻게 클라이언트 ( 보내는 사람) 과 받는 사람을 구체적으로 콕 집어서 정확히 보낼 수 있을까??

 

바로 IP 주소를 통해서이다.

아래와 같이 클라이언트와 서버는 각자의 고유한 IP주소를 가지고 있어서

'메세지를 보내줘'라고 할 때 누가 받는지를 지정할 수 있다.

IP의 역할

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

그렇다면 패킷(Packet)은 뭘까??

 

https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%ED%8C%A8%ED%82%B7

위키 백과사전을 찾아보면 Packet은 '컴퓨터 네트워크가 전달하는 데이터를 형식화한 블록'이라고 한다.

 

Packet을 택배로 예시를 들자면

우리는 택배를 보낼 때 보내는 사람의 주소, 받는 사람의 주소, 내용물이 무엇인지에 대한 정보들을 적는다.

HTTP에서 Packet은 출발지 IP, 목적지 IP, 기타 정보들을 가지고 있고 그것들을 인터넷을 통해서 보내게 된다.

 

 

클라이언트 패킷 전달

IP 패킷을 인터넷에 던지게되면 각 노드들은 200.200.200.2를 받을 수 있는 서버가 어디인지를 찾게 된다.

200.200.200.2를 받을 수 있는 서버를 찾으면 해당 서버로 보내게 된다.

 

메시지를 받으면 받은 서버는 잘 받았어- 고마워- 내가 보내줄 건 뭐야 라는 것을 보내게 되는데 위의 이미지의 역으로 생각하면 된다.

 

서버에서 출발지 IP는 서버의 IP가 될 것이고, 목적지는 보낸 클라이언트의 IP가 되고 전달할 값은 서버가 정해서 보내게 된다. (하지만 노드는 같지 않을 수도 있다.)

 

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없어지거나, 서비스가 불가한 상태여도 일단 던지고 본다.
      • 대상 서버가 패킷을 받을 수 있는 상태인지 모름
  • 비신뢰성
    • 패킷이 사라져도 어쩔 수 없다.
    • 패킷은 순서대로 오지 않을 수도 있다.
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 Appilication이 둘 이상이라면

 

이런 IP 프로토콜의 한계를 극복하기 위해서 TCP, UDP가 나타나게 되었다.

'HTTP > HTTP강의' 카테고리의 다른 글

DNS 엄청난 기초  (0) 2023.06.07
[모든 개발자를 위한 HTTP 웹 기본] PORT  (1) 2022.09.19
[모든 개발자를 위한 HTTP 웹 기본] TCP, UDP  (0) 2022.09.19