컴퓨터 네트워크

    [컴퓨터 네트워크]네트워크 계층과 역할

    [컴퓨터 네트워크]네트워크 계층과 역할

    [네트워크 계층] 네트워크 계층의 근본적 역할은 매우 단순하다. -> 송신 호스트에서 수신 호스트로 패킷을 전달하는 것. 이를 위해 필요한 중요 기능이 2가지 있다. 1) 포워딩 : 패킷이 입력 링크에 도달 했을 때 패킷을 적절한 출력 링크로 이동시키는 것. -> single interchage 2) 라우팅 : 전체적인 패킷 경로를 결정하는 것. ​ 라우터는 도착하는 패킷 헤더의 필드 값을 조사하여 패킷을 포워딩하는데 이 때 필요한 정보가 포워딩 테이블에 있다. 이런 정보를 가지고 데이터의 경로들이 정해지게 되는데 이를 정하는 2가지 방법이 있다. 1) 라우팅 알고리즘 : 라우팅 알고리즘은 포워딩 테이블 내용을 결정하는데, 한 라우터의 라우팅 알고리즘 기능은 다른 라우터의 라우팅 알고리즘과 소통하며 포워..

    [컴퓨터 네트워크] 연결 지향형 트랜스포터 TCP

    [컴퓨터 네트워크] 연결 지향형 트랜스포터 TCP

    연결 지향형 트랜스포트 : TCP 1) 단일 송신자와 단일 수신자 사이의 점대점 연결 2) 핸드쉐이크가 필요한 신뢰적 연결 3) in-order byte steam 4) 양방향 서비스 5) 흐름 혼잡을 제어함 3.5.2 TCP 세그먼트 구조(책 참조) ​ 여기서 만약 3바이트를 전송한다고 생각하면 SEQ와 ACK번호는 어떻게 변할까? CDE를 전송한다고 생각해보자. 이 때 C(42) D(43) E(44) 따라서 그 다음 ACK = 45가 될 것 이다. ​ 어떻게 tcp의 timeout을 설정해야 할까? 만약 타임아웃이 너무 짧다면 불필요한 재전송을 하게 되고 너무 길면 효율이 안좋게 된다. 그래서 RTT보다 조금 길게 해야 하는데 RTT는 항상 다르다. 따라서 sampleRTT(타임아웃 측정한 시간)의 ..

    [컴퓨터 네트워크] 선택적 반복

    [컴퓨터 네트워크] 선택적 반복

    ​ GBN은 패킷 하나의 오류 때문에 많은 패킷을 재전송하므로 많은 패킷을 불필요하게 재전송하는 경우가 발생한다. 선택적 반복은 이를 어느정도 해결하는데 수신자에서 오류가 발생한 패킷을 수신했다고 의심되는 패킷만을 송신자가 다시 전송한다. 따라서 개별적인 확인응답을 요구한다. ​ ​ Pkt2에서 손실이 일어났다. 이 경우 선택적 반복에서는 pkt2이후의 패킷들을 버퍼에 보관한다. 물론 ack을 sender에게 보낸다. 이후 pkt2에 타임아웃이 끝나면 pkt2를 다시 resend하고 만약 성공하면 pkt2부터 차례대로 저장된다. ​ [참조] Computer Networking: A Top Down Approach - J.F Kurose and K.W. Ross

    [컴퓨터 네트워크]N부터 반복

    [컴퓨터 네트워크]N부터 반복

    GBN 프로토콜에서는 송신자는 확인응답을 기다리지 않고 여러 패킷을 전송 할 수 있다. ​ 상위로부터의 호출 : RDT_SEND()가 위로부터 호출되면, 송신자는 첫째로 윈도우가 가득 찼는지 N개의 아직 확인응답 되지 않은 패킷이 있는지를 확인한다. ​ ACK의 수신 : GBN프로토콜에서 순서번호 n을 가진 패킷에 대한 확인응답은 누적확인응답으로 인식된다. ​ 타임아웃 이벤트 : 타이머는 손실된 데이터 또는 손실된 확인응답 패킷으로 회복하는 데 사용한다. 만약 타임아웃이 발생한다면, 송신자는 이전에 전송 되었지만 아직 확인응답 되지 않은 모든 패킷을 다시 송신한다. ​ ​ 만약 패킷에 오류가 있다면 수신자는 그 패킷을 버리고 가장 최근에 제대로 수신된 순서의 패킷에 대한 ack을 재전송한다. gbn프로토..

    [컴퓨터 네트워크] 파이프라인을 이용한 신뢰적 데이터 전송

    [컴퓨터 네트워크] 파이프라인을 이용한 신뢰적 데이터 전송

    Rdt3.0이 기능적으로 정확한 프로토콜이지만 효율적이지는 않다. 기본적으로 rdt3.0이 전송 후 대기 방식의 프로토콜이기 때문인데 ​ RTT = 30msec, 전송률 1Gbps, 패킷당 8000비트의 패킷 크기 L을 가지고 있다고 가정해보자 전송하는데 필요한 시간 d = L / R = 8 microseconds가 나온다. 송신자 측은 ack패킷을 rtt + l/r = 30.008msec 후에 다시 받을 수 있다 그러므로 이 시간동안 0.008msec 동안만 데이터를 전송한 셈이다. 따라서 이용률 U = (L/R) / (RTT+ L/R) = 0.00027이 된다. ​ ​ 이러한 해결책으로 확인응답을 기다리지 않고 여러 패킷을 전송하도록 허용하는 방법인 파이프라이닝이 있다. 이 때 패킷은 각각의 순서번호..