CS
devjingood
2025. 3. 12. 01:13
2025. 3. 12. 01:13
TCP(Transmission Control Protocol, 전송 제어 프로토콜)
TCP 특징
- 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜
- TCP/IP 프로토콜이라고 부르기도 함
- 연결 기반이므로, 데이터를 전송하는 동안 수신자와 발신자 사이 연결을 설정하고 유지
- 데이터가 온전히 전송되도록 보장
- 1:1 통신
TCP 장점
- 운영체제와 독립적으로 작동하므로 시스템과 디바이스 간 상호 운용성이 향상됌
- 클라이언트가 Windows 운영체제를 사용하고, 서버가 Linux 운영체제를 사용하고 있다고 가정할 때, 클라이언트와 서버의 통신에서 TCP 통신은 운영체제와 독립적으로 작동하므로, 안정적이고 일관된 통신을 가능하게 함.
- 데이터를 전송할 때 오류를 검사하여 전송된 데이터가 목적지에 온전히 도착하는 것을 보장
- 타임아웃(Timeout) : 송신자가 패킷을 전송한 후 수신자에게 일정 시간 내에 확인 응답(ACK)를 받지 못했을 때데이터를 재전송하는 과정, 이 때 설정하는 시간이 타임아웃 시간
- TCP에서 타임아웃이 발생하는 경우
- 패킷 손실: 패킷이 네트워크 상에서 손실되는 경우
- 응답 지연: 네트워크 트래픽이 너무 많거나 경로 상에 문제로 송신자에게 ACK가 도달하지 않은 경우
- 수신자의 용량에 따라 데이터를 전송하는 속도를 최적화하고 변경
TCP 단점
- 상당히 많은 대역폭을 사용, UDP보다 속도가 느림
- 전송 중 소량의 데이터라도 손실되면 다른 정보를 로드하지 못할 수 있음
- 근거리 통신망이나 개인 영역 네트워크에서 제대로 작동하지 않음
UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)
UDP 특징
- TCP에 비해 안정성은 떨어지지만 더 빠르고 간단
- 스트리밍이나 게임과 같이 빠른 속도가 중요한 상황에서 자주 사용
- 비연결 방식이므로 두 당사자 간에 사전 연결을 설정하지 않음, 그 과정에서 데이터가 손실될 가능성이 있지만, 훨씬 빠른 속도를 얻을 수 있음
- UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
- 1:1 or 1:N or N:N 통신
UDP 장점
- 더 작은 패킷을 더 적은 오버헤드로 전송하여 엔드투엔드 지연을 줄임
- 패킷이 작은 이유
- UDP는 비연결형 프로토콜로, 데이터 전송 시 연결 설정 과정이 없고,
각 패킷이 독립적으로 처리
- TCP 패킷 구조는 연결 설정 정보, 오류 검출, 데이터 순서 정보 등 다양한 제어
정보가 포함되어 있어 크고 복잡
- UDP 패킷은 이러한 정보를 거의 포함하고 있지 않으므로 작고 간단
- 오버헤드
- 데이터를 전송하기 위해 추가적으로 필요한 제어 정보나 부가적인 작업
- 오버헤드가 많을 수록 더 많은 데이터가 전송되거나 처리 시간이 길어짐
- 엔드투엔드 지연
- 데이터를 송신자로부터 수신자까지 전달하는 데 걸리는 전체 시간
- UDP는 오류 검출이나 재전송 등의 복잡한 절차를 거치지 않기 때문에
엔드투엔드 지연이 상대적으로 짧음
- 일부 패킷이 누락되더라도 데이터를 전송하므로 패킷 손실로 인해 전체 전송이 중단되지 않음
- 브로드캐스트 및 멀티캐스트 기능을 통해 하나의 UDP 전송을 여러 수신자에게 한번에 전송 가능
- 빠르고 효율적
UDP 단점
- 데이터 패킷이 목적지에 성공적으로 도달했는지 여부를 확인하지 않음
- 전송이 온전하게 도착한다고 보장할 수 없음, 패킷 손실 여부를 발신자측에서 확인 불가
- 라우터가 데이터 패킷의 우선순위를 정하는 경우, TCP 패킷을 먼저 전송할 가능성이 높음
패킷(Packet)
- 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이 때, 이 조각을 패킷이라고 함
데이터그램