분류 전체보기

    [컴퓨터 네트워크]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이 된다. ​ ​ 이러한 해결책으로 확인응답을 기다리지 않고 여러 패킷을 전송하도록 허용하는 방법인 파이프라이닝이 있다. 이 때 패킷은 각각의 순서번호..

    [컴퓨터 네트워크] 신뢰적인 데이터 전달 프로토콜의 구축

    [컴퓨터 네트워크] 신뢰적인 데이터 전달 프로토콜의 구축

    ​ 위 그림은 신뢰적인 데이터 전송 연구에 대한 프레임워크이다. 이는 상위 계층 개체에게 제공되는 서비스 추상화는 데이터가 전송될 수 있는 신뢰적인 채널의 서비스로의 추상화이다. ​ 신뢰적인 채널에서는 1) 전송된 데이터가 손상되거나 손실되지 않는다. 2 ) 모든 데이터는 전송된 순서대로 전달된다. ​ 그림에서 송신 측은 rdt_send() 호출에 의해서 위쪽으로부터 호출된다. 수신 측에서는 상위 계층으로 전달될 데이터를 넘긴다. Rdt_rcv() 는 패킷이 채널의 수신 측으로부터 도착 했을 때 호출 된다. 상위 계층에 데이터를 전달하려고 할 때 deliver_date()를 호출한다. ​ ​ 완벽하게 신뢰적인 채널 상에서의 신뢰적인 데이터 전송 -> 비트 에러 없음 / 패킷 손실 없음. 가장 이상적인 데..

    [컴퓨터 네트워크] 소켓 프로그래밍

    [컴퓨터 네트워크] 소켓 프로그래밍

    소켓 프로그래밍 : 네트워크 애플리케이션 생성 클라이언트와 서버는 소켓을 통해 읽고 쓰기를 통해 서로 통신함. ​ 클라이언트-서버 애플리케이션을 개발하는데 연결 방식이 2가지가 있다. 1 ) tcp – 연결지향형, 신뢰적 바이트 스트림 채널 제공 2 ) udp – 비연결형 / 전송 보장 하지 않음. 서버는 소켓을 생성해 클라이언트의 요청을 대기 중 클라이언트는 소켓을 생성해 서버로 보냄(목적지 주소를 포함함) 서버는 소켓을 읽고 특정 포트 번호를 포함해 소켓에 할당, 클라이언트에 전달함. (포트가 필요한 이유는 호스트가 하나 혹은 그 이상의 소켓을 갖는 많은 네트워크 애플리케이션 프로세스를 수행하고 있을 수 있기 때문에 특정 소켓을 식별할 필요가 있음) ​ TCP 소켓 프로그래밍 서버와 클라이언트는 핸드..

    [컴퓨터 네트워크] DNS

    사용자는 호스트 네임을 좋아하지만 라우터는 ip주소를 좋아하기 때문에 절충안인 호스트 네임을 ip주소로 변환해주는 디렉터리 서비스가 필요하다. 이것이 DNS의 역할이다. 1) DNS서버들의 계층구조로 구현된 분산 데이터베이스 2) 호스트가 분산 데이터서비스로부터 질의하도록 허락하는 애플리케이션 계층 프로토콜이다. ​ 왜 중심화된 dns를 사용하지 않을까? 1) 서버의 고장 2) 많은 트래픽 3) 먼 거리의 중앙 집중 데이터베이스 4) 유지관리 ​ [참조] Computer Networking: A Top Down Approach - J.F Kurose and K.W. Ross ​