TCP와 UDP는 네트워크에서 데이터를 전송하는데 사용되는 프로토콜입니다.
TCP (Transmission Control Protocol)
1.연결 지향적인 프로토콜로, 통신 전에 연결을 설정하고 통신 후에는 연결을 해제
2. TCP의 3-way handshake는 클라이언트가 서버에게 SYN 패킷을 보내고, 서버가 SYN-ACK로 응답하며, 클라이언트가 ACK로 최종 응답하여 연결
3.데이터 전송의 신뢰성을 보장하기 위해 흐름 제어, 오류 복구, 재전송 등의 기능을 제공
4.패킷 전송 순서를 보장하여 데이터를 순차적으로 전달
5.대표적으로 웹 브라우징, 이메일 전송 등 신뢰성이 요구되는 곳에서 사용
UDP (User Datagram Protocol)
1. 비연결 지향적인 프로토콜로, 연결 설정 및 해제 과정이 없습니다.
2. 신뢰성이 낮고 간단한 헤더 구조를 가지고 있어 전송 속도가 빠릅니다.
3. 흐름 제어 및 오류 복구 기능이 없어 일부 데이터 손실이 발생할 수 있습니다.
4. 대표적으로 DNS 조회, 스트리밍 서비스 등에서 사용됩니다.
꼬리질문
1. TCP와 UDP 중 어떤 상황에서 어떤 것을 선택해야 할까요?
TCP는 데이터 전송의 신뢰성이 중요한 상황에서 사용되며, 예를 들어 파일 전송, 웹 페이지 요청과 같이 신뢰성이 요구되는 곳에 적합하고 UDP는 속도가 중요하고 손실이 발생해도 괜찮은 곳에 사용되며, 예를 들어 실시간 영상 스트리밍, 음성 통화와 같이 빠른 응답이 필요한 경우에 적합합니다.
2. TCP의 3-way handshake 매커니즘에 대해 설명해주세요
1. SYN (Synchronize):
클라이언트가 서버에게 통신을 시작하고자 하는 의사를 전달하기 위해 SYN 패킷을 보냄
2. SYN-ACK (Synchronize-Acknowledgment):
서버는 클라이언트의 SYN을 받고, 클라이언트의 초기 순차 번호에 1을 더한 값을 자신의 초기 순차 번호로 선택하여 SYN-ACK 패킷을 생성하여 클라이언트에게 전송 ( 패킷은 서버가 클라이언트의 통신 요청에 응답할 준비가 되었음을 알림)
3. ACK (Acknowledgment):
클라이언트는 서버의 SYN-ACK를 받으면, 서버의 초기 순차 번호에 1을 더한 값을 자신의 초기 순차 번호로 선택하여 ACK 패킷을 생성하여 서버에게 전송 ( 클라이언트는 서버의 응답을 받았으며, 서버와의 신뢰성 있는 연결 확인)
'cs 공부' 카테고리의 다른 글
| DI, IoC에 대해 설명해주세요. (0) | 2023.12.12 |
|---|---|
| http, https 차이점에 대해 설명해주세요 (0) | 2023.12.11 |
| 쿠키, 세션의 개념과 차이를 설명해보세요 (0) | 2023.12.11 |
| 브라우저의 작동 방식 (0) | 2023.12.11 |
| CORS에 대해 설명해주세요 (1) | 2023.12.11 |