滑動視窗協議實驗

2021-06-21 11:17:18 字數 1211 閱讀 5249

//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...