소개글
selective repeat 의 c++ 프로그램으로 구현한 것입니다.만점에 가산점까지 받았고 정말 열심히 구현했습니다.
보고서와 c++ 구현 파일이 첨부되어 있습니다.
목차
▢Selective Repeat 기능 구현①개 요
②실행화면 / 프로젝트 분석
본문내용
▢ Selective Repeat 기능 구현1. 개 요
Go Back N ARQ방식은 수신자 쪽에서의 과정을 단순화 하고 있다. 수신자는 오직 하나의 변수만 관리하며 순서가 뒤바뀌어 도달한 Frame들을 저장하는 버퍼가 없이 단순히 버려질 뿐이다. 그러나 이 프로토콜은 잡음이 많은 채널에서는 매우 비효율적이다. 잡음이 있는 채널에서는 Frame이 손상될 확률이 매우 높아지며 이는 다수의 Frame을 다시 전송하게 되는 것을 의미한다. 이 재전송으로 인해 대역폭을 소모하게 되며 전송 속도를 저하하게 된다. 잡음이 있는 채널에 대해서는 오직 하나의 Frame이 손상되었는데 전체 N개의 Frame을 재전송하는 대신에 오로지 손상된 Frame만 다시전송하는 다른 방법이 있는데 이 방법이 Selective Repeat방식이다. 이 프로토콜은 잡음이 있는 채널에서 더욱 효율적이지만, 수신자 측에서의 절차가 더욱 복잡하다.
Selective Repeat protocol은 두 개의 window를 사용하는데 송신자 측과 수신자 측의 window이다. 그러나 이 프로토콜에서의 window와 앞의 Go back N의 window에는 차이가 있다. 우선 송신 window의 크기는 훨씬 작아서 이다. 두 번째는 수신window는 송신 window와 크기가 같다. 송신 window의 최대 크기는 가 될수있다. 예를들면 만일 m=4라면 순서번호는 0부터 15가 될 수 있으나 window의 크기는 8이다. 더 작은 window는 파이프를 채운다는 점에서 더 비효율적이다. 복제된 Frame이 더 적다는 것으로 이를 보상할 수 있다.
참고 자료
없음압축파일 내 파일목록
hongseokjaehwi/
hongseokjaehwi/_UpgradeReport_Files/
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport.css
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport.xslt
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport_Minus.gif
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport_Plus.gif
hongseokjaehwi/Debug/
hongseokjaehwi/Debug/hongseokjaehwi.exe
hongseokjaehwi/Debug/hongseokjaehwi.ilk
hongseokjaehwi/Debug/hongseokjaehwi.pdb
hongseokjaehwi/hongseokjaehwi/
hongseokjaehwi/hongseokjaehwi.ncb
hongseokjaehwi/hongseokjaehwi.sdf
hongseokjaehwi/hongseokjaehwi.sln
hongseokjaehwi/hongseokjaehwi.sln.old
hongseokjaehwi/hongseokjaehwi.suo
hongseokjaehwi/hongseokjaehwi.suo.old
hongseokjaehwi/hongseokjaehwi/Debug/
hongseokjaehwi/hongseokjaehwi/Debug/cl.command.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/CL.read.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/CL.write.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.exe.intermediate.manifest
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.lastbuildstate
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.log
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.obj
hongseokjaehwi/hongseokjaehwi/Debug/link.command.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/link.read.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/link.write.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/mt.command.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/mt.read.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/mt.write.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/vc100.idb
hongseokjaehwi/hongseokjaehwi/Debug/vc100.pdb
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.cpp
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcproj
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcproj.YOUR-1DFE2E2C99.USER.user
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcxproj
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcxproj.filters
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcxproj.user
hongseokjaehwi/ipch/
hongseokjaehwi/ipch/hongseokjaehwi-d2e99d0a/
hongseokjaehwi/ipch/hongseokjaehwi-d2e99d0a/hongseokjaehwi-176b5da2.ipch
hongseokjaehwi/UpgradeLog.XML
데이터 통신 프로젝트No.2.hwp
hongseokjaehwi/_UpgradeReport_Files/
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport.css
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport.xslt
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport_Minus.gif
hongseokjaehwi/_UpgradeReport_Files/UpgradeReport_Plus.gif
hongseokjaehwi/Debug/
hongseokjaehwi/Debug/hongseokjaehwi.exe
hongseokjaehwi/Debug/hongseokjaehwi.ilk
hongseokjaehwi/Debug/hongseokjaehwi.pdb
hongseokjaehwi/hongseokjaehwi/
hongseokjaehwi/hongseokjaehwi.ncb
hongseokjaehwi/hongseokjaehwi.sdf
hongseokjaehwi/hongseokjaehwi.sln
hongseokjaehwi/hongseokjaehwi.sln.old
hongseokjaehwi/hongseokjaehwi.suo
hongseokjaehwi/hongseokjaehwi.suo.old
hongseokjaehwi/hongseokjaehwi/Debug/
hongseokjaehwi/hongseokjaehwi/Debug/cl.command.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/CL.read.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/CL.write.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.exe.intermediate.manifest
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.lastbuildstate
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.log
hongseokjaehwi/hongseokjaehwi/Debug/hongseokjaehwi.obj
hongseokjaehwi/hongseokjaehwi/Debug/link.command.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/link.read.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/link.write.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/mt.command.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/mt.read.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/mt.write.1.tlog
hongseokjaehwi/hongseokjaehwi/Debug/vc100.idb
hongseokjaehwi/hongseokjaehwi/Debug/vc100.pdb
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.cpp
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcproj
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcproj.YOUR-1DFE2E2C99.USER.user
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcxproj
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcxproj.filters
hongseokjaehwi/hongseokjaehwi/hongseokjaehwi.vcxproj.user
hongseokjaehwi/ipch/
hongseokjaehwi/ipch/hongseokjaehwi-d2e99d0a/
hongseokjaehwi/ipch/hongseokjaehwi-d2e99d0a/hongseokjaehwi-176b5da2.ipch
hongseokjaehwi/UpgradeLog.XML
데이터 통신 프로젝트No.2.hwp