TCP/IP는 간단한 메세지 전송에는 유리하지만, 신뢰성 있는 전송을 보장하지 않는 UDP와 호스트 간의 신뢰성 있는 전송을 제공하는 TCP 전송 계층 프로토콜이 있음.

주요 용어

  • UDP :
    TCP/IP 응용 계층과 IP 계층 사이에 있으며, 비연결성과 비신뢰적 특징을 갖는 전송 계층의 프로토콜
  • 가짜 헤더 :
    UDP 데이터그램이 정확하게 목적지에 도착했는지를 인증하기 위해 사용되는 12바이트 정보
  • UDP 포트 :
    UDP를 사용하는 응용프로그램을 식별하기 위해 사용하는 포트 번호
  • TCP :
    TCP/IP에서 신뢰성이 보장되는 데이터 전송 서비스로 데이터 전송 이전에 먼저 연결이 설정되어야 함
  • 세그먼트 :
    TCP가 절단하여 전송하는 데이터로 20 ~ 60 바이트의 헤더와 응용 프로그램의 데이터로 구성

UDP

정의

  • User Datagram Protocol
    • 전송 계층 프로토콜
      • process-to-process protocol
        • IP : host-to-host protocol
    • 비연결성과 비신뢰성
    • 기본적인 IP 데이터 전달 서비스에 프로세스 간 통신이 추가된 형태
    • 연결성 보장과 신뢰적 전송에 소요되는 오버헤드가 없음
    • 간단한 메세지를 송수신하는 데 유리

UDP 비연결형 서비스

응용 프로세스의 데이터 전송

  • 응용 프로세스는 다음 프로토콜을 이용하여 데이터를 다른 응용 프로세스로 전송할 수 있음
    • UDP : 비연결형, 비신뢰성 전송 서비스
    • TCP : 연결형, 신뢰성 전송 서비스
  • 포트 번호 사용 : 프로세스들을 구별하기 위함

UDP의 특징

  • UDP = 비연결형 IP 전달 서비스 + 검사합(checksum) 기능
  • 최종 목적지의 데이터 수신 여부를 확인하지 않음
    • 데이터 손실 가능성
  • 메세지의 도착 순서를 재조정하지 않음
    • 데이터의 순서가 틀릴 가능성
  • 호스트 사이에 데이터 흐름 제어 없음
    • 수신자 처리 용량을 초과하는 데이터 발생 가능성

UDP의 장단점

  • 장점 : TCP보다 데이터 전송 속도가 빠르고 응용 프로그램이 간단해짐.
  • 단점 : UDP를 사용하는 응용 프로그램은 메세지 손실, 중복 수신, 수신지연, 잘못된 순서 등을 처리하기 위한 신뢰성 제어 기능을 제공해야 함.

UDP 사용자 데이터그램

  1. UDP 발신 포트 (16 비트) : 발신지 프로세스 포트 번호
  2. UDP 목적지 포트 (16 비트) : 목적지 프로세스 포트 번호
  3. UDP 전체 길이 (16 비트) : 데이터 그램 전체 길이
    (= 헤더 길이 + 데이터 길이)
  4. UDP 검사합 (16 비트) : 데이터그램 전체의 오류 검사용

UDP 가짜 헤더 (pseudo header)

  • UDP 데이터그램이 정확히 목적지에 도착하였는지를 2중으로 인증하기 위함 (IP 주소 확인, 오류 검증(검사합))
    UDP 헤더는 단지 포트번호만 가지고 있고 IP 주소 정보는 없음

UDP 포트 번호

  • Process-to-process 통신
  • UDP Well-known Ports

TCP

전송제어 프로토콜

  • Transmission Control Protocol
  • 전송 계층 프로토콜
    • process-to-process protocol
  • 연결 지향(conntection-oriented) 전송 서비스
    • 연결 설정 - 데이터 전송 - 연결 해제
    • TCP 연결 식별자 :
      • 송신측 TCP 종점 주소
      • 수신측 TCP 종점 주소
  • 신뢰성
    • 흐름제어 (sliding window protocol)
    • 오류제어 (응답 패킷, 시간 초과, 재전송 방식)
  • 신뢰성이 요구되는 응용
    • UDP : 응용 프로그램에서 신뢰성 보장
    • TCP : 전송계층(TCP)에서 신뢰성 보장
  • 방대한 양의 데이터 전송 -> TCP 사용
    • 간단한 메세지 송수신 -> UDP 사용

신뢰성 제공

  • 신뢰성 제공 방법
    • 연결 지향(connection-oriented) 데이터 전송
    • Segment 단위 전송 (MMS : Maximum Segment Size)
    • 흐름 제어(flow control : sliding window 사용)
    • 오류 제어(응답 패킷, 시간 초과, 재전송 방식)
      • 타이머 관리
      • Checksum, 순서 보장, 중복 패킷 방지

TCP 세그먼트 형식

  • TCP Segment
  • TCP Segment 헤더
    1. 발신지 포트 (2 bytes) :
      발신지 TCP 사용자 프로세스 식별
    2. 목적지 포트 (2 bytes) :
      목적지 TCP 사용자 프로세스 식별
    3. 순서 번소 (sequence number; 4 bytes) :
      데이터 필드의 첫 번째 데이터 바이트의 순서 번호
    4. 응답 번호 (ACK number; 4 bytes) :
      • 송신측으로부터 받은 세그먼트에 대한 응답
      • 바로 다음에 받기를 기대하는 순서 번호를 의미
        예) 순서 번호가 x인 세그먼트를 수신하면 응답 번호는 x + 1을 사용함
    5. 헤더 길이 (HLEN; 4 bits) :
      • 4 바이트 단위로 표시되는 헤더릐 길이
      • 5 ~ 15 사이의 값 (20 ~ 60 바이트)
    6. 예약 (Reserved; 6 bits)
    7. 제어 (flag bits; 6 bits)
      1. URG : 긴급 포인터 (urgent pointer) 필드가 유효함을 표시
      2. ACK : 응답 번호가 유효함을 표시함
      3. PSH : 가능한 빨리 현재 세그먼트를 상위 계층에 전달해야 함.
      4. RST : 연결을 초기화하기 위해 순서번호를 동기화 시킴.
      5. SYN : 연결을 초기화하기 위해 순서번호를 동기화 시킴.
      6. FIN : 연결을 해제시키기 위해 현재 세그먼트가 마지막 데이터임을 표시함.
    8. 윈도우 크기 (window size; 2 byts) :
      흐름 제어를 위한 윈도우의 크기를 명시 (최대 크기 = 2 ^ 16 [= 65,535 바이트])
    9. 검사 합 (checksum; 2 bytes) : 오류 제어를 위한 검사합 부분
    10. 긴급 포인터 (urgent pointer; 2 bytes) :
      URG flag = 1 일때, 긴급 데이터의 마지막 바이트의 순서 번호 = 긴급 포인터 + 순서 번호
    11. 옵션 (option; 0 ~ 40 bytes)
      • Maximum Segment Size (MSS)
      • 윈도우 크기를 증가시키기 위한 값
      • time stamp 등

TCP 연결형 서비스

TCP 연결

  • TCP 종점 (endpoint) 식별자 [= socket address]
    • 호스트 IP 주소와 포트 번호로 정의
    • 예 : A와 B 사이의 TCP 연결
      (211.110.34.15, 1234) 및 (163.100.21.67, 20)
      port numbers 1234 : client
      port numbers 20 : FTP Server
  • 전이중(full-duplex) 데이터 전송 서비스
  • TCP 연결 설정
    • 3-way handshaking
    • 초기 순서 번호 (ISN : Initial Sequence Number)
      • 난수 발생기
      • 양 방향이 서로 다른 ISN을 사용함
  • TCP 연결 종료

요약

  1. UDP(User Datagram Protocol)는 TCP/IP 응용 계층과 IP 계층 사이에 있으며, 비연결성과 비신뢰적 특징을 갖는 전송 계층의 프로토콜로 간단한 메세지를 송/수신하는데 유리
  2. UDP는 신뢰성이 없는 비연결형 전송 서비스를 제공, 전송한 메세지가 최종 목적지에 수신되었는지를 확인하지 않고, 메세지의 도착 순서를 재조정하지 않으며, 피드백(feedback) 메커니즘을 제공하지 않음
  3. UDP는 최소한의 신뢰성을 위한 오류제어 메커니즘으로 검사합(checksum) 기능을 옵션으로 제공하고 가짜 헤더를 사용하여 UDP 데이터그램이 정확하게 목적지에 도착했는지를 이중으로 인증함
  4. UDP는 TCP와 비교하여 데이터 전송속도가 빠르고 응용프로그램이 간단해지는 장점이 있지만,
    응용프로그램은 메세지 손실, 중복 수신, 수신지연, 잘못된 순서 등을 위한 별도의 신뢰성 제어 기능을 제공해야함
  5. TCP(Transmission Control Protocol)는 TCP/IP에서 신뢰성이 보장되는 데이터 전송 서비스로 데이터 전송 이전에 먼저 연결이 설정되여야 하며, 흐름제어를 위해 슬라이딩 윈도우 프로토콜을 이용하고, 오류제어를 위해 확인 응답 패킷, 시간 - 초과, 그리고 재전송 방식을 이용함
  6. TCP는 신뢰성이 있는 연결형(connection-oriented) 데이터 전송 서비스를 제공하여 발신지 호스트의 프로세스와 목적지 호스트의 프로세스 사이에 연결(connection)이라는 논리적인 관계를 설정하고 목적지로 전송할 데이터 전송에 알맞는 최대 세그먼트 크기로 절단하여 전송
  7. TCP 사용자가 데이터를 전송하기 전에 발신지와 목적지 간에 가상경로를 설정하고 TCP의 모든 세그먼트들을 가상 경로를 통하여 전송함.
    데이터 전송이 끝나면 이를 해제하여 전체 메세지를 하나의 단일 가상경로를 이용하여 전송함으로써 손상 또는 손실된 세그먼트의 재전송 뿐만 아니라 확인 응답의 처리도 가능

 

출처 : 방송통신대 강의 자료실 정보통신망 강의록

 
728x90
반응형

'Computer Science > Network' 카테고리의 다른 글

LAN; 근거리 통신망 - II  (0) 2022.06.12
LAN; 근거리 통신망 - I  (0) 2022.06.12
TCP/IP - III  (0) 2022.06.12
TCP/IP - I  (0) 2022.06.12
OSI 참조 모델  (0) 2022.05.02

+ Recent posts