https://app.notion.com/p/3-2-TCP-34ee2a9f37498095b5c5d5cf6789c76d
3장 2, 연결지향형 TCP, 혼잡 제어 | Notion
목표
forest-helenium-82b.notion.site
신뢰적인 데이터 전송 서비스
- 의미
- 손상 X
- 손실/중복 X
- 순서 유지
- ※ 왜 전송계층은 신뢰적인 데이터 전송 서비스가 필요할까?
- 인터넷의 네트워크 계층(IP 서비스)은 비신뢰적
- 순서 X, 무결성 보장 X, 손상 O
- 인터넷의 네트워크 계층(IP 서비스)은 비신뢰적
- 단일 재전송 타이머 사용
- 오버헤드 X
- → 타이머가 비었을 때 가장 먼저 들어온 세그먼트를 기준으로 한다.
- 타이머는 ACK 받지 않은 가장 오래된 세그먼트를 기준으로 한다.
- 시나리오 1 : 송신자 관점. (타임 아웃과 확인 응답) 중복 ACK X
- 송신자 관점에서의 동작
- 애플리케이션으로 데이터 받고 → 세그먼트로 이 데이터를 캡슐화 → IP 데이터 넘기기
- 순서번호
- 세그먼트를 IP로 넘길 때 타이머 시작 → TimeoutInterval
- 타임 아웃
- 타임 아웃 시 재전송
- 수신자로의 ACK 수신
- 예시
- 송신자 변수 Sendbase (누적 확인 응답 번호)
- 수신자로부터 ACK y 받음
- y > Sendbase → Sendbase 의 값을 y로 갱신
- y < Sendbase → 무시
- 예시
- 애플리케이션으로 데이터 받고 → 세그먼트로 이 데이터를 캡슐화 → IP 데이터 넘기기
- 시나리오 2 : 송/수신자 관점. (타임 아웃과 확인 응답)

- 호스트 A가 호스트 B에 하나의 세그먼트를 송신
- 호스트 B가 확인응답을 보내다가 손실된 경우
- 송신자가 타임아웃 후에 이전에 보냈던 세그먼트 재전송

- 호스트 A가 호스트 B에 연속으로 두 개의 세그먼트를 송신
- 호스트 B는 수신된 두 개의 세그먼트에 대해서 확인응답을 보냈으나 이미 첫 번째 세그먼트가 Timeout이 발생한 경우
- 호스트 A는 첫번째 세그먼트를 호스트 B에게 송신
- 호스트 B는 누적 확인 응답으로 두 번째 세그먼트에 대한 확인응답을 보낸다.
- 누적 확인 응답 (수신자가 어디까지 받았는지 보내는 응답, 누적으로 확인한다)
- ACK 120의 의미 = ACK 120 이전의 데이터는 모두 받았어요.

- 호스트 A가 호스트 B에게 두 개의 세그먼트를 송신
- 호스트 B가 모두 확인응답 세그먼트를 호스트 A에게 보냈으나 첫번째 확인응답은 손실.
- 그러나 호스트 A 입장에서는 두 번째 세그먼트에 대한 확인 응답을 받았으므로 첫 번째 세그먼트에 대한 재전송 X
- (누적 확인응답이기에)
- 추가로 고려할 사항들 (위의 시나리오에서는 고려하지 않은 사항들)
- 재전송 시 타임아웃 주기 * 2
- 제한된 형태의 혼잡 제어
- 타임아웃은 주로 네트워크 혼잡 때문에 발생
(= 라우터 버퍼 오버플로 / 오랜 큐 대기)
- 타임아웃은 주로 네트워크 혼잡 때문에 발생
- 제한된 형태의 혼잡 제어

2. 빠른 재전송 - 중복 ACK
- 긴 타임아웃 주기 = 종단 간의 지연
- 수신자의 중복 ACK가 일어나는 경우
- y는 호스트 B의 확인 응답 번호
- Sendbase는 Host A 송신자 변수
- y > Sendbase
Sendbase에 y 할당
새로운 타이머 시작 - y ≤ Sendbase
중복 ACK 받음- 중복 ACK의 개수가 3
- 순서번호가 y인 세그먼트 재전송
- y > Sendbase
- GBN vs SR vs TCP
- GBN vs TCP
- 공통점
- 송신자는 ack 받지 않은 가장 작은 확인응답 번호 기억,
전송될 다음 바이트의 순서 번호 기억
- 송신자는 ack 받지 않은 가장 작은 확인응답 번호 기억,
- 차이점 : TCP는 순서가 바뀐 세그먼트 버퍼링
- 예시 : 1 ~ k ~ n 전송(오류 없이 완벽히 받음), k-1 타임아웃 전 ack 받음,
k ack 패킷 손실. - GBN : k부터 n까지 모두 재전송
- 순서 틀리면 버림 = 수신기 버퍼 X
- TCP : k만 재전송 / k 타임아웃 전에 k+1 패킷 받으면 무시
- 예시 : 1 ~ k ~ n 전송(오류 없이 완벽히 받음), k-1 타임아웃 전 ack 받음,
- 공통점
- SR vs TCP
- 차이점
- SR : 개별 확인 응답
- TCP : ‘순서가 틀린’ 세그먼트에 대해 누적 확인응답 보냄
- 중복 ACK
- 차이점
- GBN vs TCP
728x90
'Computer > 네트워크' 카테고리의 다른 글
| [네트워크] 링크 계층 (0) | 2026.07.14 |
|---|---|
| [네트워크] TCP의 혼잡 제어 (0) | 2026.07.13 |
| [네트워크] 혼잡 제어 (0) | 2026.07.13 |
| [네트워크] TCP 흐름 제어 서비스 (1) | 2026.07.13 |
| [네트워크] 연결지향형 TCP 2 (1) | 2026.07.13 |