1. 인터넷이 통신하는 방법
만약 내가 컴퓨터로 멀리있는 친구에게 메시지를 보내야하는 상황이라고 가정해보자.
그렇다면 내가 메시지를 전송하면 어떻게 친구 컴퓨터까지 메시지가 도착할 수 있는 걸까?
내 컴퓨터가 시작점(클라이언트), 친구 컴퓨터가 목표(서버)라고 생각해보자.
내가 친구에게 Hello, world! 라고 메시지를 보낸 상황이다.
내가 친구에게 Hello, world! 라고 메시지를 보낸 상황이다.
그러면 내가 보낸 메시지는 전 세계에 구축되어 있는 인터넷 망을 타고 목표지점인 컴퓨터(서버) 까지 날아가게 되는데
중간의 인터넷 망은 수많은 노드로 구성이 되어있다.
2. IP(인터넷 프로토콜)
여기서 서버에 내가 보낸 메시지가 무사히 도착하기 위해 IP 라는 개념이 등장한다.
IP는 인터넷상의 주소를 말하는데, 이 IP 값을 알고있으면 상대 컴퓨터가 있는 곳을 알아낼 수 있다.
즉, 내가 보낸 메시지를 상대에게 무사히 보내기 위해
내 메시지 안에 도착할 서버의 IP 를 적어넣는 것이다.
쉽게 말하면 편지를 보내는 과정과 유사하다고 보면 될 것 같다.
편지의 내용과 더불어 보내는 이의 주소, 받는 이의 주소를 적어서 보내면 상대에게 편지가 도착하는 것과 유사하다고 이해하면 될 것 같다.
이때 이 편지(메시지)는 패킷(Packet) 이라는 통신 단위로 데이터가 전달된다.
3. 패킷(Packet)이란 무엇일까?
위의 예시로 치면 편지 그 자체인 패킷은 크게 다음과 같이 구성되어 있다.
클라이언트의 IP(출발지) 정보 및 서버IP(도착지) 정보 등 데이터를 보내는데 필요한 부가적인 정보들을 실제 전송 데이터를 감싸서 보내게 된다.
(실제로는 IP 뿐 만 아니라 그 외의 많은 정보들을 포함하고 있다)
때문에 인터넷 상의 수많은 노드들을 거쳐갈 때 이 패킷의 정보를 읽고 목적지에 맞게 데이터를 보내주는 것이라 할 수 있다.
실제로 통신하는 과정을 예시로 보면 다음과 같다.
클라이언트에서 패킷에 출발지와 목적지를 적고 인터넷에 실어보내면
인터넷상의 노드를 통해 서버까지 데이터가 전달이 되게 된다.
이 정보를 무사히 받아본 서버가 ok 라는 응답을 클라이언트에게 보내주었다고 가정해보자.
그러면 다음과 같이 흘러가게 된다.
출발지와 목적지를 서로 바꾸어 패킷을 만든 후 클라이언트에게 응답을 보내게 된다.
(이 때 클라이언트가 데이터를 보낼 때와 같은 경로로 온다는 보장이 없다.)
Reference
이 포스팅은 아래의 강좌를 참고하여 만들어졌습니다.
- 모든 개발자를 위한 HTTP 웹 기본 지식
www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
'Backend' 카테고리의 다른 글
DNS(Domain Name System)과 DDNS의 개념 (0) | 2020.10.30 |
---|