《计算机网络课程设计(第2版)》——2.5节相关扩展

2.5 相关扩展
前面我们提到,校验和还有其他一些计算方法,下面我们就来简要介绍一下利用延迟进位法进行计算的方法。
延迟进位法的算法描述:将进位累加的过程延迟到整个累加循环结束之后进行,这样可以提高计算速度。

  1. 主要的实现过程
while(!infile.eof())         //判断文件是否结束, 若否则对被校验的16位数据进行累加
{
    int h,l;                 //分别表示16位数据的高8位和低8位
    infile>>hex>>h;          //从文件中读入一个16进制表示的数据, 作为高8位
    if(infile.eof()) l=0;    //若后面没有其他数据, 将0作为低8位
    else infile>>hex>>l;     //若后面还有数据, 读入下一个作为低8位
    sum+=(h*256+l);          //将组合好的16位数据累加到sum中
}
infile.close();              //关闭文件
check_sum=short((sum&0xffff)+(sum>>16));
//将32位累加和转换为16位数据
//若累加过程中有向高16位的进位, 则要将进位部分加到低16位上
check_sum=~check_sum;        //对累加和取反码
时间: 2024-10-22 07:46:04

《计算机网络课程设计(第2版)》——2.5节相关扩展的相关文章

《计算机网络课程设计(第2版)》——1.1节计算机网络课程的教学特点

第1章 计算机网络课程教学.实验与课程设计的关系 1.1 计算机网络课程的教学特点在进行计算机网络课程设计之前,我们需要对计算机网络课程的教学大纲.学习要求与教材体系做一个说明.因为不同的教材对学习内容的安排有所差异,但是本书综合考虑了不同教材的基本特点,总结计算机网络课程中必须掌握的基础知识与基本技能,在此基础上选择了14个课程设计的课题.根据计算机网络技术的特点,在计算机网络课程教学的组织中需要处理好以下三个方面的关系. 计算机技术知识与通信知识的关系从计算机科学与技术学科的角度来看,计算机

《计算机网络课程设计(第2版)》——1.3节计算机网络课程的知识点

1.3 计算机网络课程的知识点 1. 组织计算机网络课程的知识点 在组织计算机网络课程的知识点时,一般都是以Internet技术与高速网络技术为主线,加入网络发展的最新成果. 网络最重要的应用是Internet.Internet对科技进步和社会发展的影响是非常显著的,并且这种影响还在继续扩大,这也正体现出网络技术发展的生命力.因此,学习网络知识重要的是通过学习网络的基本知识,认识Internet的核心技术,理解Internet的实现方法.通过本课程的学习,学生能够初步掌握网络和Internet技

《计算机网络课程设计(第2版)》——导读

目 录 第一部分 课程设计目标第1章 计算机网络课程教学.实验与课程设计的关系 1.1 计算机网络课程的教学特点1.2 计算机网络课程的实验教学与课程设计的关系 1.3 计算机网络课程的知识点 1.4 课程设计要求及评分标准 第二部分 课程设计指导第2章 计算校验和 2.1 课程设计目的 2.2 课程设计要求 2.3 相关知识 2.4 课程设计分析 2.5 相关扩展 第3章 封装Ethernet帧 3.1 课程设计目的 3.2 课程设计要求 3.3 相关知识 3.4 课程设计分析 3.5 相关扩

《计算机网络课程设计(第2版)》——1.4节课程设计要求及评分标准

1.4 课程设计要求及评分标准 安排网络课程设计的目的有两个:一是引导学生将书本上抽象的概念与具体实现技术结合起来,使学习深化:二是消除学生对协议的神秘感,调动学生学习的积极性与主动性. 网络课程设计基本是按照上述的知识体系安排的.本书中的14个课程设计课题基本覆盖了上述4个学习单元的主要内容.每个题目都具有一定的代表性,希望学生通过完成课程设计课题,体会网络协议设计与实现过程,以及专业技术人员所使用的基本方法和技巧. 课程设计要求: 1) 正确理解题意. 2) 有良好的编程规范和适当的注释.

《计算机网络课程设计(第2版)》——3.1节课程设计目的

第 3 章 封装Ethernet帧 3.1 课程设计目的帧是在数据链路层中进行数据传输的基本单位.熟悉帧结构对于理解网络协议的概念.网络层次结构与协议执行过程具有重要意义.本课程设计的主要目的是通过封装Ethernet帧,了解Ethernet帧中各个字段的含义与用途.

《计算机网络课程设计(第2版)》——3.4节课程设计分析

3.4 课程设计分析 1. 填充帧头部字段 要完成一次帧封装的过程,首先要完成的就是帧头部的装入,这一过程非常简单,只要将前导码.定界符.目的地址.源地址.长度字段的相应数值按顺序写入就可以了.其中,长度字段的值即为要发送的数据的实际长度.我们可以通过以下两种方式来获得长度字段的值. 方法一 while(!in.eof()) //读数据至缓冲区buf { in.get(a); buf[j]=a; //通过j来记录输入数据的长度 j++; } 方法二 infile.open(argv[1],ios

《计算机网络课程设计(第2版)》——2.4节课程设计分析

2.4 课程设计分析 校验和的计算过程主要分为三个步骤:数据文件的输入.校验和的计算和校验结果的输出.其中,主要的是数据的输入和校验和的计算. 1. 数据的输入方式 输入数据可能是以字符形式存储的,而校验和的计算则要采用数据形式,所以在从文件读取数据时,都要进行字符到数据的相互转换. 1) 将读入的ASCII码转化为相应的整型变量. if(ch>='0'&&ch<='9') ch-='0'; else { if(ch>='a'&&ch<='f') c

《计算机网络课程设计(第2版)》——3.2节课程设计要求

3.2 课程设计要求 根据后面介绍的IEEE 802.3帧结构,编写程序将指定数据封装为Ethernet帧. 1)以命令行形式运行: EncapFrame input_file output_file 其中,EncapFrame为程序名,input_file为输入数据文件,output_file为输出数据文件. 2)输出内容:Ethernet帧的各字段内容.

《计算机网络课程设计(第2版)》——2.2节课程设计要求

2.2 课程设计要求根据后面介绍的校验和算法,编写程序为给定数据计算校验和.1) 以命令行形式运行: Checksum input_file 其中Checksum为程序名,input_file为输入数据文件名.2) 输出内容:数据文件的校验和.

《计算机网络课程设计(第2版)》——2.3节相关知识

2.3 相关知识 校验和的概念网络上的数据最终都是通过物理传输线路进行传输的,如果高层没有采用差错控制,那么物理层传输的数据可能有差错.为了保证传输数据的正确性,在物理层的基础上设计了数据链路层.设计数据链路层的主要目的就是在原始的.有差错的物理传输线路的基础上,采用差错检测.差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,以向网络层提供高质量的服务. 目前,进行差错检测和控制的主要方法是:发送方在需要发送的数据后面增加一定的冗余信息,这些冗余信息通常是通过对发送的数据