python UDP File Transfer - Stop & Wait Report
- 최초 등록일
- 2016.08.19
- 최종 저작일
- 2016.04
- 9페이지/ 한컴오피스
- 가격 3,500원
소개글
Python에서 제공하는 socket 라이브러리를 이용하여 UDP Socket을 생성하고 이를 통해 파일을 전달하는 UDP File Transfer를 구현합니다. 각각 파일을 전송하는 Sender와 파일을 전달받는 Receiver를 결과물로 구현하며, 신뢰성을 보장하기 위해 Stop-and-Wait 방법을 적용합니다. 또한 전송 과정에서는 백분율로 전송율을 보입니다.
목차
1. 과제 목표.
2. 과제 해결 방법
3. 과제 결과
본문내용
1. 과제 목표.
Python에서 제공하는 socket 라이브러리를 이용하여 UDP Socket을 생성하고 이를 통해 파일을 전달하는 UDP File Transfer를 구현합니다. 각각 파일을 전송하는 Sender와 파일을 전달받는 Receiver를 결과물로 구현하며, 신뢰성을 보장하기 위해 Stop-and-Wait 방법을 적용합니다. 또한 전송 과정에서는 백분율로 전송율을 보입니다.
<중 략>
(2) Stop-and-Wait 의 구현.
위의 단순한 전송만으로는 문제가 발생. 제대로 file을 전달받을 수가 없습니다. Sender는 Receiver를 고려하지 않고, 무작정 전송을 해버림으로써 Receiver의 데이터 수용 속도가 Sender의 속도를 똑같이 따라가지 못해 대기 Queue를 오버하여 data 손실이 발생하게 됨으로 데이터 손실이 발생하지 않도록 신뢰성을 보장한 방법 중 Stop-and-Wait ARQ를 적용합니다.
Sender는 하나의 frame을 보내면 Receiver로부터 정상적으로 이를 받았다는 ACK 메시지를 기다립니다. Receiver는 정상적으로 하나의 frame을 전달받았다면 Sender에게 ACK 메시지를, 그렇지 않다면 NAK 메시지를 전달합니다.
Sender는 성공적으로 데이터를 받았다는 ACK 메시지를 받으면 다음 프레임을 전송하고, 제대로 전달 받지 못했다는 NAK 메시지를 받으면 해당 프레임을 다시 전송하고, 이러한 방법으로 각각 하나의 프레임을 전달할 때마다 멈추고, 기다리는 과정을 추가함으로써 신뢰성을 보장하는 과정을 만듭니다.
(3) time out 의 구현.
앞서 구현한 2번 Stop-and-Wait 과정에서 Sender가 Receiver로부터 수신에 대한 메시지를 기다리는데, 이 메시지가 Receiver에게 frame을 전달하는 과정에서 문제가 생겼거나 Receiver가 발송한 메시지가 오는 도중 손상이 되어 Sender에게 전달되지 못하여 Sender가 하염없이 기다리는 상태에 빠질 가능성이 생깁니다.
참고 자료
없음