TCPUDP는OSI표준 모델과TCP/IP모델의 전송 계층에서 사용되는 프로토콜이다.- 전송계층은 말 그대로 전송을 담당한다. 송신자와 수신자를 연결하는 통신 서비스를 제공하고 이때 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층이다.
TCPUDP는 포트 번호를 이용해 주소를 지정하는것과 데이터 오류검사를 하는 공통점을 가지고 있지만 다른 차이점이 존재한다.
- 양방향 통신.
- 데이터 유실과 흐름제어의 방지, 신뢰성이 높은 프로토콜, 데이터를 중요히 생각해 확실한 전송을 원할때 사용.
- 통신하는 컴퓨터끼리 전송확인, 수신확인 메시지를 보내며 데이터를 주고받음으로써 신뢰도 상승.
- 512bytes 보다 큰 데이터를 전송하는데 사용.
- 가장 대중적인
transport layer protocol.- 데이터를 보내기 전 반드시 연결이 형성되어야 함.
- 1:1통신만 가능함.
- 단방향 통신.
- 데이터 유실과 흐름제어가 없어서 신뢰성 미보장.
- 대신
TCP보다 빠른 속도.- 512bytes 보다 작은 데이터를 전송하는데 사용.
transport layer에서 사용.application layer에서 신뢰성이 핸들될 때 또는 시간적으로 예민한 경우에 사용한다.
| TCP | UDP |
|---|---|
| 연결 지향 프로토콜 | 비연결형 프로토콜 |
| 20bytes 헤더 사이즈 | 8bytes 헤더 사이즈 |
TCP는 UDP보다 느림 | UDP는 error recovery를 시도하지 않으므로 TCP보다 빠름 |
| 데이터의 전송 순서 보장(각 바이트마다 번호 부여) | There are no tracking connections, ordering of messages |
| error checking, error recovery 둘다 지원 | UDP는 오류 검사를 수행하지만 잘못된 패킷은 버림 |
| 수신여부 확인 -> handshake protocol 사용 ex) SYN, SYN-ACK, ACK | 수신여부 미확인 -> handshake를 사용하지 않는다 따라서 connectionless protocol |
| Used for large messages where multiple segments need to be transferred | Used for small messages where single message/packet/segment need to be transferred |
| 1:1 통신 | 1:1, 1:N, N:N 모두 지원 |
연결 지향: 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미.비연결 지향: 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신하는 방식을 의미.
SYN: Synchronization request.ACK: Acknowledgement of a message received.FIN: Finish request.RST: Reset request.
- 3 way handshake 는 TCP 통신을 연결할 때 사용하는 방식입니다.
- 클라이언트가 서버에게
SYN- 서버가 클라이언트에게
SYN+ACK- 클라이언트가 서버에게
ACK
- 4 way handshake 는 TCP 통신의 연결을 해제할 때 사용하는 방식입니다.
- 클라이언트가 서버에게
FIN- 서버가 클라이언트에게
ACK- 서버가 클라이언트에게
FIN- 클라이언트가 서버에게
ACK