Description
논의
-
트랜스포트 계층과 네트워크 계층 간의 관계
-
데이터 손실이나 손상이 일어날 수 있는 매체에서 어떻게 두 개체가 신뢰적으로 통신할 수 있는가?
→ 이 문제를 해결하기 위해 사용하는 기술
-
트랜스포트 계층 개체들의 전송률을 제어하는 문제
세그먼트(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)
- GBN(Go-Back-N) : N부터 반복
- base
- nextseqnum
- 불필요한 재전송 데이터
- 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)
- 슬로 스타트(slow start)
- ssthreah(slow start threshold, 슬로 스타트 임곗값)
- 혼잡 회피(congestion avoidance)
- 빠른 회복(fast recovery)
가법적 증가, 승법적 감소(additive-increase, multiplicative decrease, AIMD)
- TCP는 3개의 중복 ACK 이벤트가 발생할 때까지 선형으로 그 혼잡 윈도 크기(결국 전송률)를 증가시킨다.
- 그러고 나서는 혼잡 윈도 크기를 감소시키지만,
- 다시 추가적인 가용 대역폭이 있는지를 탐색하기 위해 선형으로 증가시키기 시작한다.
공평성
- TCP
- UDP
@jung-woo-kim
3장 키워드들입니다! 추가하고 싶은 것들이 있다면 바로 추가 부탁드립니다 🥰