TCP와 UDP

갱두·2021년 10월 15일
0

📚 네트워크

목록 보기
4/15
post-custom-banner

TCP와 UDP는 TCP/IP의 전송계층에서 사용되는 프로토콜임

전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당함

두 프로토콜은 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만 서로 다른 특징을 가지고 있음

TCP의 UDP 차이점

TCP (Transmission Control Protocol)

TCP는 연결 지향형 프로토콜

UDP (User Datagram Protocol)

UDP는 데이터를 데이터그램 단위로 전송하는 프로토콜

TCP는 가상 회선을 만들어 신뢰성을 보장하도록 하는 프로토콜로 UDP에 비해 속도가 느린 편
즉, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용함

  • TCP : 파일 전송과 같은 신뢰성이 중요한 서비스
  • UDP : 스트리밍, RTP와 같이 연속성이 더 중요한 서비스에 사용
    • RTP : 실시간 전송 프로토콜로 IP 네트워크 상에서 오디오와 비디오를 전달하기 위한 통신 프로토콜

✔️ 하지만 UDP도 신뢰성을 UDP 자체에서 보장하지 않는 것이지 추가적인 정의를 통해 신뢰성을 보장받을 수 있음
✔️ TCP도 UDP에 비해 상대적으로 느린거지 최근 많은 기술의 발전으로 빨라짐

TCP란

TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로서 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스임.

TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메세지, 세그먼트라는 블록 단위) 안정적이고, 순서대로, 에러없이 교환 가능

특징

연결형 서비스

연결형 서비스로 가상 회선 방식을 제공함

  • 3-way handshake로 연결
  • 4-way handshake로 연결 해제

흐름 제어(Flow Control)

데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지함

  • 송신하는 곳에서 감당이 안되게 많은 데이터를 빠르게 보내서 수신하는 곳에 문제가 생기는 것을 방지
  • 수신자가 윈도우 크기값을 통해 수신량 결정 가능

혼잡 제어(Congestion control)

네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지함

  • 소통량이 과다하면 패킷을 조금만 전송

신뢰성있는 전송 (Reliable transmission)

정상적인 상황에서는 ACK 값이 연속적으로 전송되어야 함
➡️ 근데 ACK 값이 중복? -> 패킷 이상 감지 후 재전송 요청
➡️ 일정 시간 동안 ACK 값이 수신 ❌ -> 재전송 요청

전이중, 점대점 방식

✔️ 전이중 : 전송이 양방향
✔️ 점대점 : 2개의 end-point를 가지고 있음

⭕️ 유니캐스트 ⭕️ -> 일대일 통신
❌ 멀티캐스트, 브로드캐스트 ❌ -> 일대일, 일대다, 다대다 통신

출처 : https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4

profile
👩🏻‍💻🔥
post-custom-banner

0개의 댓글