TCP(Transmission Control Protocol, 전송 제어 프로토콜)

TCP 특징

  1. 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜
  2. TCP/IP 프로토콜이라고 부르기도 함
  3. 연결 기반이므로, 데이터를 전송하는 동안 수신자와 발신자 사이 연결을 설정하고 유지
  4. 데이터가 온전히 전송되도록 보장
  5. 1:1 통신

TCP 장점

  1. 운영체제와 독립적으로 작동하므로 시스템과 디바이스 간 상호 운용성이 향상됌
    • 클라이언트가 Windows 운영체제를 사용하고, 서버가 Linux 운영체제를 사용하고 있다고 가정할 때, 클라이언트와 서버의 통신에서 TCP 통신은 운영체제와 독립적으로 작동하므로, 안정적이고 일관된 통신을 가능하게 함.
  2. 데이터를 전송할 때 오류를 검사하여 전송된 데이터가 목적지에 온전히 도착하는 것을 보장
    • 타임아웃(Timeout) : 송신자가 패킷을 전송한 후 수신자에게 일정 시간 내에 확인 응답(ACK)를 받지 못했을 때데이터를 재전송하는 과정, 이 때 설정하는 시간이 타임아웃 시간
    • TCP에서 타임아웃이 발생하는 경우
      1. 패킷 손실: 패킷이 네트워크 상에서 손실되는 경우
      2. 응답 지연: 네트워크 트래픽이 너무 많거나 경로 상에 문제로 송신자에게 ACK가 도달하지 않은 경우
  3. 수신자의 용량에 따라 데이터를 전송하는 속도를 최적화하고 변경

TCP 단점

  1. 상당히 많은 대역폭을 사용, UDP보다 속도가 느림
  2. 전송 중 소량의 데이터라도 손실되면 다른 정보를 로드하지 못할 수 있음
  3. 근거리 통신망이나 개인 영역 네트워크에서 제대로 작동하지 않음

 

UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)

UDP 특징

  1. TCP에 비해 안정성은 떨어지지만 더 빠르고 간단
  2. 스트리밍이나 게임과 같이 빠른 속도가 중요한 상황에서 자주 사용
  3. 비연결 방식이므로 두 당사자 간에 사전 연결을 설정하지 않음, 그 과정에서 데이터가 손실될 가능성이 있지만, 훨씬 빠른 속도를 얻을 수 있음
  4. UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
  5. 1:1 or 1:N or N:N 통신

UDP 장점

  1.  작은 패킷을 더 적은 오버헤드로 전송하여 엔드투엔드 지연을 줄임
    • 패킷이 작은 이유
      1. UDP는 비연결형 프로토콜로, 데이터 전송 시 연결 설정 과정이 없고,
        각 패킷이 독립적으로 처리
      2. TCP 패킷 구조는 연결 설정 정보, 오류 검출, 데이터 순서 정보  다양한 제어
        정보가 포함
        되어 있어 크고 복잡
      3. UDP 패킷은 이러한 정보를 거의 포함하고 있지 않으므로 작고 간단
    • 오버헤드
      1. 데이터를 전송하기 위해 추가적으로 필요한 제어 정보나 부가적인 작업
      2. 오버헤드가 많을 수록 더 많은 데이터가 전송되거나 처리 시간이 길어짐
    • 엔드투엔드 지연
      1. 데이터를 송신자로부터 수신자까지 전달하는 데 걸리는 전체 시간
      2. UDP는 오류 검출이나 재전송 등의 복잡한 절차를 거치지 않기 때문에
        엔드투엔드 지연이 상대적으로 짧음
  2. 일부 패킷이 누락되더라도 데이터를 전송하므로 패킷 손실로 인해 전체 전송이 중단되지 않음
  3. 브로드캐스트 및 멀티캐스트 기능을 통해 하나의 UDP 전송을 여러 수신자에게 한번에 전송 가능
  4. 빠르고 효율적

UDP 단점

  1. 데이터 패킷이 목적지에 성공적으로 도달했는지 여부를 확인하지 않음
  2. 전송이 온전하게 도착한다고 보장할 수 없음, 패킷 손실 여부를 발신자측에서 확인 불가
  3. 라우터가 데이터 패킷의 우선순위를 정하는 경우, TCP 패킷을 먼저 전송할 가능성이 높음

 

패킷(Packet)

  • 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이 때, 이 조각을 패킷이라고 함

데이터그램

  • 독립적인 관계를 지니는 패킷

+ Recent posts