91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.61MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-08-31
  • 語言: 其他
  • 標簽: 北郵??go-back-n??

資源簡介

北郵 計算機網絡課程實驗 滑動窗口協議 選擇重傳協議與go-back-n協議 壓縮包內附實驗報告與配套代碼

資源截圖

代碼片段和文件信息

#include?
#include?

#include?“protocol.h“

#define?MAX_SEQ?15??????????????????//最大的窗口大小
#define?NR_BUFS?((MAX_SEQ?+?1)?/?2)?????//緩沖區大小

#define?DATA_TIMER??3000???????//幀超時時間間隔
#define?ACK_TIMER?240??????????//ack的超時間隔

struct?frame?{?
//數據幀的結構體定義
????unsigned?char?kind;
????unsigned?char?ack;
????unsigned?char?seq;
????unsigned?char?data[PKT_LEN];?
????unsigned?int??padding;
};

int?no_nak=1; //標志是否已經發送過nak
static?int?phl_ready?=?0; //物理層就緒標記
unsigned?char?oldest_frame?=?MAX_SEQ?+?1; //

static?int?between(unsigned?char?aunsigned?char?bunsigned?char?c)??
//滑動窗口判斷函數,判斷幀號(ack號)是否在窗口內
{
???if(((a?<=?b)?&&?(b? return?1;
else
return?0;

}

static?void?put_frame(unsigned?char?*frame?int?len)
{
//發送幀前預處理,加入校驗和crc
????*(unsigned?int?*)(frame?+?len)?=?crc32(frame?len);//crc32校驗
????send_frame(frame?len?+?4);//發送幀
????phl_ready?=?0;//設置物理層阻塞
}

static?void?send_data_frame(unsigned?char?fkunsigned?char?frame_nrunsigned?char?frame_expectedunsigned?char?buffer[NR_BUFS][PKT_LEN])
{
//發送數據幀,或ack與nak
????struct?frame?s;
????
????s.kind?=?fk;
????s.seq?=?frame_nr;
????s.ack?=?(frame_expected?+?MAX_SEQ)?%?(MAX_SEQ?+?1);

if(fk==frame_DATA)//發送的是數據幀
{
memcpy(s.data?buffer[frame_nr?%?NR_BUFS]?PKT_LEN);//復制分組到幀內
dbg_frame(“Send?DATA?%d?%d?ID?%d\n“?s.seq?s.ack?*(short?*)s.data);//輸出記錄
????????put_frame((unsigned?char?*)&s?3?+?PKT_LEN);???//發送
start_timer(frame_nr?%?NR_BUFS?DATA_TIMER);?????//啟動定時器
}
else?if(fk?==?frame_NAK)//發送的是NAK
{
no_nak?=?0;?????????????????????????????????????//下一次不再發送nak
????put_frame((unsigned?char?*)&s?3);????????????//發送
}
else?if(fk?==?frame_ACK)//發送的是ACK
{
dbg_frame(“Send?ACK??%d\n“?s.ack);//輸出記錄
????????put_frame((unsigned?char?*)&s?3);//發送
}
phl_ready?=?0; //物理層阻塞
stop_ack_timer();???????????????????????//關閉ack定時器
}

void?main(int?argc?char?**argv)
{
int?event?arg;
????struct?frame?f;
????int?len?=?0;
????int?i;
static?unsigned?char?ack_expected?=?0?next_frame_to_send?=?0;//當前幀和下一期望幀的序號
static?unsigned?char?frame_expected?=?0?too_far?=?NR_BUFS;
????static?unsigned?char?nbuffered;
int?arrived[NR_BUFS];//緩沖區,存放到達的幀
static?unsigned?char?out_buf[NR_BUFS][PKT_LEN]?in_buf[NR_BUFS][PKT_LEN];

????protocol_init(argc?argv);//初始化協議

????lprintf(“Coded?by?zdf?Build?Time:?“?__DATE__“??“__TIME__“\n“);

for(i?=?0;?i? arrived[i]?=?0;

????enable_network_layer();//啟動網絡層,準備接收數據

while(1)
{
event?=?wait_for_event(&arg); //等待事件,進行下一步操作
switch?(event)
{
case?NETWORK_layer_READY:
nbuffered++;????????????????????//發送卻未被確認的幀計數器+1
get_packet(out_buf[next_frame_to_send?%?NR_BUFS]);//得到分組存入緩沖區內
send_data_frame(frame_DATAnext_frame_to_sendframe_expectedout_buf);//發送數據幀
next_frame_to_send=(next_frame_to_send?+?1)?%?(?MAX_SEQ?+?1);//處理滑動窗口
break;

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????35647??2015-05-24?14:16??Selective\datalink-A.log

?????文件??????46710??2015-05-24?14:16??Selective\datalink-B.log

?????文件???????6152??2015-05-24?13:51??Selective\datalink.c

?????文件???????3476??2009-10-19?16:46??Selective\datalink.dsp

?????文件????????524??2009-10-16?10:23??Selective\datalink.dsw

?????文件?????500736??2015-05-24?13:52??Selective\datalink.exe

?????文件????????518??2009-10-16?12:34??Selective\datalink.h

?????文件????1095776??2015-05-24?13:52??Selective\datalink.ilk

?????文件??????50176??2009-11-28?19:29??Selective\datalink.ncb

?????文件???????4493??2015-05-19?13:31??Selective\datalink.o

?????文件??????48640??2009-11-28?19:29??Selective\datalink.opt

?????文件????2617344??2015-05-24?13:52??Selective\datalink.pdb

?????文件????????250??2009-11-28?19:00??Selective\datalink.plg

?????文件????2031616??2015-05-24?14:16??Selective\datalink.sdf

?????文件????????961??2015-05-19?15:20??Selective\datalink.sln

????..A..H.?????19456??2015-05-24?14:16??Selective\datalink.v12.suo

?????文件???????6293??2015-05-19?13:32??Selective\datalink.vcxproj

?????文件???????1445??2015-05-24?13:52??Selective\Debug\datalink.log

?????文件??????13592??2015-05-24?13:52??Selective\Debug\datalink.obj

?????文件????????616??2015-05-24?13:52??Selective\Debug\datalink.tlog\cl.command.1.tlog

?????文件????????980??2015-05-24?13:52??Selective\Debug\datalink.tlog\CL.read.1.tlog

?????文件????????384??2015-05-24?13:52??Selective\Debug\datalink.tlog\CL.write.1.tlog

?????文件????????164??2015-05-24?13:52??Selective\Debug\datalink.tlog\datalink.lastbuildstate

?????文件???????1084??2015-05-24?13:52??Selective\Debug\datalink.tlog\link.command.1.tlog

?????文件???????2694??2015-05-24?13:52??Selective\Debug\datalink.tlog\link.read.1.tlog

?????文件????????464??2015-05-24?13:52??Selective\Debug\datalink.tlog\link.write.1.tlog

?????文件??????27648??2015-05-24?13:52??Selective\Debug\vc120.idb

?????文件??????77824??2015-05-24?13:52??Selective\Debug\vc120.pdb

?????文件??????41984??2009-11-28?19:01??Selective\Debug\vc60.idb

?????文件??????53248??2009-11-28?19:00??Selective\Debug\vc60.pdb

............此處省略22個文件信息

評論

共有 條評論