TCP와 UDP는 인터넷에서 데이터를 주고받을 때 사용되는 두 가지 중요한 통신 방식입니다. 둘 다 데이터를 보내는 역할을 하지만, 방식에서 큰 차이가 있습니다.
🚀 TCP (Transmission Control Protocol)
TCP는 "신뢰성" 있는 데이터 전송을 목표로 합니다. 마치 전화 통화처럼, 데이터를 보내기 전에 서로 연결을 확인하고, 데이터를 주고받는 동안에도 계속해서 잘 도착했는지 확인하는 방식입니다.
✨ 주요 특징
- 연결 지향: 데이터를 보내기 전에 송신자와 수신자 사이에 연결을 설정합니다. (3-Way Handshake라는 과정을 통해 연결을 맺고, 4-Way Handshake를 통해 연결을 끊습니다.)
- 신뢰성 보장: 데이터가 손실되거나 순서가 바뀌지 않도록 보장합니다. 만약 데이터가 손실되면 다시 보내달라고 요청해서 꼭 모든 데이터가 도착하도록 합니다.
- 흐름 제어 및 혼잡 제어: 네트워크 상황에 맞춰 데이터 전송 속도를 조절해서, 너무 많은 데이터를 한꺼번에 보내서 네트워크가 마비되는 것을 막습니다.
- 1:1 통신: 주로 한 컴퓨터와 다른 한 컴퓨터가 통신할 때 사용됩니다.
➕ 장점
- 데이터 손실 없음: 중요한 데이터가 빠짐없이 전달되어야 할 때 적합합니다.
- 순서 보장: 보낸 순서대로 데이터가 도착합니다.
➖ 단점
- 속도 느림: 연결 설정, 확인, 재전송 등의 과정 때문에 UDP보다 속도가 느립니다.
- 오버헤드: 데이터 전송 외에도 많은 제어 정보를 주고받아야 하므로 자원을 더 많이 사용합니다.
🌐 사용 예시
- 웹 브라우징 (HTTP/HTTPS): 웹페이지를 볼 때 모든 이미지와 텍스트가 정확하게 도착해야 하므로 TCP를 사용합니다.
- 파일 전송 (FTP): 파일의 내용이 손상되면 안 되므로 TCP를 사용합니다.
- 이메일 (SMTP/POP3/IMAP): 이메일 내용이 빠지거나 바뀌면 안 되므로 TCP를 사용합니다.
⚡ UDP (User Datagram Protocol)
UDP는 "빠른 속도"와 "단순함"을 목표로 합니다. 마치 편지를 보내는 것처럼, 일단 데이터를 보내고 상대방이 받았는지 확인하지 않습니다. 중간에 편지가 사라져도 다시 보내달라고 요청하지 않죠.
✨ 주요 특징
- 비연결 지향: 데이터를 보내기 전에 별도의 연결 설정 과정이 없습니다. 바로 데이터를 보냅니다.
- 신뢰성 없음: 데이터 손실이나 순서 변경을 신경 쓰지 않습니다. 데이터가 유실되어도 재전송하지 않습니다.
- 오류 제어 없음: 데이터에 오류가 있는지 확인하거나 수정하는 기능이 없습니다.
- 빠른 속도: 연결 설정이나 확인 절차가 없어서 TCP보다 훨씬 빠릅니다.
- 1:1, 1:N (멀티캐스트), N:N (브로드캐스트) 통신 가능: 여러 대상에게 동시에 데이터를 보낼 수 있습니다.
➕ 장점
- 빠른 전송 속도: 실시간성이 중요한 서비스에 유리합니다.
- 낮은 오버헤드: 제어 정보가 적어 네트워크 자원을 적게 사용합니다.
➖ 단점
- 데이터 손실 가능성: 중요한 데이터가 유실될 수 있습니다.
- 순서 보장 안 됨: 보낸 순서와 다르게 데이터가 도착할 수 있습니다.
🌐 사용 예시
- 온라인 게임: 실시간으로 움직임을 주고받아야 하므로 약간의 데이터 손실보다 빠른 반응 속도가 중요합니다.
- 실시간 스트리밍 (음악/영상): 영상이나 음성 데이터가 약간 끊겨도 전체 흐름에는 큰 문제가 없으므로 빠른 전송이 중요합니다.
- 음성 통화 (VoIP): 실시간 대화가 중요하므로 UDP를 사용합니다.
- DNS (Domain Name System): 도메인 이름을 IP 주소로 빠르게 변환해야 하므로 UDP를 사용합니다.
💡 요약 및 비교
연결 방식 | 연결 지향 (데이터 전송 전 연결 설정) | 비연결 지향 (연결 설정 없이 바로 전송) |
신뢰성 | 높음 (데이터 손실 및 순서 보장) | 낮음 (데이터 손실 및 순서 보장 안 함) |
속도 | 느림 | 빠름 |
제어 기능 | 흐름 제어, 혼잡 제어, 오류 제어 | 없음 |
통신 방식 | 1:1 통신 | 1:1, 1:N, N:N 통신 |
사용 예시 | 웹, 파일 전송, 이메일 | 온라인 게임, 스트리밍, 음성 통화 |
쉽게 말해, TCP는 "정확하고 확실하게" 보내는 것이 중요할 때 사용하고, UDP는 "빠르고 끊기지 않게" 보내는 것이 중요할 때 사용한다고 생각하면 됩니다.
'컴퓨터 잡다학메모' 카테고리의 다른 글
크롬에 광고 사이트가 자동으로 북마크에 등록 현상 막는 방법 (1) | 2025.06.19 |
---|---|
플랫폼(Platform)을 쉽게 설명 및 정리 (2) | 2025.06.11 |
컴퓨터 (Computer), 컴퓨팅 (Computing) 용어 쉽게 예를 들어 설명 (3) | 2025.06.05 |
스마트안경에 인공지능(AI) 기술 병원, 의료 보건에 접목 // AI (2) | 2025.05.29 |
"모델(model)"과 "알고리즘(algorithm)"의 의미 정리 (1) | 2025.05.22 |
콘텐츠 내 자동삽입광고