❤️ 인터넷 네트워크
📝 인터넷 통신
인터넷에서 컴퓨터 둘은 어떻게 통신할까?
- 클라이언트와 서버가 가까이 있을 경우 케이블로 통신이 가능하지만, 그 반대의 경우 클라이언트와 서버 사이에 있는 복잡한 인터넷 망을 통해 메시지를 전달할 수 있다.
- 인터넷 망의 수많은 중간 노드를 거쳐야 한다. -> 어떤 규칙?
📝 IP(인터넷 프로토콜)
IP 주소 부여
클라이언트와 전달하려는 서버에 IP주소가 부여 되어야 한다

역할
- 지정한 IP주소에 데이터 전달
- 패킷(Paket)이라는 통신 단위로 데이터 전달
IP 패킷
- 전송 데이터와 함께 출발지IP, 목적지IP 등을 묶어 패킷으로 만든 후 전달

- 클라이언트 패킷 전달

- 서버 패킷 전달

IP 프로토콜의 한계
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 -> 클라이언트에서는 알 수 없음
- 비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않을 경우 해결 불가능
- 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우 구분할 수 없음
📝 TCP, UDP
IP 프로토콜의 한계를 해결해주는 프로토콜
인터넷 프로토콜 스택의 4계층
-> TCP, UDP : IP프로토콜 위에서 보완해준다
프로토콜
TCP/IP패킷 정보
- IP패킷안에 출발지PORT, 목적지PORT, 전송 제어, 순서, 검증 정보 등의 정보가 들어간다.

TCP 특징 : 전송 제어 프로토콜(Transmission Control Protocol)
UDP 특징 : 사용자 데이터그램 프로토콜(User Datagram Protocol)
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- 정리
- IP와 거의 같다 + PORT + 체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
PORT : 패킷을 구분
체크섬 : 메시지를 검증
📝 PORT
같은 IP 내에서 프로세스 구분

0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
📝 DNS
도메인 네임 시스템(Domain Name System)
- IP는 기억하기 어렵고 바뀔 수 있기 때문에 DNS 서버가 존재
- 전화번호부같은 서버 제공
- 도메인 명을 IP 주소로 변환

출처 - 인프런 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의