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

  • 大小: 292KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-20
  • 語言: 其他
  • 標簽: 協議??選擇重傳??

資源簡介

北郵計算機網絡實驗 選擇重傳 實驗一:數據鏈路層滑動窗口協議的設計與實現 效率大于60%,采用CRC校驗技術,網絡層分組長度固定為256字節

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

#include?“protocol.h“
#include?“datalink.h“

void?printData(char?*p?int?size);

typedef?unsigned?char?seq_nr;
typedef?unsigned?char?frame_kind;
typedef?struct{unsigned?char?data[PKT_LEN];}?packet;
typedef?enum{network_layer_ready?physical_layer_ready?frame_arrive?data_timout?ack_timeout?chksum_error}?event_type;
typedef?enum{F?T}?mybool;

typedef?struct
{
????frame_kind?kind;?/*?frame_DATA?*/
????seq_nr?ack;
????seq_nr?seq;
????packet?info; /*?packet?*/
unsigned?char?padding[4]; /*?memory?space?used?for?crc?code?32?bit?*/
}?frame;

mybool?no_nak?=?T;?/*?no?nak?has?beem?yet?*/


static?void?Inc(seq_nr?*seq)
{
*seq?=?(*seq?+?1)?%?(MAX_SEQ?+?1);
}


static?mybool?between(seq_nr?a?seq_nr?b?seq_nr?c)
{
????/*return?T?if?a?<=?b?circulaly;?F?otherwise*/
????return?((a?<=?b)?&&?(b?}


static?void?send(frame_kind?fk?seq_nr?frame_nr?seq_nr?frame_expected?packet?buf[])
{
????/*?construct?frame?and?send?*/
????frame?s;?/*?tmp?variable?*/
????s.kind?=?fk;?/*?s.kind??=?data/ack/nak?*/

if?(fk?==?frame_DATA)
memcpy((char*)&s.info?(char*)&buf[frame_nr?%?NR_BUFS]?PKT_LEN); /*?store?the?packet?*/

????s.seq?=?frame_nr;?/*?only?meaning?for?data?*/
????s.ack?=?(frame_expected?+?MAX_SEQ)?%?(MAX_SEQ?+?1);

if?(fk?==?frame_NAK)
????????no_nak?=?F;

/*?compute?the?crc?code?the?crc?code?is?in?the?padding?memory?*/
*(unsigned?int*)?((unsigned?char*)&s?+?PKT_LEN?+?3)?=?crc32((unsigned?char*)&s?PKT_LEN?+?3);

/*?send?the?frame?to?the?physical?layer?*/
send_frame((unsigned?char*)&s?sizeof(s));

dbg_event(“組裝之后的?!!\n“);
printData((char*)&s?sizeof(s));

//printf(“CRC?send“);
//printData(s.padding4);
/*?warning:?short?may?not?be?2?bytes?according?to?the?computer?*/
if?(fk?==?frame_DATA)
dbg_frame(“Send?DATA?seq:%d?ack:%d?ID?%d\n“?s.seq?s.ack?*(short?*)(&s.info));
else?if?(fk?==?frame_ACK)
dbg_frame(“Send?ACK?seq:%d\n“?s.seq);
else?if?(fk?==?frame_NAK)
dbg_frame(“Send?NAK?seq:%d\n“?s.seq);

if?(fk?==?frame_DATA) /*?start?the?timeout?if?timeout??repeat?transmit?*/
start_timer(frame_nr?%?NR_BUFS?DATA_TIMER);

????stop_ack_timer();?/*?no?need?for?separate?ack?frame?*/
}


void?protocol6()
{
int?midstop=0;
????seq_nr?ack_expected?=?0; /*?lower?edge?of?sender‘s?window?*/
????seq_nr?next_frame_to_send?=?0; /*?upper?edge?of?sender‘s?window?*/
????seq_nr?frame_expected?=?0; /*?lower?edge?of?receiver‘s?window?*/
seq_nr?too_far?=?NR_BUFS; /*?uppder?edge?receiver‘s?window?+?1*/
????
????packet?out_buf[NR_BUFS];????/*?buffers?for?the?outbound?stream*/
????packet?in_buf[NR_BUFS];????/*?buffers?for?the?inbound?stream*/
mybool?arrived[NR_BUFS]?=?{F}; /*?inbound?bit?map?intial?to?all?F?*/
????seq_nr?nbuffered?=?0; /*?the?size?of?buffered?*/

frame?r; /*?tmp?variable?*/
????int?arg?=?MAX_SEQ?+?1;?/*?para?*/
????int?len?=?0;?/*?the?length?of?received?packet*/
unsigned?crc_ret?=?0;
event_type?even

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

?????文件?????134324??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink-A.log

?????文件?????134419??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink-B.log

?????文件???????8496??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink.c

?????文件???????3539??2012-11-29?23:08??數據鏈路層滑動窗口協議的設計與實現\datalink.dsp

?????文件????????524??2009-10-16?10:23??數據鏈路層滑動窗口協議的設計與實現\datalink.dsw

?????文件?????176212??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink.exe

?????文件????????836??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink.h

?????文件?????229992??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink.ilk

?????文件??????50176??2012-11-29?23:08??數據鏈路層滑動窗口協議的設計與實現\datalink.ncb

?????文件??????53760??2012-11-29?23:08??數據鏈路層滑動窗口協議的設計與實現\datalink.opt

?????文件?????484352??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink.pdb

?????文件???????1330??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\datalink.plg

?????文件??????13868??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\Debug\datalink.obj

?????文件?????198560??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\Debug\datalink.pch

?????文件??????41984??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\Debug\vc60.idb

?????文件??????53248??2012-11-29?21:37??數據鏈路層滑動窗口協議的設計與實現\Debug\vc60.pdb

?????文件??????94208??2009-10-19?22:57??數據鏈路層滑動窗口協議的設計與實現\Protocol.dll

?????文件???????1831??2009-10-19?16:46??數據鏈路層滑動窗口協議的設計與實現\protocol.h

?????文件???????5932??2009-10-19?22:57??數據鏈路層滑動窗口協議的設計與實現\Protocol.lib

?????目錄??????????0??2012-11-29?23:16??數據鏈路層滑動窗口協議的設計與實現\Debug

?????目錄??????????0??2012-11-29?23:16??數據鏈路層滑動窗口協議的設計與實現

-----------?---------??----------?-----??----

??????????????1687591????????????????????21


評論

共有 條評論