Slow is better than NOTHING

Computer Science/3. Network 5

Network Checksum의 HASH Function과 Data Integrity HASH Function의 차이

Network 에서 패킷의 오류를 검출하기 위해 CheckSum이라는 헤더의 Field를 사용한다. CheckSum방법은 상대적으로 패킷 오버헤드가 적은데, 예를 들어 TCP와 UDP는 16bit만 사용한다. (TCP의 헤더크기는 20byte, UDP는 8byte) Checksum은 보안 관점에서 사용되는 Hash Function보다는 취약한 무결성 검증 방법이다. Transport 계층은 일반적으로 호스트의 OS의 일부로서 Software로 구현된다. 즉, Transport계층의 오류 검출이 Software로 구현되므로 CheckSum처럼 간단하고 빠른 오류 검출 기법이 필요하다. 반면에 Data Integrity를 위한 보안 관점의 Hash는 예로, 대표적인 Hash 알고리즘인 MD5는 길이로만 봐도..

신뢰적인 데이터 전송 - 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에 대해서는 ..

파이프라이닝 신뢰적 데이터 전송

프로토콜 rdt3.0 은 기능적으로 정확한 프로토콜이다. 오늘날의 고속 네트워크에서 누구나 이것의 성능에 만족하지는 않는다. rdt 3.0 의 핵심적인 성능 문제는 stop-and-wait방식이라는 것이다. 이러한 특별한 성능 문제에 대한 간단한 해결책으로, Stop-and-Wait 동작하는것 대신에 송신자에게 확인 응답을 기다리지 않고 여러패킷을 전송하도록 허용하는 것이다. 이러한 신뢰적 데이터 전송 프로토콜 기술을 "파이프라이닝(Pipelining)" 이라고 한다. 파이프라이닝 방식은 데이터 전송 프로토콜에서 다음과 같은 중요성을 가지고 있다. 1) 순서번호의 범위는 증가되어야 한다. 각각의 전송중인 패킷은 유일한 순서번호를 가져야하고, 거기에 전송 중이고 확인 응답이 안 된 여러 패킷이 있을지도 모..

신뢰적인 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라는 직원은 대기표를 명확하게 확인할 때 까지 그 손님에게 음식을..

반응형