요약
- 전송 계층 : IP의 한계를 보완
- IP 한계 : '최선형 전달', 비연결형 프로토콜
- 포트 번호 : 특정 애플리케이션을 식별하는 정보
IP | 한계 |
---|---|
신뢰할 수 없는 통신 | IP 프로토콜이 패킷이 수신지까지 제대로 전송되었다는 보장을 하지 않음/ ' 최선형 전달' |
비연결형 통신 | 성능때문에 비연결로 통신함(속도는 빠름) |
당연하게, 전송 계층은 보완을 한다했으니
1. 신뢰성 있는 통신
2. 연결형 통신이 가능하다. (= 대표적으로 TCP)
그럼, 비연결형, 신뢰할 수 없는 통신은 없는가? UDP가 있다.
위 형식으로 주로 포트 번호를 표기한다.
TCP 통신 단계
1. 연결 수립
2. 데이터 송수신
3. 연결 종료
*여기서 세그먼트는 TCP 헤더가 각각 포함된 패킷의 잘게 조개진 조각이다.
제전송을 통핸 오류 제어, 흐름 제어, 혼합 제어를 수행
중복된 ACK 세그먼트를 수신했을때
-Client -> Server : N번 받아라~
-Server -> Client : N+1줘! -> 위 데이터를 보내고 Ack받는 데 걸리는 시간을 RTT라고함(Round Trip Time)
-Client -> Server : N+1보냄(누락됨)
-Server -> Client : N+1달라고~
타임아웃이 발생했을때
-TCP 세그먼트를 송신하는 호스트는 모두 재전송 타이머라는 값을 유지함
즉,
Client -> Server : 타이머 시!작!
... 타임 아웃
Client : 너 데이터 제대로 못받았구나? 다시 줄게!
Client -> Server : 다시받아 (타이머 시작!)
오류에 대해서는 알아봤고, 그럼 이제 TCP의 재전송 기법을 보자!
ARQ | 설명 |
---|---|
Stop-and-wait ARQ | 가장 단순한 방식, 제대로 전달했음을 확인하기 전까지 새로운 메시지를 보내지 않음, 높은 신뢰성을 보장 BUT 네트워크 이용 효울이 낮아짐(계속 대기를 해야하니깐 성능 저하 발생) |
Go-Back-N ARQ | 여러개를 연속해서 메시지를 보냄(이런 기술을 파이프 라이닝) 즉, N보냄 -> N+1보냄 -> N+2보냄 이때 응답이 오지 않는 세그먼트부터 다시보냄 '누적 확인 응답'이라고도 함 |
Selective Repeat ARQ | 선택적 재전송, '개별 확인 응답' 위와 다르게 응답이 없었던 세그먼트만 다시 보냄 |
현대 TCP는 '파이프 라이닝'이 사용되는 Go-Back-N ARQ와 Selective Repeat ARQ를 기반으로 동작
알고리즘 종류 | 설명 |
---|---|
AIMD | 혼잡이 감지 되지 않으면 혼잡 윈도우를 RTT마다 1씩 선형적으로 증가시키고, 혼잡이 감지되면 절반으로 떨어뜨리는 동작을 반복 |
느린 시작 | 혼잡 윈도우를 1부터 시작해 문제없이 수신된 ACK 세그먼트당 송신 세그먼트를 1개씩 추가하는 방식 결과적으로 RTT마다 2배씩 지수적으로 증가 / 계속 증가할 수는 없다. 느린 시작 임계치를 사용 |
혼잡 회피 알고리즘 | RTT마다 혼잡 윈도우를 1MSS씩 증가시키는 알고리즘 |
빠른 회복 알고리즘 | 세 번의 중복 ACK 세그먼드를 수신했을 때 느린 시작은 건너뛰고 혼잡 회피를 수행하는 알고리즘 , 빠르게 전송률을 회복하기 위한 알고리즘 |
출처
1. Client -> Server : FIN '연결 끊습니다'
2. Server -> Client : Ack '확인했습니다'
3. Server -> Client : FIN '이제 연결 끊습니다.' -> 일정 시간 이후 보내는 이유 _ ACK가 제대로 전송되지 않았을수도 있어서
4. Client -> Server : Ack '네 확인했습니다'
주로 CLOSED(연결 없는 상태), LISTEN(대기 상태)을 하고 있다.
IP와 연관된 통신 특성으로 알맞은 단어를 <보기>에서 골라 보세요.(p.206)
비신뢰성, 비연결성
다음은 TCP 쓰리 웨이 핸드셰이크 과정을 나타내는 그림입니다. 괄호 안에 들어갈 말을 <보기>에서 골라 보세요.(p.225)
(Ack) 세그먼트
작업 관리자에서 프로세스별 PID 확인해 보기
크롬만 가져왔다. 각 크롬의 PID이다.