TCP(Transmission Control Protocol) - 전송 제어 프로토콜
- 연결 지향 (3 way handshake, 가상 연결)
- 데이터 전달 보증
- 순서 보장
요즘은 대부분 TCP를 사용한다.
TCP 세그먼트는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등 추가 정보를 담는다.
요즘은 위 사진처럼 TCP/IP 패킷이라고 묶어서 부른다.
TCP는 클라이언트와 서버가 연결이 됐는지 3단계의 확인 절차를 가진다.
- 클라이언트가 서버에게 SYN을 보냄.
- 서버가 클라이언트의 SYN을 받으면 거기에 ACK라는 대답을 추가해서 클라이언트에게 보냄.
- 클라이언트는 서버에게 응답 신호를 받으면 다시 서버에게 ACK를 보내줌.
이 3단계를 거치면 클라이언트랑 서버가 연결됐다고 보는 것이다.(물리적 연결이 아닌 논리적 연결, 즉 가상 연결이다)
연결 확인을 했기 때문에 IP 프로토콜의 한계점인 비연결성을 해결할 수 있다.
서로 연결을 확인했기 때문에 데이터 전달도 보증한다.
TCP 세그먼트 안에 순서 정보가 들어있기 때문에 서버에서 그 순서대로 들어오지 않으면
해당 패킷부터 다시 보내라고 클라이언트에게 요청을 보낸다.
그렇기 때문에 순서 또한 보장이 된다.
UDP(User Datagram Protocol) - 사용자 데이터그램 프로토콜
- 기능이 거의 없다
- 연결 지향X -> TCP처럼 연결 확인을 하지 않는다.
- 데이터 전달도 보증되지 않는다.
- 순서도 보장되지 않는다.
- 단순하고 빠르다.
- IP와 거의 같지만 PORT, 체크섬 정보가 추가.
PORT
한번에 둘 이상 연결을 해야 하는 경우가 있다.
예를 들어 클라이언트가 게임도 하고 디스코드도 한다고 가정해보자.
클라이언트의 IP와 서버의 IP는 하나인데 어떻게 게임이랑 디스코드를 구분해서 요청을 보내고 받을 수 있을까?
바로 PORT를 이용하면 된다.
TCP/IP 패킷 정보에는 출발 PORT, 도착 PORT의 정보가 들어있다고 했다.
PORT는 같은 IP내에서 프로세스를 구분하기 위한 번호다.
위 그림을 보면 하나의 동일한 IP에서도 각각의 다른 포트 번호로 프로세스를 구분하게 된다.
즉 PORT를 이용하면 동일한 IP에서도 여러 요청을 보내고 받을 수 있다.
- 0 ~ 65535 할당 가능
- 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋다.
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
DNS(Domain Name System)
일종의 IP 정보를 가진 전화번호부라고 생각하면 된다.
IP주소는 길어서 기억하기 어렵다는 특징이 있다. 그래서 DNS 서버에 해당 IP 주소와 도메인을 저장해놓고
외부에서 도메인 요청이 오면 그 도메인에 맞는 IP를 돌려주는 시스템이다.
출처
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런
www.inflearn.com
'CS지식 > HTTP 웹 지식' 카테고리의 다른 글
HTTP 204 (NO CONTENT) 알고 쓰자 (0) | 2023.09.23 |
---|---|
HTTP의 METHOD(GET, POST, PUT, PATCH, DELETE) (0) | 2023.06.15 |
IP(Internet Protocol) 특징과 한계점 (0) | 2023.06.15 |