xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 1.61MB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-31
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 北郵??go-back-n??

資源簡(jiǎn)介

北郵 計(jì)算機(jī)網(wǎng)絡(luò)課程實(shí)驗(yàn) 滑動(dòng)窗口協(xié)議 選擇重傳協(xié)議與go-back-n協(xié)議 壓縮包內(nèi)附實(shí)驗(yàn)報(bào)告與配套代碼

資源截圖

代碼片段和文件信息

#include?
#include?

#include?“protocol.h“

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

#define?DATA_TIMER??3000???????//幀超時(shí)時(shí)間間隔
#define?ACK_TIMER?240??????????//ack的超時(shí)間隔

struct?frame?{?
//數(shù)據(jù)幀的結(jié)構(gòu)體定義
????unsigned?char?kind;
????unsigned?char?ack;
????unsigned?char?seq;
????unsigned?char?data[PKT_LEN];?
????unsigned?int??padding;
};

int?no_nak=1; //標(biāo)志是否已經(jīng)發(fā)送過(guò)nak
static?int?phl_ready?=?0; //物理層就緒標(biāo)記
unsigned?char?oldest_frame?=?MAX_SEQ?+?1; //

static?int?between(unsigned?char?aunsigned?char?bunsigned?char?c)??
//滑動(dòng)窗口判斷函數(shù),判斷幀號(hào)(ack號(hào))是否在窗口內(nèi)
{
???if(((a?<=?b)?&&?(b? return?1;
else
return?0;

}

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

static?void?send_data_frame(unsigned?char?fkunsigned?char?frame_nrunsigned?char?frame_expectedunsigned?char?buffer[NR_BUFS][PKT_LEN])
{
//發(fā)送數(shù)據(jù)幀,或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)//發(fā)送的是數(shù)據(jù)幀
{
memcpy(s.data?buffer[frame_nr?%?NR_BUFS]?PKT_LEN);//復(fù)制分組到幀內(nèi)
dbg_frame(“Send?DATA?%d?%d?ID?%d\n“?s.seq?s.ack?*(short?*)s.data);//輸出記錄
????????put_frame((unsigned?char?*)&s?3?+?PKT_LEN);???//發(fā)送
start_timer(frame_nr?%?NR_BUFS?DATA_TIMER);?????//啟動(dòng)定時(shí)器
}
else?if(fk?==?frame_NAK)//發(fā)送的是NAK
{
no_nak?=?0;?????????????????????????????????????//下一次不再發(fā)送nak
????put_frame((unsigned?char?*)&s?3);????????????//發(fā)送
}
else?if(fk?==?frame_ACK)//發(fā)送的是ACK
{
dbg_frame(“Send?ACK??%d\n“?s.ack);//輸出記錄
????????put_frame((unsigned?char?*)&s?3);//發(fā)送
}
phl_ready?=?0; //物理層阻塞
stop_ack_timer();???????????????????????//關(guān)閉ack定時(shí)器
}

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;//當(dāng)前幀和下一期望幀的序號(hào)
static?unsigned?char?frame_expected?=?0?too_far?=?NR_BUFS;
????static?unsigned?char?nbuffered;
int?arrived[NR_BUFS];//緩沖區(qū),存放到達(dá)的幀
static?unsigned?char?out_buf[NR_BUFS][PKT_LEN]?in_buf[NR_BUFS][PKT_LEN];

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

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

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

????enable_network_layer();//啟動(dòng)網(wǎng)絡(luò)層,準(zhǔn)備接收數(shù)據(jù)

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

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????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個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源