본문 바로가기
CS/NetWork

[네트워크] RDT 원리 (1.0, 2.0, 2.1, 2.2, 3.0)

by 계범 2022. 1. 14.
네트워크 관련 글 순서(참조 영상 기준)

애플리케이션 계층
- 네트워크 애플리케이션의 원리
- DNS
- TCP를 이용한 Socket 프로그래밍

전송계층
- 전송 계층 서비스의 원리
- rdt 원리
- 연결 지향 전송: TCP
- TCP 흐름 제어(3-way handshake, 4-way handshake)
- TCP 혼잡 제어

네트워크 계층
- 네트워크 계층 서비스
- Network Address Translation(NAT), DHCP
- 라우팅 알고리즘(Link State, Distance Vector)
- 계층적 경로 변경(AS)

링크 계층
- 다중 엑세스 프로토콜
- LANs(근거리 통신망)

무선 및 모바일 네트워크
- 무선 네트워크

웹 요청 시 일어나는일

네트워크 보안
- 대칭키 & 공개키,RSA 암호화
- Secure e-mail, SSL, MAC
- IPSec(ESP), Firewall(방화벽)

 

RDT란(Reliable[각주:1] Data Transfer)

신뢰성 있는 데이터 교환을 뜻함.

데이터가 오류나 누락없이 전송되는 것.

 

데이터 전송 중 생기는 문제

  1. 가는 도중에 에러가 발생
  2. 데이터 유실 발생

신뢰성이 있다는건 데이터가 유실하지않고 에러가 발생하지 않았다는 뜻

 

 

RDT 1.0

  • RDT1.0은 전송과정이 완벽해서 에러나 유실이 되지 않는다고 생각한다.
  • 송신
    • 상위 레이어에서 데이터가 들어오면 rdt_send(data) 호출
    • make_pkt(data)로 패킷 만듦
    • udt_send(packet) 호출 패킷 전송
  • 수신
    • 하위 레이어에서 데이터를 받아오면 rdt_rcv(packet) 호출
    • extract(packet,data) 호출로 패킷에서 데이터 추출
    • deliver_data(data) 호출해서 상위 레이어로 데이터 전송

RDT 2.0

  • RDT2.0은 유실은 안되지만 error가 발생 할 수 있다고 생각한다.
  • 에러에 대한 detection과 피드백이 존재
  • 받은 데이터에 대한 피드백을 함
    • 정상: ACK 전송
    • 에러: NAK 전송
  • 2.0은 치명적인 결함이 있음
    • 수신측에서 보낸 피드백이 에러가 발생하거나 손실되었을때, 송신측에선 NAK이라는 가정하에 다시 데이터를 재전송한다. 하지만 수신측에선 이게 다시 보낸건지 다음 순서의 데이터를 보낸건지 확인이 불가능함.

 

RDT 2.1

  • RDT 2.0의 치명적인 결함을 제거
  • 패킷마다 시퀀스 번호(0,1)를 붙여서 송신,수신함
  • 0번 패킷을 보내고, 0 ACK or 0 NAK 피드백을 기다림
  • 정상적으로 잘 받아서 0 ACK를 받았다면, 1번 패킷 전송
  • 0 NAK이나 에러가 생겼다면, 0번 패킷 재전송
  • 수신측에서 만약 이미 받았던 데이터인데 다시 받게 되는 경우라면 기존 데이터를 지우고 다시 받은 후 0 ACK로 잘 받았다고 다시 전송

시퀀스 번호를 2개만 쓰는 이유

더보기

헤더의 크기는 최소화(부가적인 정보이기때문에)할수록 좋은데,

시퀀스번호의 개수를 보낼때마다 증가하면서 보내면 커질 수 있다.

 

어차피 패킷의 보낸 데이터가 재전송된 데이터인지 다음 데이터인지 구분만 하면 되므로, 0과 1로 충분히 판별가능

 

RDT 2.2

  • 위의 버전에서 NAK 없이 ACK로만 구현
  • 에러가 있든 없든 ack로 보내는데 에러가 있으면 시퀀스번호를 다른 번호로 보냄(에러라는 표시)

 

RDT 3.0

  • 데이터가 에러가 발생할 수도 있고 유실도 될 수 있는 상황
  • 위의 RDT에서 필요했던 detection, feedback, sequence number에다가 timer가 추가됨
  • 데이터를 보내고 일정시간(timer) 내에 피드백이 안오면 재전송
  • 타이머를 빠르게하면 빠르게 조치할 수 있지만, 자원소모가 많음
  • 타이머 느리면 느리게 조치됨.

a는 정상 상황, b는 전송측에서 패킷 유실상황
c는 피드백 유실 d는 타이머초과로인한 재전송

 

d와 같은 상황을 개선한 pipelined protocol이 존재

 

Pipelined protocols

 

한꺼번에 보내고, 피드백을 한꺼번에 받아서 처리

 

뒤의 강의에서 어떤식으로 진행되는지 자세히 알려줌.

 

 


참조

 

KOCW 네트워크 강의 - 한양대 2018 1학기 이석복 교수님

 

컴퓨터네트워크

본 강의에서는 인터넷 내부의 동작을 이해하는데 초점을 둔다. 인터넷의 기본이 되는 다양한 컴퓨터네트워크 프로토콜을 응용계층으로부터 시작하여 링크계층까지 Top-down방식으로 소개한다.

www.kocw.net

 

  1. 신뢰성있는 [본문으로]

댓글