Skip to content

Chapter 3. 트랜스포트 계층 - 주요 키워드 정리 #5

Open
@eunaJung01

Description

@eunaJung01

논의

  1. 트랜스포트 계층과 네트워크 계층 간의 관계

  2. 데이터 손실이나 손상이 일어날 수 있는 매체에서 어떻게 두 개체가 신뢰적으로 통신할 수 있는가?

    → 이 문제를 해결하기 위해 사용하는 기술

  3. 트랜스포트 계층 개체들의 전송률을 제어하는 문제


세그먼트(segment)

  • 트랜스포트 계층 패킷
  • 출발지 포트 번호 필드(source port number field)
  • 목적지 포트 번호 필드(destination port number field)

데이터그램(datagram)

  • 네트워크 계층 패킷

Internet Protocol, IP

  • 최선형 전달 서비스(best-effort delivery service)
  • 비신뢰적인 서비스(unreliable service)

트랜스포트 계층 다중화(transport-layer mulitplexing)와 역다중화(demultiplexing)

  • 세그먼트(segment)
  • 소켓(socket)

비연결형 트랜스포트: UDP(User Datagram Protocol)

e.g., DNS


비연결형 다중화와 역다중화

  • UDP 소켓의 식별 : 목적지 IP 주소와 목적지 포트 번호

  • 회신 주소 : 출발지 포트 번호

  • 혼잡제어 X

  • UDP를 통한 신뢰적인 데이터 전송 방법?

  • UDP 체크섬(checksum)

  • UDP는 오류 검사를 제공하지만, 오류를 회복하기 위한 어떤 일도 하지 않는다.


신뢰적인 데이터 전송의 원리

  • 체크섬(checksum)

확인응답

  • 긍정 확인응답(ACK)
  • 부정 확인응답(NAK)

자동 재전송 요구(Automatic Repeat reQuest, ARQ) 프로토콜

= 전송 후 대기(stop-and-wait) 프로토콜

  • 오류 검출
  • 수신자 피드백
  • 재전송

얼터네이팅 비트 프로토콜(alternating-bit protocol)

비트 오류와 손실 있는 채널상에서의 NAK 없는 신뢰적인 데이터 전송
= 전송 후 대기(stop-and-wait) 프로토콜

  • 패킷의 순서 번호
  • 카운트다운 타이머(countdown timer)
  • 타임아웃

파이프라이닝(pipelining)

  • 이용률(utilization)

  • 오류 회복 방법

    • 윈도(window)
    • 슬라이딩 윈도 프로토콜(sliding-window protocol)
    1. GBN(Go-Back-N) : N부터 반복
      • base
      • nextseqnum
      • 불필요한 재전송 데이터
    2. SR(Selective Repeat) : 선택적 반복
      • 개별적인 재전송

연결지향형 트랜스포트: TCP(Transmission Control Protocol)

  • 연결지향형(connection-oriented)
  • 전이중 서비스(full-duplex service)
  • 점대점(point-to-point)

연결지향형 다중화와 역다중화

  • TCP 소켓의 식별 : 4개 요소의 집합
    • 출발지 IP 주소
    • 출발지 포트 번호
    • 목적지 IP 주소
    • 목적지 포트 번호

웹 서버

  • 프로세스와 연결 소켓, 스레드
  • 지속적인(persistent) HTTP
  • 비지속적인(non-persistent) HTTP

세 방향 핸드셰이크(three-way handshake)

  • 순서 번호

  • 확인응답 번호

    • 누적 확인응답(cumulative acknowledgment)
    • 피기백(piggybacked)
  • 페이로드(payload, 애플리케이션 계층 데이터)

  • 연결의 설정

    • SYN 비트
    • SYN 세그먼트
    • SYNACK 세그먼트
  • 연결의 종료

    • FIN 비트
  • 최대 세그먼트 크기(maximum segment size, MSS)

  • 최대 전송 단위(maximum transmission unit, MTU)

  • 송신 버퍼(send buffer), 수신 버퍼(receive buffer)


왕복 시간(round-trip time, RTT)

  • SampleRTT
  • EstimatedRTT
  • DevRTT
  • TimeoutInterval

신뢰적인 데이터 전송 서비스(reliable data transfer service)

  • 단일 재전송 타이머
  • 선택적 확인응답(selective acknowledgment)
  • 중복 ACK(duplicate ACK)

흐름 제어 서비스(flow-control service)

  • 수신 윈도(receive window)

혼잡 제어(congestion control)

  • 종단 간의 혼잡 제어
    • TCP 세그먼트 손실
    • 증가하는 왕복 지연값
  • 네트워크 지원 혼잡 제어
    • 명시적 혼잡 알림(Explicit Congestion Notification, ECN)

TCP 혼잡 제어 알고리즘

  • 혼잡 윈도(congestion window)
  • 자체 클로킹(self-clocking)
  1. 슬로 스타트(slow start)
    • ssthreah(slow start threshold, 슬로 스타트 임곗값)
  2. 혼잡 회피(congestion avoidance)
  3. 빠른 회복(fast recovery)

가법적 증가, 승법적 감소(additive-increase, multiplicative decrease, AIMD)

  1. TCP는 3개의 중복 ACK 이벤트가 발생할 때까지 선형으로 그 혼잡 윈도 크기(결국 전송률)를 증가시킨다.
  2. 그러고 나서는 혼잡 윈도 크기를 감소시키지만,
  3. 다시 추가적인 가용 대역폭이 있는지를 탐색하기 위해 선형으로 증가시키기 시작한다.

공평성

  • TCP
  • UDP

@jung-woo-kim
3장 키워드들입니다! 추가하고 싶은 것들이 있다면 바로 추가 부탁드립니다 🥰

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationkeywordsTop Topic of this book

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions