RDT 3.0 설계 및 구현
- 최초 등록일
- 2011.11.13
- 최종 저작일
- 2011.11
- 14페이지/ 한컴오피스
- 가격 1,000원
소개글
컴퓨터네트워크 RDT 3.0 설계를 하고 구현하였습니다
여기 구현한 코드와 라이브러리 파일들이 필요하다면 추가로
RDT 3.0 코드로 따로 올린 파일을 받아가세요
이 레포트에 구현한 코드내용이 있지만 pdf 파일형식이기 때문에 드래그 복사가 안되며 구현하는데 쓰인 다른 함수들은 추가로 첨부하지 않았습니다.
목차
1. 문제 정의(문제 기술) 및 제약 조건
2. 개념 / 예비 설계
3. 상세 설계( Sendr & Receiver FSM 및 Event State Table )
4. 기능 시험 / 성능 시험 과정과 결과
5. 첨부 (source code)
본문내용
1. 문제 정의(문제 기술) 및 제약 조건
■ 문제 정의 :
▪ RDT 3.0 Protocol을 아래의 다음에 따라 설계하고, 최종 구현물을 작성하여, sender와 receiver가 잘 작동함을 검증하고(기능 시험), timeout 기간을 달리 설정하면서 LAN 환경과 WAN 환경의 Internet에서 성능을 측정하라(성능 시험).
■ 문제 기술 :
▪ Sender 및 Receiver FSM 설계
▪ sequence number를 저장하는 variable `seq`를 도입하여 state 갯수를 교과서의 절반으로 줄여보자. 그리고, 교과서와 달리 ACK 번호를 잘 받은 packet 번호가 아니라, 다음에 받을 번호로 하면 구현하기 더 편리한지도 알아보자.
▪ 교과서에는 sender나 receiver가 종료하는 event가 없다. Sender는 standardinput 에서 EoF를 읽으면 RDT sender가 END 라는 control packet을 보내고, ACK를 받아야 종료되게 하자.RDT recevier는 END packet을 받으면 ACK를 보내고 종료 하도록 해보자. 물론, 종료하기 전에 receiver는 성능 측정치들을 output해야 할 것이다.
▪ Event-State Table 작성
■ 제약 조건 :
▪ RDT 3.0 Sender는 Application data를 stdin에서 받으며, <LF>로 구분되는 한 줄(최대 1,400 bytes)을 읽고, packet을 만들어 보낸다. RDT 3.0 Receiver는 받은 packet을 stdout으로 출력한다. File을 stdin 이나 stdout 으로 redirection 시킬 것.
▪ Sender는 EoF을 만나면 recever에게 종료를 알려주기 위해 END라는 control packet을 전송하고, 이를 받으면 recevier는 ACK로 응답한다. 물론 END와 ACK control packet도 lost 또는 corrupt될 수 있다.
▪ Packet은 하나도 빠짐없이, 순서에 맞게, 그리고 bit error 없이 정확하게 전달되어야 한다.
▪ 요즘 네트워크에서는 packet loss가 거의 발생하지 않기 때문에, udt_send()로 packet을 전송할 때 1/10 확률로 random하게 packet을 lost 시켜야 한다. (다시 말해, 보내지 않으면 된다.) 또한, Packet error rate (packet 중에 bit error 가 하나 있을 확률)은 1/10로 보내기 전에 bit error를 발생시켜야 한다. (참고: udt_send.c)
참고 자료
없음