인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.
틀린 부분이 있으면 답글 달아 주세요😊😊
1. 인터넷 통신
인터넷에서 컴퓨터 둘은 어떻게 통신할까?
다른 컴퓨터 두 대가 케이블로 연결되어 있다면, 문제 없이 요청과 응답을 주고 받게 될 것이다.
하지만, 다른 두 대의 컴퓨터가 멀리 있다면 인터넷 망을 통해서 통신할 수 있다.
인터넷은 수많은 노드, 서버와 링크들을 거쳐서 메시지가 전달되어야 한다.
복잡한 인터넷 망을 거쳐서 안전하게 message를 전달하려면 어떻게 해야할까?를 이해하려면 IP(인터넷 프로토콜) 에 대해서 이해해야 한다.
2. IP (Internet Protocol)
인터넷 망을 거쳐 원하는 서버로 요청 또는 메시지를 보내고자 하는 경우 IP 주소가 있어야 한다.
클라이언트와 서버에서 각자 IP 주소를 부여 받는다.
💡 IP 역할
- 지정한 IP 주소(IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
👉 IP 패킷(Packet) 정보
패킷 단위로 데이터를 전달한다.
전송데이터(message)와 함께 출발지 IP(client), 목적지 IP(server) 등을 패킷으로 묶어 전달한다.
🚨 IP 프로토콜의 한계
• 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
👉 클라이언트(출발지)에서 패킷을 전송하려고 할 때, 서버의 상태는 알 수 없다. 그래서 항상 패킷을 보내게 되는 문제가 있다.
• 비신뢰성
- 중간에 패킷이 사라지면?
👉 중간 노드에서 문제가 생길 경우, 클라이언트에서 보낸 패킷이 유실될 수 있다.
- 패킷이 순서대로 안오면?
👉 패킷의 용량이 클 경우, 나눠서 보내게 된다. 그러나, 패킷들이 중간에 내부 상태에 따라 각각 다른 노드로 이동할 수 있기 때문에 패킷 순서가 다르게 전달 될 수 있다.
• 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? -> 어떻게 구분 해야할까 ?
'📚 Computer Science > Network' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 기본 - Stateful, Stateless (0) | 2023.08.10 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 기본 (0) | 2023.08.10 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 2. URI와 웹 브라우저 요청 흐름 (0) | 2023.08.08 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 1. 인터넷 통신 - PORT/DNS (0) | 2023.08.08 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 1. 인터넷 통신 - TCP/UDP (0) | 2023.08.07 |