데이터 통신 설계 프로젝트(Piggybacking 통신 방법을 위한 프로토콜 알고리즘)
- 최초 등록일
- 2010.12.20
- 최종 저작일
- 2010.06
- 8페이지/ 한컴오피스
- 가격 3,900원
소개글
데이터 통신 과목에서 설계하였던 통신 프로토콜 알고리즘 코드 구현 프로젝트입니다.
Piggybacking 방식을 사용하여 Go-back-N ARQ와 Selective-repeat ARQ 방식의 알고리즘을 언어코드로 나타내었습니다.
목차
1. Piggyback Acknowledgement 방식
1-1. Go-Back-N ARQ
1-2. Selective-repeat ARQ
2. Go-Back-N ARQ algorithm using Piggyback
2-1. Design of Piggybacking in Go-Back-N ARQ
2-2. Algorithm of PIggybacking in Go-Back-N ARQ
3. Selective Repeat ARQ algorithm using Piggyback
3-1. Design of Piggybacking in Selective Repeat ARQ
3-2. Algorithm of PIggybacking in Selective Repeat ARQ
4. 느낀 점
본문내용
3-2. Algorithm of PIggybacking in Selective Repeat ARQ
Sw = 2m−1 //윈도우 사이즈 크기 설정(sender와 receiver측의 윈도우 크기는 동일)
Sf = 0; //전송된 첫 frame의 번호 저장 변수(윈도우 사이즈의 시작번호)
Sn = 0; //다음에 전송될 frame의 번호 저장 변수
Rn = 0; //다음에 받기로 예상되는 frame 번호 저장 변수
NakSent = false; //NAK를 보내지 않았다고 초기화시킴
AckNeeded = false; //ACK를 보낼 필요가 없음을 나타내도록 초기화함
Repeat (for all slots) //모든 frame저장 slot을 설정
Marked (slot) = false; //해당 slot을 모두 비어있다고 초기화 시킴
while (true) // Repeat forever
{
WaitForEvent (); //이벤트가 발생할 때까지 기다림
if (Event (RequestToSend)) //Sender가 보낼 패킷이 생겼다면 실행
{
if (Sn−Sf >= Sw) //보낸 패킷의 수가 윈도우 사이즈를 초과했다면
Sleep (); //이벤트를 기다리는 상태로 돌아감
GetData (); //Network Layer로부터 패킷을 받음
MakeFrame (Sn , Rn); //보낼 frame을 Data+ACK(or NAK) 로부터 만듦
StoreFrame (Sn , Rn); //보낼 frame의 저장
SendFrame (Sn , Rn); //Receiver측으로 frame 전송
Sn = Sn + 1; //다음 보낼 frame 번호를 1 증가시킴
StartSenderTimer (Sn); //보낸 frame 번호의 타이머를 동작시킴
참고 자료
없음