[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 05. HTTP의 TCP와 UDP 통신
by ymkim✔ TCP & UDP
TCP/UDP가 어떻게 통신을 하는지 알아보자
인터넷 프로토콜 스택의 4계층
- 애플리케이션 계층
- HTTP, FTP
- 전송 계층
- TCP, UDP
- 인터넷 계층
- IP
- 네트워크 인터페이스 계층
- LAN Driver
- LAN 장비
✔ 인터넷 프로토콜 4계층
채팅 프로그램을 통한 메시지 전송 과정
OSI 7 Layer를 참고하세요
- 웹 브라우저의 채팅 프로그램을 통해 Hello World라는 메시지 입력
- 소켓 라이브러리를 통해 전송계층에 해당 메시지 전달
- 전송계층에서는 TCP를 사용하여 해당 메시지를 패킷에 담아 인터넷 계층에 전달
- 인터넷계층 IP 패킷 생성 후 TCP 패킷의 정보를 담는다
- 마지막으로 네트워크 계층에 IP 패킷 전달
- 네트워크 인터페이스 LAN카드를 통해 전송 시 이더넷 프레임 포함
✔ TCP/IP 패킷 정보
- IP패킷으로 TCP패킷을 감싸준다
- TCP 정보
- 출발지 PORT
- 목적지 PORT
- 전송제어 정보
- 순서
- 검증 정보
- 전송데이터를
✔ TCP 특징 (중요)
전송 제어 프로토콜(Transmission Control Protocol)
- 연결 지향
- 계속해서 연결을 유지하는 특징
- TCP 3way handshake
- 가상 연결 : 실제 물리적 연결이 아닌, 논리적 연결
- 데이터 전달 보증
- 메시지 전송 시 패킷이 중간에 누락되면 알 수 있다
- 순서 보장
- 데이터가 전송되는 순서를 보장한다
- 연결지향, 패킷 손실 여부, 순서 보장이라는 특징을 통해 신뢰성이 높은 프로토콜이다
- 현재는 대부분 TCP 사용하지만 UDP를 사용하는 서비스 역시 많다
연결지향 : TCP 3 way hasdShake
- SYN
- 접속 요청
- Client측에서 서버쪽에 연결이 가능한지 요청을 보낸다.
- ACK
- 요청 수락
- 연결이 가능하면 해당 Client 서버에 응답을 보낸다.
- 참고
- ACK와 함께 데이터 전송 가능
데이터 전달 보증
- 기존 IP만으로는 데이터 전달 보증이 불가능하다
- TCP는 IP의 한계성을 극보하기 위해 나온 프로토콜이다
- 즉, IP가 가지고 있는 한계를 보완하는 기술이다
순서 보증
- 패킷에 데이터 저장 후 인터넷망에 해당 패킷을 전달
- 수신측 서버에 패킷이 전달된다. 이 때 해당 해킷의 순서가 잘못 됨을 서버가 판단
- 수신측 서버는 해당 패킷을 전부 버린 후 송신측에 패킷을 다시 보내라는 응답 전달
- 해당 요청을 받은 송신측은 수신측 서버에 재 요청을 한다
UDP
사용자 데이터그램 프로토콜(User Datagram Protocol)
- UDP는 하얀 도화지를 연상하면 좋다, TCP에 비해서는 기능이 부족하다
TCP 프로토콜과의 비교
- 연결지향
- TCP 3 way handshake를 지원 안함
- 일방적으로 클라이언트 측에서 서버 측으로 전송
- 데이터 전달 보증 x
- UDP는 데이터 전달 보증을 하지 않는다, 데이터가 손실되도 찾을 수 없음
- 순서 보장 x
- UDP는 데이터의 순서 역시 보증을 하지 않는다
- 사용 목적
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- 즉, 속도가 TCP에 비해 상당히 빠르기에 사용이 된다.
참고 자료
'Network > HTTP' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 07. HTTP 개념 설명 (0) | 2023.04.25 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 06. HTTP-URI-URL-URN (0) | 2023.04.25 |
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 04. HTTP의 PORT와 DNS (0) | 2023.04.25 |
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 03. HTTP의 Mehod란? (0) | 2023.04.25 |
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 02. IP란? (0) | 2023.04.25 |
블로그의 정보
기록하고, 복기하고
ymkim