Transport layer services

이태곤·2023년 10월 13일
0

컴퓨터망

목록 보기
10/32
post-thumbnail

1. Transport services and protocols

  • Transport Layer: 데이터 송수신 역할을 담당하며, 논리적인 종단 간 통신을 제공하고 데이터 전송의 신뢰성과 효율성을 확보하기 위한 역할을 가진다.
    • 논리적 통신: 서로 다른 호스트 간의 통신을 직접 연결된 것처럼 논리적으로 수행하는 통신 방식
    • End-to-End 통신: Transport Layer에서 논리적으로 이루어진다.
      • 데이터의 신뢰성, 보안 및 효율성을 확보하기 위해 설계되며, 데이터의 송신과 수신은 최종 종단 시스템 간에서 처리된다.
        → 중간 라우터, 스위치, 또는 다른 네트워크 장비가 데이터를 검사, 수정, 또는 처리하지 않음으로써, 중간에 있는 네트워크 장비나 서버의 장애 또는 문제로부터 보호할 수 있다.
      • Send side: 어플리케이션 계층에서 받은 메시지를 세그먼트로 분할
      • Rcv side: 네트워크 계층에서 받은 세그먼트를 재조립
  • 프로토콜 종류

    1. TCP (Transmission Control Protocol)
      • Reliable(신뢰성): 데이터가 손실되거나 손상될 경우 데이터를 재전송하거나 오류 복구를 시도하여 완전한 데이터 전달을 보장
      • In-Order delivery(순서 보장): 패킷에 번호를 부여하여 전송한 순서대로 수신 측에 전달
      • Congestion control(혼잡 제어): 전송 속도를 조절하여 네트워크 부하를 조절
      • Flow control(흐름 제어):수신 측이 처리할 수 있는 속도로 데이터를 전송하도록 조절하여 버퍼 오버플로우 등으로 인한 패킷 손실을 방지
      • Connection setup (연결 설정) : 연결 지향 프로토콜로, 통신 시작 시 세션을 수립하고 통신을 마치면 세션을 종료
        → 데이터 전송에 대한 안정성 보장

    2. UDP(User Datagram Protocol)
      • Unreliable(신뢰성 없음): 데이터 손실 및 손상에 대해서 보장 또는 복구를 진행하지 않는다.
      • Unordered delivery: 패킷의 전송 순서와 상관없이 수신 측에 전달
      • Connection-less: 별도의 연결 설정 절차 없이 호스트 간에 패킷을 주고 받는다.
      • 낮은 오버헤드: 더 간단한 헤더 구조를 가지고 있고, connection-less하기 때문에 오버헤드가 적다.
        → 대역폭↓, 데이터 전송↑
      • 실시간 통신: 데이터의 빠른 전달을 지향하므로 실시간 음성 및 비디오 스트리밍과 같은 응용 프로그램에 적합하다.

2. Multiplexing and demultiplexing

  • Multiplexing: 송신 측에서 발생하는 과정으로, 다수의 소켓으로부터 수집한 데이터를 하나의 세그먼트로 묶어서 네트워크 계층으로 전달한다.
    이때 세그먼트는 패킷을 형성하며, 패킷에는 헤더 정보가 추가된다.
  • Demultiplexing: 수신 측에서 발생하는 과정으로, 수신받은 데이터 패킷의 헤더 정보를 확인한다.
    헤더 정보를 사용하여 데이터 패킷을 올바른 응용 계층의 소켓으로 전달한다.
  • TCP 및 UDP는 데이터 통신에서 호스트 간에 세그먼트(데이터그램)를 주고받을 때 IP 주소와 포트 번호를 사용한다.


3. Connectionless demultiplexing & Connection-oriented demultiplexing

  • Connectionless demultiplexing: UDP에서 사용하는 비연결형 역다중화 방법

    • Sender: 비연결형 특성 때문에 데이터를 보낼 때 source IP / port number와 상관없이 목적지 IP 주소와 포트 번호를 설정하여 데이터를 캡슐화 & 전송
    • Receiver: UDP 헤더의 목적지 포트 번호를 검사하여 해당 패킷을 올바른 소켓에 전달 (demultiplexing)
    • 간단하면서 빠른 데이터 전송 방식이며, 연결 설정 및 연결 종료와 같은 복잡한 절차를 필요로 하지 않는다.
  • Connection-oriented demultiplexing: TCP에서 사용하는 연결 지향형 역다중화 방법

    • TCP는 신뢰성을 제공하기 위해 패킷을 보내는 송신자와 패킷이 도착해야 하는 대상을 모두 식별할 수 있도록 source IP 주소와 포트, 그리고 destination IP 주소와 포트 모두 필요하다.
    • 하나의 서버는 여러 개의 TCP 소켓을 가질 수 있다.
    • TCP 소켓에 포함되어있는 4가지 튜플
    1. source IP Address: 패킷을 보내는 송신자의 정보를 식별하는 데 사용
    2. source Port number
    3. destination IP Address: 패킷이 도착해야 하는 대상을 식별하는 데 사용
    4. destination Port number

0개의 댓글