//netriver平台上的乙個實驗,用c語言實驗1位元滑動視窗協議、回退n幀協議和選擇性重傳協議
//使用佇列實現
#include "sysinclude.h"
#include extern void sendframepacket(unsigned char* pdata, unsigned int len);
#define window_size_stop_wait 1
#define window_size_back_n_frame 4
bool fullwin = false;
typedef enum frame_kind;
typedef struct frame
;typedef struct buffer ;
int back_n_frame_win = 0;
int choice_frame_resend_win = 0;
dequequeue;
/** 停等協議測試函式
*/int stud_slide_window_stop_and_wait(char *pbuffer, int buffersize, uint8 messagetype)
case msg_type_send:
break;
} case msg_type_receive:
break;
} default:
return -1;
break;
} return 0;}/*
* 回退n幀測試函式
*/int stud_slide_window_back_n_frame(char *pbuffer, int buffersize, uint8 messagetype)
for(j=back_n_frame_win; jseq))
sendframepacket((unsigned char *)buffer.pframe, buffer.size);
}break;
} case msg_type_send: }}
else
for(j=choice_frame_resend_win; jbreak;}}
}break;
} default:
//return -1;
break;
} return 0;
}
滑動視窗協議
只有在接收視窗向前滑動時 與此同時也傳送了確認 傳送視窗才有可能向前滑動。收發兩端的視窗按照以上規律不斷地向前滑動,因此這種協議又稱為滑動視窗協議。當傳送視窗和接收視窗的大小都等於 1時,就是停止等待協議。當傳送視窗大於1,接收視窗等於1時,就是回退n步協議。當傳送視窗和接收視窗的大小均大於1時,就...
滑動視窗協議
百科名片 滑動視窗協議,是tcp使用的一種 流量控制方法。該協議允許傳送方在停止並等待確認前可以連續傳送多個分組。由於傳送方不必每發乙個分組就停下來等待確認,因此該協議可以加速資料的傳輸。只有在接收視窗向前滑動時 與此同時也傳送了確認 傳送視窗才有可能向前滑動。收發兩端的視窗按照以上規律不斷地向前滑...
滑動視窗協議
協議4 滑窗協議 全雙工協議 簡介 兩個視窗 預設視窗為1,序列號長度為3位的傳送過程 文字描述 接收方收到幀後,首先核對是否為預期幀號 frame expected 如果是的,則接收並frame expected 1,移動接收視窗 傳送端收到應答幀,核對響應幀號 next frame to sen...