(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다.
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 프로토콜의 한계
1) 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태 → 패킷 전송
2) 비신뢰성
- 중간에 패킷이 사라지면? → 해결X
- 패킷이 순서대로 안오면? → 해결X
3) 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? → 구분X
e.g. 한 PC로 게임, 음악 듣기하면 IP는 같음
6-1. 비연결성 - 대상이 서비스 불능, 패킷 전송
클라이언트(출발지)에서 패킷을 전송하려고 할 때, 대상 서버(목적지)의 상태는 알 수 없다. 그래서 항상 패킷을 보내게 되는 문제가 있다.
6-2. 비신뢰성 - 패킷 소실
만약 인터넷 망의 어떤 중간 노드(서버)가 문제가 생기면, 클라이언트(출발지)에서 보낸 패킷이 유실되는 문제가 있다.
6-3. 비신뢰성 - 패킷 전달 순서 문제 발생
패킷의 용량이 매우 클 때, 패킷을 분리해서 보내게 된다. 그런데 그 패킷들이 모두 같은 경로로(같은 노드들을 거쳐서) 이동하는 것은 아니기 떄문에, 패킷 전달 순서가 보장되지 않는 문제가 있다.
1-2. IP(인터넷 프로토콜) 질문 정리
Q. 여기서 말하는 클라이언, 서버의 의미는?
A. 요청자: 클라이언트, 요청 메시지를 받는 곳: 서버
강의에서는 메시지를 보내는 나의 PC에 설치된 애플리케이션 = 클라이언트,
친구의 PC에 설치된 애플리케이션 = 서버
[출처] https://www.inflearn.com/questions/146771
Q. 프로토콜이란?
A. 프로토콜 = 통신 규약(약속) 이다.
서로 간에 데이터를 주고 받기위해서 데이터는 이런 모양이어야하고 그 안에 ip, port 라는 게 있어야 한다 등의 약속을 말한다. 인터넷은 실제 byte 데이터를 전달하면서 통신하는데 어떻게 통신할지, 앞의 몇자리는 IP가 들어가고 나머지는 데이터가 들어가는 등 약속이 필요한데, 이것이 프로토콜이다.
[출처] https://www.inflearn.com/questions/268933
'Spring > 모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식] 03. HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조 (0) | 2022.05.26 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식] 02. URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저 요청 흐름 (0) | 2022.05.26 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 01. 인터넷 네트워크 - PORT, DNS (0) | 2022.05.26 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 01. 인터넷 네트워크 - TCP,UDP (2) | 2022.05.26 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 00. 소개 - 소개영상 (0) | 2022.05.25 |