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

여러 프로토콜들로 구성된 TCP/IP는 현재 산업 표준 프로토콜로 사용되고 있음.
TCP/IP 프로토콜의 필요성과 역할을 살펴볼 필요가 있음.

주요 용어

  • 인터넷 네트워킹 기술 :
    서로 떨어져 있는 수많은 네트워크를 연결하여 하나의 거대한 네트워크처럼 사용할 수 있도록 해주는 기술
  • DoD 모델 :
    미국방성에 사용한 컴퓨터 통신망 모델로 데이터링크, 인터넷, 전송, 프로세스 응용 계층으로 구성됨
  • TCP :
    IP 프로토콜위에서 연결형 서비스를 지원하는 전송계층 프로토콜
  • UDP :
    하부의 IP 프로토콜을 이용해 비연결형 서비스를 지원, 작지만 빠른 전송이 가능
  • 물리주소 :
    하나의 네트워크 내에서 호스트를 식별하는 물리적 하드웨어 주소
  • 인터넷 주소 :
    서로 다른 네트워크 간에 호스트를 식별하는 논리주소

TCP / IP 개념과 기본구조

TCP / IP의 등장

Internetworking Technology

  • 네트워크들을 상호 연결하는 기술
  • 서로 다른 네트워크에 연결되어 있는 컴퓨터 사이의 통신이 가능
  • DoD ARPA(Advanced Research Project Agency)

Transmission Control Protocol / Internet Protocol

  • TCP / IP Internet Protocol Suite
  • 1970년대 Robert Kahn과 Vinton Cerf 등에 의해 개발
  • 1982년 미군 컴퓨터 네트워킹의 표준으로 제정

DoD 모델(DARPA 모델)

DoD 모델 (DARPA 모델)

TCP / IP 기본 구조

TCP / IP 주요 특징

  1. 연결형 서비스 및 비연결형 서비스 제공
  2. 패킷 교환
  3. 동적 경로 할당
  4. 공통의 응용 프로그램 제공

TCP / IP 계층의 역할

  1. 데이터링크 계층
    • 네트워크 인터페이스
    • device driver와 interface card로 데이터 통신 처리
    • 대표적 프로토콜
      • ARP (Address Resolution Protocol) : IP 주소 -> 물리주소
      • RARP (Reverse ARP) : 물리주소 -> IP 주소
  2. 인터넷 계층
    • 네트워크상에서 패킷의 이동을 처리 (패킷 라우팅 등)
    • 대표적 프로토콜
      • IP : Internet Protocol
      • ICMP : Internet Control Message Protocol
      • IGMP : Internet Group Management Protocol
  3. 전송 계층
    • 호스트 컴퓨터 사이의 데이터 전송 서비스
    • 대표적 프로토콜
      • TCP : Transmission Control Protocol
      • UDP : User Datagram Protocol
  4. 응용 계층
    • 응용 프로세스를 위한 프로토콜
    • 대표적 프로토콜
    1. TCP 이용 :
      FTP, SMTP(Simple Mail Transfer Protocol), Telnet 등
    2. UDP 이용 :
      TFTP (Trivial FTP), DNS (Domain Name System), BOOTP (Bootstrap Protocol) 등
    3. IP 직접 이용 : traceroute 프로그램
    4. ICMP 직접 이용 : ping 프로그램

인터넷 주소

호스트 식별

  • 인터넷에 연결되어 있는 호스트 식별
  • 3가지 종류의 주소
    1. 물리주소 :
      네트워크내에서 호스트를 식별하는 물리적 하드웨어 주소로서 네트워크 인터페이스 주소
    2. 인터넷 주소 (IP 주소) :
      서로 다른 네트워크 간에 호스트를 식별하는 논리주소
    3. 포트 주소 :
      프로세스를 식별하는 포트 번호

IP 주소

IP 주소

포트 주소

  • 포트 번호 (port number)
    • TCP 및 UDP에 의해 응용 프로그램을 식별
    • 2바이트 (16비트)로 구성
    • FTP 서버 (TCP 21), TFTP (UDP 69), Telnet (TCP 23), SMTP (TCP 25)
    • 포트 주소의 구성
포트번호 사용처
0 사용되지 않음
1 ~ 255 well-known service
256 ~ 1023 기타 well-known service
1,024~4,999 임시 client 포트
5,000 ~ 65,535 사용자 정의 server

 

캡슐화

Encapsulation

  • 데이터에 각 계층의 제어정보를 추가하는 것
  • Service Data Unit + Protocol Control Information = Protocol Data Unit

Decapsulation

  • 수신측 시스템의 해당 계층에서 수행되는 캡슐화의 반대 과정
  • 물리 계층 이외의 모든 계층에서 수행됨

캡슐화
캡슐화


IP

개요

  • 인터넷 프로토콜 : OSI 모델의 네트워크 계층의 기능
  • 사용자에게 복잡한 인터넷의 개별 네트워크들의 구조를 숨겨
    모든 호스트들을 열결하는 1개의 가상 네트워크로 보이도록 함.
  • 네트워크 계층의 투명성(transparency)를 제공함
    송신자 호스트는 수신자 호스트까지 경유해야 하는
    데이터링크 및 라우터에 관한 물리적 세부 사항을 알지 못해도
    데이터그램을 전송할 수 있도록 해줌.

비연결(Connectionless) 서비스

  • 인터넷 계층의 투명성
    • IP 역할 : 호스트의 주소 지정 및 데이터그램 전송
    • 경유해야 하는 데이터 링크 및 라우터 정보를 무시
    • 신뢰성이 없는 데이터 전송

데이터그램

  1. 버젼 (4비트) : IP version 식별 번호
  2. 헤더길이 (4비트) : 20 ~ 60 bytes
    • 5 : 20 bytes
    • 15 : 60 bytes
    • (1 word = 4 bytes)
  3. 서비스 유형(8 비트) : QoS
    • 3 개 비트 : 우선순위
    • 4 개 비트 : 서비스 유형
      • 0000 : 기본
      • 0001 : 비용 최소
      • 0010 : 신뢰성 최대
      • 0100 : 처리량 최대
      • 1000 : 지연 최소
    • 1 개 비트 : 사용하지 않음
  4. 전체 길이 (16 비트) : 데이터그램 길이
  5. 식별자 (16 비트) : 데이터그램이 단편되었을 때 각 단편은 동일한 식별자를 가짐
  6. 플래그 (3 비트)
    • 1 개 비트 : 사용하지 않음
    • 1 개 비트 (DF)
      • 1 : More Fragment
      • 0 : Fragment
    • 1 개 비트 (MF)
      • 1 : More Fragmetn
      • 0 : 마지막 단편, 유일한 단편
  7. 단편 오프셋(13 비트) :
    메세지가 단편 되었을 때 데이터 그램 내의 데이터가 원래 메세지의 어느 위치에 있었는지 나타냄
  8. TTL (8bit) : Time To Live
    • 데이터그램이 폐기되기 전까지 활동 기간
    • 거쳐야 하는 최대 라우터 수를 나타내는데, 보통 두 호스트 사이의 라우터 수의 두 배로 설정함.
    • 라우터를 지날 때마다 1 씩 감소
    • 0이 되면 폐기됨.
  9. 프로토콜 (8 비트)
    • 상위계층 프로토콜 식별
      • '1' : ICMP
      • '6' : TCP
      • '17' : UDP
  10. 헤더 검사 합(16 비트)
    • 헤더만의 검사합

IP 단편화 (Fragmentation)

  • IP 데이터그램의 분할
  • MTU (Maximum Transfer Unit)
    • 네트워크 링크에서 허용하는 프레임당 데이터의 최대 길이
      • Ethernet LAN : MTU = 1,500 byte
      • CCITT X.25 : MTU = 128 byte
  • IP 데이터그램은 전송 중 각 네트워크의 MTU에 적합한 크기로 분할되었다가
    목적지 호스트에서 각 fragment들을 재조립함.

인터넷상에서의 라우팅

Routing

  • IP 데이터그램이 목적지 호스트까지 진행하면서 경유할 경로를 결정하는 것
  • 비교
    • IP :
      송신자, 수신자 그리고 그 사이의 경로 상에 있는 모든 라우터들이 IP 데이터그램 전달에 관여
    • TCP :
      송신자와 수신자만 TCP 세그먼트 전달에 관여

라우팅

라우팅 테이블

  • 호스트는 자신의 물리적 네트워크에 연결된 라우터에 대한 정보를 자신의 라우팅 테이블에 관리함

동일한 물리적 네트워크에서의 데이터그램 전송

다른 물리적 네트워크에서의 데이터그램 전송


요약

  1. TCP/IP는 OSI(Open System Interconnection) 모델이 제정되기 전에 개발된 DoD 모델에 기반하여 여러 프로토콜 집합으로 구성.
  2. TCP/IP 구조의 특징은
    연결형(connection-oriented)과 비연결형(connectionless) 서비스 제공, 패킷 교환, 동적 경로 할장, 공톨의 응용 프로그램 제공임.
  3. TCP/IP 프로토콜을 이용한 인터넷에서는 물리(링크)주소, 인터넷(IP) 주소, 포트 주소가 있으며
    인터넷 주소는 32비트로 구성되며 클래스 A, B, C, D, E로 나눈다.
  4. IP(Internet Protocol)는 TCP/IP의 인터넷 계층에서 동작하고, 네트워크 계층의 투명성을 제공함으로써
    송신자 호스트는 각 데이터그램이 수신자 호스트에 도착하기 위해 경유해야 하는 데이터 링크 및 라우터에 관한 물리적 세부 사항을 알지 못해도 인터넷 상에서 데이터 그램을 전송할 수 있도록 해 준다.
  5. 비연결 서비스는 각각의 패킷을 독립적으로 전송하기 때문에 서로 다른 경로를 통하여 전달될 수 있으므로 신뢰성을 보장할 수 없다.
  6. 데이터그램(datagram)은 IP 계층의 패킷으로 가변길이를 가지며 헤더와 데이터 부분으로 구성된다.
  7. IP 단편화는 데이터그램이 송신자로부터 수신자까지의 중간 네트워크를 경유할 대마다 각 중간 네트워크의 MTU에 적합한 세그먼트로 분할되는 것을 말한다.
  8. 라우팅(routing)은 IP 데이터그램이 목적지 호스트까지 진행하면서 경유할 경로를 결정하는 것으로
    전송 계층 프로토콜은 송신자와 수신자 호스트만이 TCP 세그먼트 전달에 관여하는 데 반해,
    네트워크 계층 프로토콜은 송신자, 수신자 및 송신자와 수신자 호스트의 경로 상에 있는 모든 라우터들이 IP 데이터그램 전달에 관여함.

 

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

 
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 - II  (0) 2022.06.12
OSI 참조 모델  (0) 2022.05.02

+ Recent posts