바쁘다 바빠 현대사회라서 이번주가 쉬는 주간인 줄 알았다가 기분이 이상해서 다시 들어와서 다급하게 해결하는 4주차
2024.07.22 ~ 2024. 07.28
(04-1) 확인 문제 1번(p.206)
IP는 신뢰할 수 없는 비연결 전송을 수행함.
전송 계층은 이를 보완하면 프로토콜(TCP)를 제공함
(04-1) 확인 문제 2번(p.225)
TCP는 SYN 세그먼트, SYN+ACK 세그먼트, ACK 세그먼트를 주고받는 쓰리 웨이 핸드셰이크를 통해 연결을 수립함
맥 기준 작업 관리자에서 프로세스별 PID 확인하는 방법
ps -ax
네트워크 계층과 응용 계층 사이에 위치한 전송 계층은 신뢰할 수 있는 통신과 연결형 통신을 가능하게 해서 이러한 IP의 한계를 극복하고, 포트 번호를 통해 응용 계층의 애플리케이션 프로세스들을 식별하는 역할을 수행함
신뢰할 수 없는 통신
은 IP 프로토콜이 패킷이 수신지까지 제대로 전송되었다는 보장을 하지 않는 특징. 최선형 전달
비연결형 통신
은 송수신 호스트 간의 사전 연결 수립 작업을 거치지 않는 특징
IP의 한계를 보완하는 전송 계층
[1] 전송 계층은 연결형 통신을 가능하게 함
[2] 전송 계층은 신뢰성 있는 통신을 가능하게 함
응용 계층과의 연결다리, 포트
응용 계층과의 연결 다리 역할로서의 전송 계층을 살펴보면, 포트가 무엇인지 부터 이해해야 함
포트
포트(port)
NAT : IP 주소를 변환하는 기술.
NAT 변환 테이블 : 변환을 위해 주로 사용되는 것
NAPT
포트 기반의 NAT를 NAPT라고 하고 APT 라고 부르기도 함
NAPI는 포트를 활용해 하나의 공인 IP 주소를 여러 사설 IP 주소가 공유할 수 있도록 하는 NAT 일종
TCP 통신 단계와 세그멘트 구조
TCP는 통신(데이터 송수신)하기 전에 연결을 수립하고 통신이 끝나면 연결을 종료함. TCP의 연결 수립과 종료를 이해하려면 가장 먼저 MSS 단위와 TCP의 세그먼트 구조를 이해해야 함
제어 비트
기본적으로 8비트로 구성
순서 번호와 확인 응답 번호
순서 번호 필드와 확인 응답 번호 필드는 TCP의 신뢰성을 보장하기 위해 사용되는 종요한 필드
TCP 연결 수립과 종료
연결 수립: 쓰리 웨이 핸드셰이크
세 개의 단계로 이루어진 TCP 연결 수립 과정
처음 연결을 시작하는 호스트의 연결 수립 과정 액티브 오픈
연결 종료
쓰리 웨이 핸드셰이크를 통해 연결을 수립한 뒤 데이터 송수신이 끝난 후 연결을 종료함. 송수신 호스트가 각자 한번씩 FIN과 ACK를 주고받으며 이루어짐
TCP 상태
상태(state)는 현재 어떤 통신 과정에 있는지를 나타내는 정보
TCP는 상태를 유지하고 활용한다는 점에서 스테이풀 프로토콜
연결이 수립되지 않은 상태
주로 CLOSED나 LISTEN 상태를 유지
연결 수립 상태
연결 종료 상태
UDP 데이터그램 구조
UDP는 TCP와 달리 비연결형 통신을 수행하는 신뢰할 수 없는 프로토콜
TCP는 재전송을 기반으로 다양한 오류를 제어하고 흐름 제어를 통해 처리할 수 있을 만큼의 데이터만을 주고 받으며, 혼잡 제어를 통해 네트워크가 혼잡한 정도에 따라 전송량 조절
오류 제어: 재전송 기법
TCP의 재전송 기반 오류 제어
오류 검출과 재전송
TCP 세그먼트에 오류 검출을 위한 체크섬 필드가 있다고 하지만 신뢰성을 보장하기 부족함
(1) 중복된 ACK 세그먼트를 수신했을 때
(2) 타임 아웃이 발생했을 때
ARQ: 재전송 기법
**ARQ(자동 재전송 요구), ARQ의 종류는 다양한데 가장 대표적인 세 가지 방식인 Stop-and-Wait ARQ, Go-Back-NARQ, Selective Repeat ARQ
Stop-and-Wait ARQ
ARQ 중 가장 단순한 방식
메시지를 송신하고, 이에 대한 확인 응답을 받고 다시 메시지를 송신하고 이에 대한 확인 응답을 받는 것을 반복함.
단순하지만 높은 신뢰성을 보장
Go-Back-N ARQ
연속해서 메시지를 전송할 수 있는 파이프라이닝
파이프라이닝 방식을 활용해 여러 세그먼트를 전송하고 도중에 잘못 전송된 세그먼트가 발생할 경우 해당 세그먼트로부터 전부 다시 전송하는 방식
Selective Repeat ARQ
선택적으로 재전송하는 방법
흐름 제어:슬라이딩 윈도우
TCP의 두 번째 핵심 기능인 흐름 제어를 알아봄
수신 버피 : 수신된 세그머트가 애플리케이션 프로세스에 의해 읽히기 전에 임시로 저장되는 공간
혼잡 제어
혼잡제어 : 혼잡을 제어하기 위한 기능
혼잡 윈도우 : 혼잡 없이 전송할 수 있을 법한 데이터양을 의미함
[1] 느린 시간 알고리즘
[2] 혼잡 회피 알고리즘
[3] 빠른 회복 알고리즘
그래도 마무리했다.. 담주는 진짜 휴가라고 맞다고 그렇다고