3.4 신뢰적인 데이터 전송의 원리

일반적인 상황에서의 신뢰적인 데이터 전송 문제를 다룸.

신뢰적인 데이터 전송을 구현하는 문제 → 링크 계층과 애플리케이션 계층에서도 발생할 수 있는 문제이기 때문.

Untitled

상위 계층 객체에게 제공되는 서비스 추상화는 데이터가 전송될 수 있는 신뢰적인 채널의 서비스 추상화.

신뢰적인 채널에서는 전송된 데이터가 손상(0 → 1 or 1 → 0)되거나 손실되지 않음. 모든 데이터는 전송된 순서 그대로 전달됨.

TCP가 인터넷 애플리케이션에게 제공하는 서비스 모델

이러한 서비스 추상화를 구현하는 것이 신뢰적인 데이터 전송 프로토콜의 의무이다. 해당 작업은 신뢰적인 전송 프로토콜의 ‘아래에 있는’ 계층이 신뢰적이지 않을 수 있어서 어려워짐.

ex. TCP는 비신뢰적인 종단 간의 네트워크 계층(IP)의 바로 상위에 구현된 신뢰적인 데이터 전송 프로토콜. 일반적으로, 신뢰적으로 통신하는 두 종단점 바로 아래에 있는 계층은 단일 물리적 링크로 구성되어 있을 수 있으나, 여기서는 이러한 하위 계층을 비신뢰적인 점대점 채널로 봄.

하위 채널에서 비트가 손상되거나 전체 패킷을 손실하는 경우 어떠한 프로토콜 메커니즘이 필요한지를 고려.

한 가지 가정을 하고 들어가자면, 보내진 패킷은 일부 손실될 수도 있겠지만 보내진 순서대로 전달된다는 것이다. 즉, 하부 채널은 패킷의 순서를 바꾸지 않는다.

프로토콜 데이터 단위에 대해 세그먼트보다는 패킷이라는 용어를 사용함.

단방향 데이터 전송의 경우인 송신 측으로부터 수신 측까지의 데이터 전송만을 고려함. → 단방향 데이터 전송의 경우에도 프로토콜의 송신 측과 수신 측이 양방향으로 패킷을 전달할 필요가 있음을 유의해야함.

rdt의 송수신 측은 전송 데이터를 포함하는 패킷을 교환하는 것 외에 제어 패킷을 양쪽으로 전송해야 한다.

3.4.1 신뢰적인 데이터 전송 프로토콜의 구축

완벽하게 신뢰적인 채널상에서의 신뢰적인 데이터 전송: rdt1.0

Untitled

하위 채널이 완전히 신뢰적인 가장 간단한 경우를 고려함.

위의 그림은 rdt1.0 송신자와 수신자에 대한 유한상태 머신(FSM) 정리.