신뢰할 수 있는 데이터 전송
신뢰할 수 있는 데이터 전송은 패킷을 손상시키거나, 손실시키거나, 순서를 변경할 수 있는 하부 네트워크를 통해 데이터를 정확하게, 순서대로, 손실이나 중복 없이 전달하는 프로토콜의 원칙 집합입니다.
Definition
신뢰할 수 있는 데이터 전송은 신뢰할 수 없는 하부 채널에도 불구하고 데이터가 수신 애플리케이션에 정확하고 순서대로 전달되도록 보장하는 전송 계층 서비스이며, 이는 확인 응답, 순서 번호, 타임아웃 및 재전송을 통해 달성됩니다.
Scope
이 주제는 특정 프로토콜과는 독립적으로 신뢰할 수 있는 전달의 일반적인 메커니즘을 다룹니다: 확인 응답(acknowledgments) 및 부정 확인 응답(negative acknowledgments), 손실 및 중복 감지를 위한 순서 번호(sequence numbers), 손상 감지를 위한 체크섬(checksums), 재전송 타이머(retransmission timers), 그리고 효율성을 위해 많은 패킷을 전송 중인 상태로 유지하는 파이프라인 슬라이딩 윈도우 프로토콜인 Go-Back-N 및 선택적 재전송(selective repeat)입니다. 이들은 TCP가 구축되는 기반으로 개발됩니다. 이 주제는 링크별 신뢰성보다는 네트워크 과부하를 다루는 혼잡 제어(congestion control)와 TCP 자체의 세부 사항은 제외합니다.
Core questions
- 신뢰할 수 있는 프로토콜이 극복해야 할 실패(손상, 손실, 중복, 재정렬)는 무엇입니까?
- 확인 응답과 순서 번호는 수신자가 문제를 감지하고 알리도록 어떻게 허용합니까?
- 송신자는 타임아웃과 재전송을 사용하여 손실로부터 어떻게 복구합니까?
- 파이프라인 프로토콜(Go-Back-N, 선택적 재전송)은 정지-대기 방식보다 효율성을 어떻게 향상시킵니까?
- Go-Back-N과 선택적 재전송 간의 장단점은 무엇입니까?
Key concepts
- 확인 응답 (ACK/NAK)
- 순서 번호
- 체크섬
- 재전송 타이머 및 타임아웃
- 정지-대기
- 자동 재전송 요청 (ARQ)
- 파이프라이닝
- 슬라이딩 윈도우
- Go-Back-N 및 선택적 재전송
Key theories
- 정지-대기 및 자동 재전송 요청
- 가장 간단한 신뢰할 수 있는 프로토콜은 하나의 패킷을 보내고 확인 응답을 기다리며, 타임아웃 시 재전송합니다. 순서 번호는 새로운 데이터를 재전송된 데이터와 구별하여 모든 신뢰할 수 있는 전송이 기반으로 하는 핵심 ARQ 메커니즘을 확립합니다.
- 슬라이딩 윈도우를 이용한 파이프라이닝
- 윈도우에 의해 제한된 여러 개의 미확인 패킷을 전송 중인 상태로 허용하면 지연이 높은 링크에서 처리량이 증가합니다. Go-Back-N은 첫 번째 손실된 패킷부터 모든 것을 재전송하는데, 이는 간단하지만 올바르게 수신된 데이터를 재전송할 수 있습니다. 반면 선택적 재전송은 손실된 특정 패킷만 재전송하고 순서가 뒤바뀐 도착을 버퍼링하는데, 이는 더 효율적이지만 양쪽 끝에서 더 많은 상태 정보를 필요로 합니다.
Clinical relevance
신뢰할 수 있는 데이터 전송 원칙은 파일 전송, 웹 페이지 및 대부분의 애플리케이션 데이터가 손실이 많고 혼잡한 경로에서도 손상 없이 도착하도록 하는 기반입니다. 확인 응답, 순서 번호, 윈도우 및 재전송과 같은 동일한 개념은 TCP, 링크 계층 신뢰성 및 새로운 전송 프로토콜에서 반복적으로 나타나므로, 이를 이해하는 것은 처리량, 지연 시간 및 손실로부터의 복구에 대해 추론하는 데 필수적입니다.
History
신뢰할 수 있는 전송 메커니즘은 초기 링크 프로토콜과 ARPANET을 위해 개발되었으며, 여기서 정지-대기(stop-and-wait) 방식과 슬라이딩 윈도우 ARQ(Automatic Repeat Request) 방식이 신뢰성과 처리량의 균형을 맞추기 위해 개선되었습니다. 완벽한 채널에서 손실 및 재정렬을 포함하는 신뢰할 수 있는 전송 원칙의 체계적이고 점진적인 개발은 표준 교육 접근 방식이 되었고 TCP 설계의 기초를 이룹니다.
Key figures
- James F. Kurose
- Keith W. Ross
- Andrew S. Tanenbaum
Related topics
Seminal works
- kurose2021
- tanenbaum2010
Frequently asked questions
- 순서 번호를 사용하는 이유는 무엇입니까?
- 순서 번호는 수신자가 패킷을 구별하여 손실(순서의 공백)을 감지하고, 중복(재전송으로 인한 반복된 번호)을 폐기하며, 순서가 뒤바뀌어 도착한 데이터를 재정렬할 수 있도록 합니다. 순서 번호가 없으면 송신자와 수신자는 새로운 패킷과 재전송된 패킷을 구별할 수 없습니다.
- Go-Back-N과 선택적 재전송의 차이점은 무엇입니까?
- 둘 다 여러 패킷을 파이프라인 방식으로 전송합니다. Go-Back-N은 송신자가 첫 번째 손실된 패킷부터 모든 것을 재전송하도록 하는데, 이는 간단하지만 올바르게 수신된 데이터를 다시 보낼 수 있습니다. 선택적 재전송은 손실된 특정 패킷만 재전송하고 순서가 뒤바뀐 도착을 버퍼링하는데, 이는 더 효율적이지만 양쪽 끝에서 더 많은 상태 정보를 필요로 합니다.