TCP와 UDP 많이 들어보는데 잘 모르겠어서 공부 겸 정리합니다.
일단 TCP와 UDP는 통신을 위한 프로토콜의 종류입니다.
동일한 두 개의 노드가 통신을 한다고 했을 때 같은 데이터를 보내는 방식만 다른 것입니다.
바로 차이점부터 보겠습니다.
TCP | UDP |
연결형 프로토콜 - 연결 설정 후 통신 가능 |
비연결형 프로토콜 - 연결 설정 없이 통신 가능 |
신뢰성 있는 데이터 전송 - 전송 실패 시 재전송 |
신뢰성 없는 데이터 전송 - 전송 실패 알 수 없음 |
일대일 통신 | 일대일 통신 및 일대다 통신 |
데이터 경계를 구분하지 않는 Byte-Stream 서비스 |
데이터 경계를 구분하는 Datagram 서비스 |
1. 연결형과 비연결형
- 연결형 : 두개의 노드가 연결된 것이 확인되지 않는 이상 데이터를 전송하지 않습니다.
- 비연결형 : 두개의 노드가 연결된 것이 확인되지 않더라도 데이터를 전송합니다.
2. 신뢰성
- 신뢰성 있음 : 데이터가 완전하게 전송되어야 합니다. 데이터가 불완전하게 전송되는 등 실패하였다면 재전송 혹은 복원합니다.
- 신뢰성 없음 : 데이터를 보내고 나면 전송의 성공/실패는 크게 신경 쓰지 않습니다.
3. 일대일, 일대다 통신
- 말그대로 1:1, 1:n 통신입니다.
4. 데이터 경계 구분 여부
- 데이터 경계 구분 : 데이터에 처음과 끝이 있고 끝날 때마다 발신과 수신이 이루어집니다.
- 데이터 경계 구분하지 않음: 데이터를 원하는 사이클로 받습니다. 예를 들면 길이 3의 데이터가 3번 보내졌어도 5초에 한번 수신된다면 4초까지 들어온 데이터를 받고 그 이후에 들어온 데이터를 4초 동안 또 받고 하는 방식입니다.
이 둘은 모두 OSI 7계층에서 4계층에 해당하는 전송 계층의 프로토콜로
위에서 설명한 것과 달리 직접 코딩을 통하여 원하는 형태로 만들어서 사용하곤 합니다.
참조한 글
[네트워크] TCP/UDP의 데이터의 경계가 있다 없다는 의미는 무엇일까? | https://devjh.tistory.com/69
'공부 > 개념' 카테고리의 다른 글
NoSQL 저장 유형별 간단 정리 (0) | 2021.06.06 |
---|---|
RDBMS, NoSQL, Elasticsearch 그리고 Hadoop (0) | 2021.06.04 |
apache kafka 개념 정리 (0) | 2021.06.03 |
RESTful API 개념 정리 (0) | 2021.05.29 |
알고리즘 문제 풀때 보이는 O(n) 은 무엇일까? (시간 복잡도, 공간 복잡도) (0) | 2021.05.25 |
댓글