TCP란?
Transmission Control Protocol의 약자로 전송을 제어하는 규약이라는 뜻
Internet 상에서 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 규약
TCP는 패킷(Packet)을 추적 및 관리하고 IP 는 데이터의 배달을 처리한다.
패킷(Packet)
인터넷 내에서 데이터 전송을 위한 라우팅을 효율적으로 하기 위해 나누어진 조각들을 뜻한다.
TCP의 동작 과정
TCP는 3단계의 과정을 거쳐 연결을 설정하고, 데이터를 전송한 후 연결을 종료합니다.
- 연결 설정 (3-way handshake)
- SYN: 초기 연결 요청
- SYN + ACK: 연결 요청 수락 및 응답
- ACK: 최종적으로 연결 완료
- 데이터 전송
- 데이터 패킷 전송 및 수신 확인 (ACK)
- 연결 종료 (4-way handshake)
- FIN: 연결 종료 요청
- ACK: 연결 종료 응답
- FIN: 연결 종료 확인
- ACK: 연결 완전히 종료
TCP 단점
- 데이터로 보내기 전에 반드시 연결이 되어야 함.
- 1:1 통신만 가능
- 고정된 통신 선로가 최단선이 아닐 경우 상대적으로 UDP보다 데이터 전송속도가 느리다.
TCP 특징
- 연결형(connection-oriented) 서비스로 연결이 성공해야 통신이 가능하다.
- 데이터의 경계를 구분하지 않는다.(byte stream service)
- 데이터의 전송 순서를 보장한다. 데이터의 순서유지를 위해 각 바이트마다 번호가 부여됨.
- 신뢰성 있는 데이터를 전송한다.(Sequence Number, Ack Number)
Sequence Number : TCP 세그먼트의 연속된 데이터 번호
Ack Number : 상대방으로부터 받아야하는 다음 TCP 세그먼트 데이터 번호 - 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(패킷 수가 과도하게 증가하는 것 방지)
- 연결의 설정(3-way handshaking), 해제(4-way handshacking)
UDP란?
UDP(User Datagram Protocol)는 전송계층의 비연결 지향적 프로토콜을 뜻한다.
비연결 지향적이란 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신하는 방식을 의미한다.
간단하게 TCP의 모든 신뢰성 기능이 없다고 보면 된다.
상대와 접속했고, 전송속도를 설정했으면 데이터를 전송하기만 한다. 받는 쪽에서 데이터를 제대로 받고 있는지조차도 신경 쓰지 않는다.
신뢰성이 보장되지 않기 때문에 UDP로 데이터를 보내면 손실되는 데이터가 발생할 수 있다. 하지만 동영상이나 온라인 게임 같은 경우를 생각할 때 데이터가 심하게 손실됐다면 화면이 깨지거나 안 나올 수도 있지만, 데이터 몇 개 소실되어봤자 전체 화면에서 일부 구역이 제대로 안나오는 수준에 불과하다. 그렇기 때문에 실시간 스트리밍이나 온라인 게임 경우에 주로 사용한다.
UDP 단점
- 데이터의 신뢰성이 없다.
- 의미있는 서버를 구축하기위해서는 일일이 패킷을 관리해주어야 한다.
UDP 특징
- 비연결형 서비스로 연결 없이 통신이 가능하며 데이터그램 방식을 제공한다.데이터그램 방식
ㆍ데이터그램 방식은 데이터 전송 전에 송/수진자 사이에 가상 회선이라 불리는 논리적 경로를 설정하지 않고, 패킷들이 각기 독립적으로 전송되는 방식이다. (주로 OSI7계층 중 네트워크 계층에서 사용) - 데이터 경계를 구분한다. (데이터그램 서비스)
- 정보를 주고 받을때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- 신뢰성 없는 데이터를 전송한다.
- 패킷관리가 필요하다.
- 패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점.
- 상대적으로 TCP보다 전송속도가 빠르다.
TCP와 UDP 비교
TCP
TCP는 데이터를 순차적으로 전송하므로 더 많은 흐름 제어를 사용한다. 이는 연결을 더 안전하고 원활하게 만들지만, 발신자와 수신자 간의 많은 앞뒤 통신으로 인해 속도가 느려지게 한다.
UDP
UDP는 사용자가 데이터 재전송을 허용하거나 수신을 승인할 필요가 없기 때문에 속도 면에서 이점이 있다. 따라서 UDP는 연결을 더 빠르게 설정하고 데이터를 더 빠르게 전송할 수 있다. 하지만 이로 인해 UDP가 실제로 얼마나 안전한지에 대한 우려가 제기되기도 한다.
TCP/UDP 공통점과 차이점
프로토콜 종류 | TCP | UDP |
연결방식 | 연결형 서비스 | 비연결형 서비스 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 전송 순서 보장 | 전송 순서 변경 가능 |
수신 여부 확인 | 수신 여부를 확인 | 수신 여부 비확인 |
통신 방식 | Point to Point(1:1) | N:N 통신 |
신뢰성 | 높다 | 낮다 |
속도 | 느리다 | 빠르다 |
'TIL > CS' 카테고리의 다른 글
프로세스와 프로세서의 차이 (0) | 2024.03.24 |
---|---|
DBMS 발전 과정 (0) | 2024.03.21 |
데이터베이스 시스템(DBMS) 개요 (0) | 2024.03.21 |
데이터베이스(DB) 개요 (0) | 2024.03.20 |
Process Management (0) | 2024.03.19 |