코드로 우주평화
TCP와 UDP 비교 본문
TCP와 UDP는 무엇인가요?
TCP는 연결형, 신뢰성 프로토콜입니다. 연결지향적이기 때문에 3-way handshaking을 하여 두 호스트의 전송 계층 사이를 논리적 연결으로 연결합니다. 신뢰성을 보장하기때문에 헤더가 더 크고 속도가 비교적 느립니다.
UDP는 비연결형, 비신뢰성 프로토콜로 헤더가 작고 수신여부를 확인하지 않아 속도가 빠릅니다. 단, 데이터의 내용이나 순서 등의 신뢰성을 보장하지 못합니다.
TCP, UDP는 TCP/IP 4계층에서 전송계층에 해당됩니다.
TCP로 전송하는 패킷을 segment, UDP로 전송하는 패킷은 datagram이라고 합니다.
어디에 사용하나요?
TCP는 신뢰성이 중요한 통신 HTTP, File 전송에 쓰이고,
UDP는 실시간성이 중요한 통신인 동영상 스트리밍 등에 사용됩니다.
TCP 사용 예시 - 문서파일을 다운로드 받는다면 신뢰성이 보장되는 프로토콜을 사용해야 합니다. 다운로드 완료된 파일의 일부분이 손실되거나 훼손되어 있으면 안되기 때문입니다.
UDP 사용 예시 - 실시간 방송은 음성과 영상을 한프레임씩 전송합니다. 이 경우 훼손되거나 손실된 프레임을 재전송 한다면 전체적인 지연이 발생할 수 있습니다. 따라서 훼손되거나 손실된 패킷은 그냥 무시하고 나머지 패킷을 전달하는 것이 좋습니다.
TCP 통신의 3단계
- Connection setup (TCP 연결 초기화) - 3way handshaking
- Data transfer (데이터 전송)
- Connection termination (TCP 연결 종료) - 4way handshaking
3-way handshake는 무엇인가요?
TCP/IP로 통신하기 전, 정확한 정보 전송을 위해 세션을 연결하는 과정입니다.
클라이언트가 먼저 SYN 패킷을 보내면 서버가 SYN+ACK 패킷을 응답합니다.
클라이언트가 이를 확인 후 다시 ACK서버에게 발송하면 연결이 이루어집니다.
3-way handshake를 하는 이유는?
TCP 통신을 할 때 연결을 수립하기 위한 과정입니다.
그럼 4-way handshake는?
TCP 연결을 종료하는 과정은 4-way handshaking을 통해 이루어집니다.
TCP connection termination은 양방향으로 2개의 연결이 독립적으로 닫히기 때문에 4-way 단계를 밟게 됩니다.
1. 클라이언트 → FIN
2. 서버 → ACK
3. 서버 → FIN
4. 클라이언트 → ACK
'나는 이렇게 학습한다 > CS' 카테고리의 다른 글
로그인시 Access Token, Refresh Token 보내주기 (0) | 2022.04.13 |
---|---|
HTTP(Hyper Text Transfer Protocol)를 알아보자 (0) | 2022.03.21 |
메모리 단편화를 해결하는 세 가지 방법 (0) | 2022.02.09 |
동시성(병행성) vs 병렬성 (0) | 2022.01.16 |
컴퓨터 구조와 운영체제 기본 (2) | 2022.01.16 |