计算机网络网络层协议实验报告,计算机网络关于数据链路层协议的实验报告.doc...

东南大学电气工程学院实验报告第 PAGE 6页 共 NUMPAGES 7页

PAGE

PAGE 6

第 PAGE 6 页

第 PAGE 0页 共 NUMPAGES 8页

实 验 报 告

实验名称

数据链路层协议的理解与实现

课程名称

计算机网络

姓名

王颖

学号日期

地点

成绩

教师

王磊

电 气 工 程 学 院

东 南 大 学

实验一 数据链路层协议的理解与实现

一.实验目的:

1.加深对流量控制、差错处理方法的理解;

2.熟悉TCP/IP编程, 将书本知识运用到实验中;

3.开拓学生的创新意识,培养学生的独立动手操作的能力;

二.实验内容:

利用已有的模拟信道程序,编制发送、接收程序的部分模块,使系统具有可靠的收发功能。具体要求

采用无连接Socket编程

地址与端口

发送端: 地址:127.0.0.1 端口:8001

接收端: 地址:127.0.0.1 端口:6001

数据帧格式:序号

数据

校验位

长度 应答帧格式:应答需考虑的异常情况:出错、丢失、延时

采用停等协议

单工方式

ACK/NAK的表示:ACK:0x06

NAK:0x15

待完成模块要求

1)发送程序:偶校验;编码;发送、接收;差错处理、流量控制。

2)接收程序:检查偶校验;应答;发送、接收

三.实验环境(软件、硬件及条件):

Microsoft visual C++ 6.0

四.实验原理

程序实现的原理

Windows Sockets(套接字) 是在Windows下一套开放的、支持多种协议的网络编程接口规范。为Windows下网络异步通信提供了一种方便的开发和运行环境。

Windows Sockets规范建立在BSD UNIX 中实现的Berkeley 套接字模型上,现已是TCP/IP网络的标准。它独立于底层的协议。

其原理示意图如下

数据链路层

数据链路层目的是建立在物理层基础上,通过一些数据链路层协议,在不太可靠的物理链路上实现可靠的数据传输。即数据链路层提供网络中相邻节点之间可靠的数据通信。

数据链路层的主要功能是为网络层提供连接服务,并在数据链路连接上传送帧。依据功能可以分为有连接和无连接两种。本实验采用的是有应答,无连接服务。

无连接服务时,发送方的数据链路层要发送数据时,就直接发送数据帧。接收方的数据链路层能够接受数据帧,或者收到的帧校验正确,就像源主机数据链路层发送应答帧;不能接受或接受到的帧校验不正确时,就返回否定应答,发送端要么重发原帧,要么进入等待状态。

面向无连接的socket使用方法如下:

3) 停等协议

停止-等待 ARQ协议是指发送端发送一个帧后,不继续发送而是等待对该帧的确认。在发送端,每次只能处理数据链路层的发送缓冲区中的一个数据帧,将缓冲区中的该帧发送出去,同时启动定时器(本实验采用1.5秒),等待接收端会送的确认帧。当发送端收到ACK确认后,认为该帧已成功到达,再取一个新的数据帧进行发送。若收到由接收端发过来的否定确认NAK,则必须暂时保存已发送给的数据帧的备份,进行重传。本实验中,ACK:0x06 NAK:0x15。

本实验的数据在数据链路上传输的情况有四种,即正常、丢失、延时、出错。采用停等协议时如下:

程序功能说明,各个模块的详细说明;

核心模块程序流程图;

五.实验方法:

主要源代码说明;

1.发送方(Sender)程序模块

发送信息

int SendMsg(char *msg, int len){

bSending=1;

int n;

n = sizeof(channelsender_addr);

sendto(sender_sockfd, msg, len, 0, (struct sockaddr *) &channelsender_addr, n);

return 0;}

接收信息

int ReceiverMsg(char *msg){

int n;

n = sizeof(channelsender_addr);

recvfrom(sender_sockfd,msg,MAX_MSG_SIZE,0,(structsockaddr*)&channelsender_addr, &n);

bSending=0;return 0;}

通过设置bSending变量,使用SenderView中的CSenderView::OnTimer (UINT nIDEvent),从而使得数据帧在超时1.5秒后可以重发,如此可以实现延时和出错情况下的自动重发功能。使用库函数sendto (

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值