인터넷 네트워크, IP(인터넷 프로토콜)

개발로 쓰는 개발 노트·2023년 4월 25일
0

IP(인터넷 프로토콜)

복잡한 인터넷 망에서 메시지를 보내기 위해서는 최소한의 규칙이 필요하다!

그것은 IP주소를 통해 가능해지는데
우선 먼저 IP주소에 대해 알아보자
IP주소는 흔히 xxx.xxx.xxx.xxx 같은 형식으로 구성되어 있다.
컴퓨터끼리 주고 받는 주소라고 생각하면 편할 것이다.

그럼 우선 클라이언트가 먼저 IP주소를 부여받는다.
그리고 서버에도 IP가 있다.

무언가 요청하기 위해서는 클라이언트가 메시지를 서버에 보내야 하는데
그것을 패킷이라는 포장에 담아서 소포 보내듯이 보낸다.
이제 그 역할을 인터넷 망에 있는 노드들이 해준다.

클라이언트의 요청 메세지를 패킷에 담아 노드들이 서버IP에 보내면 그거에 대한 응답이 있다.
우리가 흔히 어떤 요청을 했을때 정상적인 요청이라면
HTTP상태코드로 200 OK가 생기고 정상적인 페이지를 볼 수 있고
서버에서 없는 요청을 할 경우 404Error를 보는 것처럼
응답 메세지를 패킷에 담아 클라이언트에게 다시 보내준다.

즉, 여기까지 정리하면

클라이언트 - 발신자(요청자 request)
서버 - 수신자(응답자 response)
메시지 - 요청, 응답
패킷 - 포장
노드 - 우체부 혹은 비둘기..?
인터넷 망 - 우체부가 통하는 길

클라이언트와 서버간의 거리가 멀기 때문에 하나의 노드가 패킷을 운반하지 않고
노드가 서로서로 연결되어 운반을 하며 요청을 주고 받을 때
같은 노드를 사용하지 않을 수도 있다!

그러나 이 IP 인터넷 프로토콜의 문제가 있다.

1. 비연결성

패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 -> 서버가 불능 상태여도 패킷을 보내버림
서버컴퓨터가 꺼져있거나 잘못된 서버에도 패킷을 보낸다는 문제점이 있다.

2. 비신뢰성

중간에 패킷이 사라진다면? -> 노드에 문제가 생겨서 꺼져버린다면? 그래서 패킷이 사라져버린다면? 광케이블을 어떤 야생동물이 긁어먹거나 다양한 이유로 노드가 손상될 수 있다.

패킷을 여러개 보냈는데 순서대로 안온다면? -> 패킷당 용량문제로! 패킷 전달 순서 문제가 생긴다. 노드를 다른걸 타서 늦게 도착해버리면 Hello, World를 보냈는데 World Hello로 도착할 수 있다. 어떤 비둘기는 느린 길을 탔고 어떤 비둘기는 지름길을 탔다면 늦게 보냈더라도 빨리 도착할 수 있는거 아닌가..!

3. 프로그램 구분

같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?
IP가 같은 하나의 PC에서 게임도 하고 음악도 들으면 어떻게 구분이 되는걸까? 이런 한계가 있음.

위의 한계를 극복하기 위해 TCP프로토콜이 등장한다! 다음은 TCP프로토콜에 대해 알아보자!

출처 : 모든 개발자를 위한 HTTP 웹 기본 지식(김영한 강사님 인프런 강의)

profile
비전공자 개발초보입니다!

0개의 댓글