본 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 내용을 정리한 글입니다.
IP(Internet Protocol : 인터넷 규약)
복잡한 인터넷 망에서 한국에서 미국으로 Hello, world!라는 메시지를 보내야 한다.
어떻게 클라이언트 ( 보내는 사람) 과 받는 사람을 구체적으로 콕 집어서 정확히 보낼 수 있을까??
바로 IP 주소를 통해서이다.
아래와 같이 클라이언트와 서버는 각자의 고유한 IP주소를 가지고 있어서
'메세지를 보내줘'라고 할 때 누가 받는지를 지정할 수 있다.
IP의 역할
- 지정한 IP 주소에 데이터 전달
- 패킷(Packet) 단위로 데이터 전달
그렇다면 패킷(Packet)은 뭘까??
위키 백과사전을 찾아보면 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 |