Kwon's Study Blog !
[HTTP] HTTP 웹 기본 지식 - 인터넷 네트워크 본문
이글은 모든 개발자를 위한 HTTP 웹 기본 지식강의를 학습 후
나중에 다시 복습하기 위해 정리한 글입니다.
문제시 비공개로 처리하겠습니다.
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...
www.inflearn.com
목차
- 인터넷 통신
- IP(Internet Protocol)
- TCP, UDP
- PORT
- DNS
1. 인터넷 통신
인터넷에서 컴퓨터 둘은 어떻게 통신할까?
단순히 클라이언트와 서버, 즉 컴퓨터 둘은 선을 연결하고 서로 메시지를 주고 받으면 된다.
복잡한 인터넷 망
그렇다면 복잡한 인터넷 망에선 어떻게 메세지를 주고 받을까?
2. IP(Internet Protocol)
복잡한 인터넷 망에서 서로 통신을 하기 위해선 IP 주소를 부여하면 된다.
IP - 인터넷 프로토콜 역할
- 지정한 IP 주소 (IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
IP - 패킷 정보
- 출발지 IP
- 목적지 IP
- 전송 데이터
- 기타 ...
IP - 클라이언트와 서버의 패킷 전달
IP 프로토콜의 한계
- 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성 - 중간에 패킷이 사라지면? , 패킷이 순서대로 안오면?
각 인터넷 노드도 서버고 그 서버 중 한군데가 꺼져있다면 ? (IP가 뭐 용빼는 재주가 있는게 아니다.)
- 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 ? 이들을 어떻게 구분할 것인가?
IP 만으로는 위 같은 문제를 해결할 수 없다.
-> 이를 해결하는 것이 TCP, UDP 이다.
3. TCP, UDP
인터넷 프로토콜 스택의 4계층
프로토콜 계층
TCP/IP 패킷 정보
- 출발지 PORT
- 목적지 PORT
- 전송 제어
- 순서 정보
- 검증 정보 ...
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
- 연결지향 - TCP 3 way handshake(가상 연결)
이렇게 하면 클라이언트, 서버 모두 신뢰할 수 있고 데이터를 전송할 수 있다.
요즘엔 최적화가 돼서 3.ACK 를 보낼 때 데이터도 전송한다.
- 데이터 전달 보증
데이터를 전송했으면 서버에선 잘 받았다라는 메시지를 보내준다.
이 과정을 통해 데이터 전달을 보증한다.
만약 데이터를 잘 받았다라는 메시지를 못 받았다면 '어 이거 문제가 있는데' 라는 인지를 할 수 있는 것이다.
- 순서 보장
UDP 특징
사용자 데이터그램 프로토콜(User Datagram Protocol)
- IP + PORT (단순히 IP에 PORT 정보 + 체크섬 정도만 추가된 것)
- 연결지향 X (3way handshake)
- 데이터 전달 보증 X , 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- 애플리케이션에서 추가적인 작업이 필요하다.
최근에는 UDP가 뜨고있다.
Why?
TCP 에서 해주던 보장들에 대해 많은 최적화가 이루어지면서 HTTP3 에서 UDP 프로토콜을 사용하고 있다.
4. PORT
같은 IP 내에서 프로세스를 구분하기 위해 사용하는 것이 PORT 이다.
비유를 하자면
IP가 아파트라면, PORT는 몇동 몇호 같은 개념으로 이해하면 될 것 같다.
- 0 ~ 65535 : 할당 가능
- 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP : 20, 21
- TELNET : 23
- HTTP : 80
- HTTPS : 443
5. DNS
IP는 기억하기 어렵다. 그리고 IP는 변경될 수 있다.
DNS - 도메인 네임 시스템(Domain Name System)
DNS 서버를 통해
도메인 명을 IP 주소로 변환한다.
'HTTP' 카테고리의 다른 글
[HTTP] HTTP 웹 기본 지식 - HTTP 상태 코드 (0) | 2022.04.20 |
---|---|
[HTTP] HTTP 웹 기본 지식 - HTTP 메서드 활용 (0) | 2022.04.19 |
[HTTP] HTTP 웹 기본 지식 - HTTP 메서드 (0) | 2022.04.19 |
[HTTP] HTTP 웹 기본 지식 - HTTP 기본 (0) | 2022.04.19 |
[HTTP] HTTP 웹 기본 지식 - URI와 웹 브라우저 요청 흐름 (0) | 2022.04.18 |