[네트워크] TCP UDP

기석·2022년 6월 12일
0

네트워크

목록 보기
3/4

전송 계층


송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층.
IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어 담당

전송 계층에서 데이터를 전달하기 위해 사용하는 프로토콜이 TCP와 UDP

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


장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스
패킷을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다.

특징

  • 연결형 서비스로 가상 회선 방식을 제공한다.
    • 3-way handshaking 과정을 통해 연결을 설정
    • 4-way handshaking 과정을 통해 연결을 해제
  • 흐름 제어
    • 송신자의 데이터 전송 속도를 조절하여 수신자의 버퍼 오버플로우를 방지
    • 흐름 제어 기법 중 하나인 Sliding Window를 사용해 수신자의 버퍼에 남은 공간만큼 데이터를 전송
  • 혼잡 제어
    • 네트워크 내의 패킷 수가 넘쳐 네트워크를 혼잡하게 만드는 것을 방지
  • 높은 신뢰성
    • 송신 측에서 보낸 패킷을 수신 측에서 받지 못하면 재전송
      • Dup ACK-based retransmission: 송신 측에서 여러 개의 세그먼트를 전송했는데, 수신된 세그먼트의 순서가 틀렸을 경우, 수신 측에서 다시 보내달라는 의미로 ACK를 보냄
        송신 측에서 동일한 ACK를 3개 이상 받았을 경우 해당 패킷이 손실되었다고 판단,
        재전송 요청함
    • Timeout-based retransmission: 송신자가 일정 시간 내에 수신자로부터 ACK를 받지 못하면 손실되었다고 판단, 재전송을 요청한다.
  • 전이중, 점대점 방식
    • 전이중: 데이터 전송의 흐름 방향이 항상 양 방향으로 동시에 전송 가능
    • 점대점: 각 연결이 정확히 2개의 종단점을 가지고 있음

전이중, 반이중, 단방향 통신

  • 전이중 통신. 두 디바이스 간 통신선이 두 개 (송신선, 수신선)
  • 송신선과 수신선이 각각 존재하므로 데이터 송수신을 동시에 할 수 있다.
  • 반이중 통신. 두 디바이스 간 통신선이 하나.
  • 한쪽 디바이스에서 송신과 수신 모두 가능하다.
  • 하나의 통신선으로 송신과 수신을 해야 하므로 송수신을 동시에 할 수 없다.
  • 한쪽이 송신 시 다른 쪽에서는 수신만 가능하다.
  • 단방향 통신. 두 디바이스 간 통신선이 하나.
  • 송신측과 수신측이 미리 정해져 있어 한쪽으로만 전송 가능

단점

  • 데이터를 보내기 전에 반드시 연결이 형성되어야 함
  • 1:1 통신만 가능
  • 고정된 통신 선로가 최단선이 아닐 경우 UDP 통신보다 데이터 전송 속도가 느릴 수 있음

TCP 헤더 정보


TCP 제어비트(Flag Bit) 정보

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


  • 데이터를 데이터그램 단위로 처리
    • *데이터그램: 독립적인 관계를 가지는 패킷
  • 비 연결 지향적 프로토콜
    • 비 연결 지향적: 연결을 위해 할당되는 논리적 경로가 없다.
    • 각각의 패킷은 다른 경로로 전송되어 독립적인 관계를 지닌다.

특징

  • 비 연결형 서비스로 연결 없이 통신이 가능하며 데이터 그램 사용
  • 정보를 주고 받을 때, 정보를 보내거나 받는다는 신호 절차를 거치지 않음
  • 신뢰성 없는 데이터를 전송
  • 패킷 관리가 필요
  • 패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점이 있음
  • 상대적으로 TCP보다 전송속도가 빠름

TCP에 비한 장점

  • TCP는 신뢰성을 보장하지만 연결을 통해 시간 손실 발생 가능
  • TCP는 패킷이 누락되면 재전송을 해야함
  • 사진, 영상같은 데이터의 부분 누락에 민감하지 않은 곳에 사용하기 좋다.
  • 1:1, 1:N, N:N 통신 모두 가능

단점

  • 데이터의 신뢰성이 없다.
  • TCP와는 다르게 데이터를 쪼개주지 않아 애플리케이션 레벨에서 패킷을 쪼개야 한다.

UDP 헤더 정보

TCP와 UDP 비교


공통점

  • 포트 번호를 이용하여 주소를 지정
  • 데이터 오류 검사를 위한 체크섬 존재

차이점

주된 차이는 신뢰성과 속도다.

출처
https://github.com/alstjgg/cs-study/blob/main/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/TCP%20%26%20UDP.md
https://hydroponicglass.tistory.com/280

profile
블로그 이사갔어요 https://kiseoky.tistory.com

0개의 댓글