인터넷에서 컴퓨터 둘은 어떻게 통신할까?
클라이언트와 서버의 물리적 거리가 매우 멀다면 인터넷 망을 통해 메시지를 보내야 함
이때 수많은 노드를 연결하는 케이블을 거쳐서 메시지가 전달됨
이 방식을 이해하기 위해 IP(인터넷 프로토콜)에 대한 이해가 필요
복잡한 망에서 데이터를 전달하는 방법
⇒ IP 주소 부여
IP의 역할
1) 지정한 IP 주소에 데이터 전달
2) 패킷이라는 통신 단위로 데이터 전달
IP 패킷 정보
출발지 IP, 목적지 IP, 기타...
전송 데이터
인터넷 프로토콜 스택의 4계층(데이터 전송 흐름)
TCP 세그먼트
출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보...로 구성
TCP(Transmission Control Protocol) 특징 ⭐
1) 연결지향: 연결 가능 여부를 확인하고 전송 ⇒ TCP 3 way handshake (가상 연결)
➡️ TCP 3 way handshake?
ACK 응답이 없으면 데이터를 전송하지 않음
* 가상연결? 두 노드가 물리적으로 연결된 것이 아니라 요청과 수락 메시지를 성공적으로 수신함으로써 논리적으로 연결이 성공했다고 생각하는 것, 과거 전화 통신을 중개할 때 실제로 연결 되는 포트를 올바른 위치에 꽂아준 것과 대비됨
2) 데이터 전달 보증: 데이터 정상 수신 메시지를 답신하므로써 패킷이 전송 중 누락되었을 때 인식 가능
3) 순서 보장: 순서가 섞인 패킷을 폐기하고 다시 보내라고 요청
하나의 IP에서 여러 어플리케이션이 동작하고 있을 때 각 어플리케이션으로 송수신 되는 여러 패킷을 구분하기 위한 식별번호
PORT 번호
- 0 ~ 65535 할당가능
- 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET- 23
- HTTP - 80
- HTTPS - 443
DNS(Domain Name System): 전화번호부, 도메인 명을 IP 주소로 변환
출처: 모든 개발자를 위한 HTTP 웹 기본 지식(김영한) - 인프런