*TCP 혼합 제어 정책
1. TCP Tahoe
: 초반에 느린 시작을 사용해 혼잡 윈도우 크기를 지수적으로 키움
slow start -> congestion avoidance -> fast retransmit -> congestion detection

2. TCP Reno
: 초반에는 느린 시작을 사용하지만 3 Duplicate ACK와 타임아웃을 구분해 대응함
slow start -> congestion avoidance -> fast retransmit & fast recovery -> fast recovery

데이터 오류 또는 유실 발생 상황
1. 수신부에서 잘못된 데이터를 받았다는 응답인 NAK 메시지를 보낸 경우
2. 3 Duplicate ACK가 발생할 때
3. 수신부로부터 ACK 메시지를 받지 못해 타임아웃이 발생할 때
오류 제어
: 데이터에 오류 또는 유실이 발생할 때 데이터의 신뢰성을 보장하기 위해 오류를 제어하는 방식
1. 정지-대기
: 송신한 패킷에 대한 ACK 메시지를 일정 시간 동안 받지 못해 타임아웃이 발생하면 해당 패킷을 다시 보내는 방식
송신부에서 데이터를 1개만 보내고 기다려야 하므로 재전송 요청인 ARQ가 사용됨

2. Go-Back-N ARQ
: 연속적으로 데이터를 보냈을 때 누락된 데이터가 있으면 송신부에서 해당 데이터부터 재전송하는 방식

3. Selective-Repeat ARQ
: 송신부에서 연속적으로 데이터를 보냈을 때 누락된 데이터가 있으면 수신부에서 해당 데이터만 재전송을 요청하는 방식, 장점) 특정 패킷만을 재전송하므로 효율적임
단점) 받은 패킷을 재정렬하는 로직이 추가로 필요함

UDP
: 송신부와 수신부 간 연결을 지원하지 않고 데이터그램 형태의 통신을 지원
신뢰성이 낮지만 속도가 빠름
*특징
- 송신부와 수신부의 연결이 보장되지 않는 비연결형 서비스
- 패킷이 서로 다른 회선으로 교환될 수 있는 데이터그램 패킷 교환 방식
- 송신부에서 전달한 패킷 순서와 수신부에서 받은 패킷 순서가 다를 수 있음
- 패킷의 수신 여부를 확인하지 않음
- 1:1, 1:N, N:N 통신이 모두 가능함
- 데이터의 신뢰성이 낮음
- 데이터의 전송 속도가 빠름

*UDP의 오류 검출
: checksum 방식으로 오류를 검출함 (모든 데이터를 더해서 오버플로되는 캐리가 발생하면 해당 캐리를 떼서 데이터에 다시 더한 후 1의 보수를 취해 checksum을 만듦
하지만 checksum을 이용해도 오류를 100% 검출할 수 있는 것은 아니고 선택사항으로 필수는 아님!
'공부 기록 > CS' 카테고리의 다른 글
| 2.3 HTTPS (1) | 2024.07.23 |
|---|---|
| 2.3 HTTP (0) | 2024.07.22 |
| 2.2 TCP와 UDP (1) (0) | 2024.07.18 |
| 2.1 네트워크 계층 (0) | 2024.07.17 |
| 1단원 요약정리 (0) | 2024.07.16 |