인터넷 프로토콜 스택의 4 계층
애플리케이션 계층 - HTTP, FTP
전송 계층 - TCP, UDP
인터넷 계층 - IP
네트워크 인터페이스 계층
프로토콜 계층
TCP
TCP/IP 패킷 정보
IP 패킷 : 출발지 IP, 목적지 IP, 기타...
TCP 세그먼트 : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보...
IP만으로 해결되지 않았던 순서 제어 문제 등이 해결된다.
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
- 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜
- 연결 지향 - TCP 3 way handshake(가상 연결)
- 연결이 되었는지 확인하고 메시지를 전달
- 데이터 전달 보증
- 누락됐을 시 알 수 있다.
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
TCP 3 way handshake
- SYN :클라이언트에서 서버로 메시지를 전달
- SYN+ACK : 서버에서 요청 수락, 클라이언트로 접속 요청
- ACK : 요청 수락
- 데이터 전송
- 요즘에는 최적화가 되어서 3번 ACK를 보낼 때 데이터를 전송함.
- 나를 위한 전용 랜선이 보장되는 것이 아닌 논리적으로만 연결이 된 상태
데이터 전달 보증
- 데이터 전송
- 데이터를 잘 받았다고 응답.
순서 보장
- 클라이언트 -> 서버 : 패킷 1, 패킷 2, 패킷 3
- 서버 : 패킷 1, 패킷 3, 패킷 2 순서로 도착
- 순서가 꼬인(패킷 2) 패킷부터 다시 보내도록 요청
UDP
사용자 데이터그램 프로토콜(User Datagram Protocol)
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결 지향 - TCP 3 way handshake 없음
- 데이터 전달 보증하지 않음
- 순서 보장하지 않음
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- 정리
- IP와 거의 동일. +PORT+ 체크섬 정도만 추가
- 하나의 IP에서 여러 애플리케이션을 돌릴 때, 게임용 패킷, 음악용 패킷 등을 구별할 때 사용.
- 애플리케이션에서 추가 작업 필요
- IP와 거의 동일. +PORT+ 체크섬 정도만 추가
UDP의 장점
- TCP와 달리 통신 시작 전, 3방향 핸드 셰이크와 같이 사전에 연결을 확립하는 절차가 없다.
- 빠르다.
- 가상 회선을 굳이 확립할 필요가 없고, 유연하며 실시간적 응용 데이터 전송에 적합하다.
참조
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...
www.inflearn.com
TCP - 용어 사전 | MDN
TCP (전송 제어 프로토콜)은 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜이다. TCP는 데이터와 패킷이 보내진 순서대로 전달하는 것을 보장해준다. Vint
developer.mozilla.org
IT 엔지니어를 위한 네트워크 입문 | 고재성 - 교보문고
IT 엔지니어를 위한 네트워크 입문 | 클라우드/데브옵스 시대에 알아야 할 인프라 지식 서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비
product.kyobobook.co.kr
UDP
UDP User Datagram Protocol (2020-06-23)
www.ktword.co.kr
'CS > HTTP' 카테고리의 다른 글
[HTTP] 웹 브라우저 요청 흐름 (0) | 2022.11.26 |
---|---|
[HTTP] URI와 웹 브라우저 요청 흐름 (0) | 2022.11.26 |
[HTTP/김영한] DNS (0) | 2022.11.26 |
[HTTP] PORT 포트 (0) | 2022.11.26 |
[HTTP] IP(Internet Protocol) 인터넷 프로토콜 (0) | 2022.11.25 |