[모든 개발자를 위한 HTTP 웹 기본 지식] 01. 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜)

Yewon Kim·2022년 7월 28일
0
post-thumbnail

🔊본 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 Inflearn 강의를 수강하고 정리한 글입니다.

1. 인터넷 통신

1) 인터넷에서 컴퓨터 둘은 어떻게 통신할까?

만약 클라이언트와 서버가 가까이 있으면 케이블로 2PC를 연결하여 통신할 수 있다.

하지만 클라이언트와 서버의 거리가 멀면 그 사이에 있는 인터넷망을 통해서 Hello, world!라는 메시지를 보내야 한다.

2) 복잡한 인터넷 망

그런데 인터넷망은 너무 복잡하다!

클라이언트(출발지)에서 인터넷 망 내부의 수많은 중간 노드(서버)를 거쳐 메시지를 서버(목적지)로 전달해야 한다.

그럼 어떤 규칙으로 수많은 노드들을 거쳐 목적지에 메시지를 전달할까? 이를 이해하기 위해 IP에 대해 학습한다.

2. IP(인터넷 프로토콜)

1) IP 주소 부여

메시지를 전달하기 위해서 클라이언트(출발지)와 서버(목적지)의 IP주소가 부여된 상태여야 한다.

2) IP(인터넷 프로토콜) 역할

- 지정한 IP 주소(IP Adress)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달

3) IP 패킷 정보

패킷 단위로 데이터를 전달한다.

즉, 전송 데이터(보낼 데이터)와 함께 출발지 IP(클라이언트 IP), 목적지 IP(서버 IP) 등을 함께 묶어 패킷으로 만든 후 전달한다.

4) 클라이언트 패킷 전달

5) 서버 패킷 전달

6) IP 프로토콜의 한계

  • 비연결성
    - 패킷을 받을 대상이 없거나 서비스 불능 상태 → 패킷 전송

6-1. 비연결성 - 대상이 서비스 불능, 패킷 전송
클라이언트(출발지)에서 패킷을 전송하려고 할 때, 대상 서버(목적지)의 상태는 알 수 없다.
그래서 항상 패킷을 보내게 되는 문제가 있다.

  • 비신뢰성
    - 중간에 패킷이 사라지면? → 해결X
    - 패킷이 순서대로 안오면? → 해결X

6-2. 비신뢰성 - 패킷 소실
만약 인터넷 망의 어떤 중간 노드(서버)가 문자가 생기면, 클라이언트(출발지)에서 보낸 패킷이 유실되는 문제가 있다.

6-3. 비신뢰성 - 패킷 전달 순서 문제 발생
패킷의 용량이 매우 클 때, 패킷을 준리해서 보내게 된다.
그런데 그 패킷들이 모두 같은 경로로(같은 노드를 거쳐서) 이동하는 것은 아니기 때문에, 패킷 전달 순서가 보장되지 않는 문제가 있다.

  • 프로그램 구분
    - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? → 구분X
    e.g. 한 PC로 게임, 음악 듣기하면 IP는 같다.
Q1. 여기서 말하는 클라이어트, 서버의 의미는?
A1. 요청자: 클라이언트, 요청 메시지를 받는 곳: 서버
    메시지를 보내는 나의 PC에 설치된 애플리케이션 = 클라이언트
    친구의 PC에 설치된 애플리케이션 = 서버
Q2. 프로토콜이란?
A2. 프로토콜 = 통신 규약(약속)이다.
	서로 간에 데이터를 주고 받기위해서 데이터는 이런 모양이어야하고 그 안에 ip, port 라는 게 있어야 한다 등의 약속을 말한다.
    인터넷은 실제 byte 데이터를 전달하면서 통신하는데 어떻게 통신할지, 앞의 몇자리는 IP가 들어가고 나머지는 데이터가 들어가는 등 약속이 필요한데, 이것이 프로토콜이다.

0개의 댓글