Slow is better than NOTHING

TCP 3

신뢰적인 데이터 전송 - RDT 1.0/2.0/3.0

◎ 신뢰적인 데이터 전달 프로토콜의 구축 완전히 신뢰적인 데이터 전송 프로토콜에 도달하기 위해 조금씩 복잡해지는 일련의 프로토콜을 소개한다. 1. 완벽하게 신뢰적인 채널 상에서의 신뢰적인 데이터 전송 : rdt 1.0 먼저, 하위 채널이 완전히 신뢰적인 가장 간단한 경우를 고려한다. 프로토콜 자체는 단순하며, rdt(reliable data transfer) 1.0이라 부르겠다. rdt 1.0은 송신자와 수신자에 대한 유한상태 머신(Finite-State Machine, FSM) 이다. 위의 Figure 3.9(a) 는 송신자의 동작을 정의하고, 3.9(b) 는 수신자의 동작을 정의한다. 송신자에 대해 그리고 수신자에 대해 분리된 FSM이 있다는 것에 유의해야한다. 변화를 일으키는 Event에 대해서는 ..

신뢰적인 TCP보다 비신뢰적인 UDP를 사용하는 이유

TCP는 통신을 위해 사전에 3-way handshaking을 사용하여 연결을 설정해놓고 Flow control, Sequence number, ack message, timer를 활용하여 송신하는 프로세스로부터 수신하는 프로세스에게 데이터가 순서대로 정확하게 전달하게 한다. 또한 TCP는 congestion control을 통해 TCP연결이 과도하게 몰리는 현상을 방지하기도 한다. TCP는 혼잡한 네트워크 링크에서 각 연결이 링크의 Bandwidth를 공평하게 공유하여 통과하도록 한다. UDP는 [RFC 786]에 정의된 내용에 따르면 트랜스포트 계층이 할 수 있는 최소 기능으로 동작한다. Multiplexing, DeMultiplexing 및 간단한 오류 검사를 제외하면 IP에 아무것도 추가하지 않는..

TCP congestion control

TCP(Transmission Control Protocol) 은 연결 지향형 프로토콜로서 3-way handshaking 과정에 의해 연결을 설정한 후 데이터를 전송한다. TCP는 Transfer 과정에서 reliable하다는 것은, 전송 및 수신 상태를 보장해주기 때문이다. 하지만 이러한 TCP의 reliable하다는 것은 전송에 있어 신뢰성을 증가시켜줄 수 있지만 반대로 전송 과정에 문제가 생긴다면 처리 과정에 latency가 생기게 된다. 예를 들면, 음식을 주문하고 대기표를 받고 기다리던 손님이 있었다. 손님 차례가 되어 주문한 음식이 나와 직원이 주문 대기표를 확인하는데 손님이 대기표를 잃어버린것이 아닌가? 이러한 상황에서 TCP라는 직원은 대기표를 명확하게 확인할 때 까지 그 손님에게 음식을..

반응형