计算机网络总结 本文关键词:计算机网络
计算机网络总结 本文简介:1)物理层的作用是在网络节点之间的物理媒体上提供的路线的建立、维持和释放,实现二进制位流的透明传输,并进行差错检查等。物理层是对DTE和DCE之间通信接口的描述和规定2)物理层提供的功能1、保证数据按位传送的正确性,同时提供通信接口定义、控制信号、数据传输速率、接口信号电平等2、物理层管理;3、建立
计算机网络总结 本文内容:
1)物理层的作用是在网络节点之间的物理媒体上提供的路线的建立、维持和释放,实现二进制位流的透明传输,并进行差错检查等。物理层是对DTE和DCE之间通信接口的描述和规定
2)物理层提供的功能
1、保证数据按位传送的正确性,同时提供通信接口定义、控制信号、数据传输速率、接口信号电平等2、物理层管理;3、建立、维持和释放物理连接
3)数据链路层的作用是利用物理层提供的位串传输功能,将物理层传输原始比特流时可能出错的物理连接,改造成为逻辑上无差错的数据链路,在相邻节点间实现透明的高可靠性传输,同时为网络层提供有效的服务。
4)成帧的目的是为了一旦在数据传输时出错,只重传或纠正有错的帧,而不必重发全部数据,从而提高效率。
5)帧的同步为了能收到比特流中明确区分出一帧,发送方必须建立和识别帧的边界,一般是在帧的开始和结束位置增加一些特殊的位组合来实现。
6)差错发生的原因主要是由于线路本身点起特性所产生的随机噪声(热噪声)、信号振幅、频率和相位的衰减或畸变、电信号在传输介质上的反射回音效应、相邻线路的串扰、外界的电磁干扰和设备保障等因素造成的
7)数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的事单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,他通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错
8)检错码和纠错码:只有具有检错能力的编码称为检错码。既能检错又能自动纠错能力的编码称为纠错码。差错控制方式有自动请求重发ARQ和前向纠错FEC
ARQ采用检错码方法实现,它使用冗余技术。所谓冗余技术是在发送方的数据单元中增加一些用于检查差错的附加位,便于接收端进行检错。
FEC采用纠错码方法实现。纠错码比检错码复杂,需足够多的冗余位,实现来复杂,编码和解码速度慢,效率低,造价高且费时。常用ARQ
9)奇偶校验码通过在信息位的后面附加一个检验位,使得码字中的“1”的个数保持为奇数和偶数的编码方法
同时有两个错误的时候就检查不出来了
10)循环冗余校验码(CRC)是一种最常用的检错码。CFC是通过在信息位的后面附加一串冗余的比特实现的。方法是将要发送的二进制比特序列当做一个多项式F(X)的系数,在发送端,用双方预先约定的G(x)生成多项式对应的比特序列去除,F(x)对应的比特序列后面加上n个0,n是一个比G(X)生成多项式对应的比特序列的位数减一的数求的一个余数多项式,他就是循环冗余检验码,然后将他附加在防灾信息位的后面组成CR码进行传输。在接收端,用同样的G(x)去除接受到的比特序列,若能被其整除,便是传输正确,否则表示有错
11)流量控制是限制发送方的数据发送流量,使其发送速率下至超过接收方所能处理的能力,而导致帧的“淹没”一般利用滑动窗口
12)链路管理用于面向连接的服务,他包括链路的建立、维持和释放,它可以为网络层提供几种不同质量的链路服务。
13)数据链路控制协议
异步协议:以字符作为信息传输单位,在每个字符的起始处同步,但字符之间的间隔时间是不固定的(即字符之间是异步的)
同步协议:以许多字符或许多比特组织的数据块位传输单位,在帧的起始处同步。同步协议又分为面向字符(字节)的协议和面向比特的协议两类。如:HDLC
14)物理层和数据链路层考虑节点间直接相连的情形(LAN内),而网络层则考虑源和目的节点曾在许多中间节点的情形(WAN内),网络层是通信子网的最高层,主要任务是提供路由,以及数据的交换方式、流量控制、阻塞与死锁处理和网际互联等问题。网络层数据单元称为分组或者包
15)网络层主要作用:
建立网络连接,提供网络地址,提供寻址
实现网络数据单元(包)的传送
路由选择
拥塞控制
差错控制
消除通信子网的质量差异
确定网络层服务质量参数,如网络吞吐量、网络延迟等。
16)网络层提供的服务
1)面向连接的服务
主要是虚电路(电话型服务)。这种方式在数据传输时,需要经过连接的建立、维持(数据传输)和连接的拆除三个阶段。连接建立好后,所有的包沿着虚电路有序、无差错的传输,面向连接的服务往往是有确认的服务,使用与可靠性要求高和大量数据传输的应用领域,典型的提供面向连接的服务时X.25协议。
2)面向无连接的服务
主要是数据服务(电报型服务)。数据传输不需建立连接和拆除过程,各个数据包多有自己的控制信息。因此,面向无连接的服务时不可靠的网络服务,但这种方式因无信道的连接和拆除过程,开销小,在信息不太长时非常使用。典型的面向无连接的服务时IP协议。
17)路由的选择
广域网中原结点和目的节点之间一般有多传输路径共选择,网络中每个中间节点在收到一个数据包后,多要确定下一个节点的传送路径,这就是路由选择。完成路由选择的设备是路由器,路由算法有一下几种:
1、静态路由选择策略
a,扩散法(效率低
但他的间断性更前)
b固定路由选择
c随机路由选择(效率也不是很高
处于中等)
2、动态路由选择策略
a独立路由选择(根据自己的信息区选)
b集中路由选择
c
分布路由选择(不断变更)
18)拥塞控制
拥塞也称阻塞,是只源和目的节点之间中某一个中间节点缓存中的包数量过多,使得该部分网络来不及处理,而后续的数据包还不断传送过来,导致缓存中的数据包“淹没”,以至这部分乃至整个网络性能急剧下降(甚至死锁)
拥塞现象如同交通拥挤一样,在某个瓶颈路段,各种走向的车流相互干扰,是每辆车到达目的地的时间都相对增加(延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(局部死锁)
注意:
网络层最典型的协议时IP协议、X.25(提供面相连接的虚电路终端)、帧中继(加快速度
局域网用的多)和ATM
19)传输层处于通信子网和资源子网之间,起着承上启下的作用,它能在源和目的计算机之间提供可靠经济的数据传输服务,而且独立于所使用的网络(屏蔽各种通信子网的差异),同时向高层提供一个标准及完善的服务界面
20)传输层的功能
传输层是OSI/RM的核心,它提供的服务类似于数据链路层。区别是数据链路层控制局域网中单条链路上“点到点”传输的情形,而“端到端”是指从源段到目的端,终极爱你可以有一个或多个交换节点。传输层功能有下面几个:端到端的传递
寻址
可靠传输
流量控制
复用
分段和重组
20)面向连接和面向无连接
端到端的传递也采用面向连接和面向无连接两种方式。面向连接的协议通过互联网在源端和目的端之间建立一条虚电路或路径,然后,属于同一个报文的所有数据包多在这一路径上传递。面向连接有连接建立、数据传输和链接终止三个阶段。
面向无连接的传输服务只为上层提供一种类型的服务,他为所有传输提供单个独立的数据单元。每个单元包含传输所需要的所有协议控制信息,但是不提供顺序和流量控制。
TCP/IP协议中的TCP和UDP是传输层协议。其中,传输控制协议TCP协议时面向连接的协议,用户数据报协议UDP时面向无连接的协议
21)高层协议
会话层
功能有限,他们提供的服务主要有
数据交换
隔离服务
与会话管理有关的服务
会话层与传输层的交互
同步点
表示层
翻译
数据加密
认证
数据压缩
22)局域网只涉及通信子网的功能,它是同一个网络中节点与节点之间的数据通信问题,它不涉及网络层。数据链路层分为媒体访问控制MAC和逻辑链路控制LLC两个子层,LLC子层与所有的传输介质无关,仅让MAC子层根据物理介质处理介质访问控制方法
23)局域网的介质访问控制方法
1)具有冲突检测的载波侦听多路访问(CSMA/CD)--争用型
2)令牌技术-----轮询型
采用轮流访问的公平公式,类似“击鼓传花”游戏。TOKEN技术最初用在环型拓扑结构中,它使用一个称为令牌的特殊短帧,可以把令牌当做一个通行证,网络中只有取得TOKEN的节点才可以发送数据。当网络中没有发送数据时令牌就沿高速单向绕行。
令牌访问介质方式的优点是:不存在竞争,因此不出现冲突,常用语高负荷通信量较大的网路。
令牌环绕一周的时间是固定,实时性好,设和与控制型或实时性要求较高的场合
令牌单向流动,因此可使用带宽高的光纤作为传输介质。
可以设置优先级,适合于集中管理
负荷较高时,有较好的响应方式
24)网络适配器的功能:完成物理层和数据链路层的功能,实现并行数据和串行信号之间的转换、数据帧的装配与拆装、介质访问控制和数据缓冲等。
25)以太网
之所以称之为以太网,源于电磁辐射是可以通过发光的以太来传播
这一想法以太网的体系结构
以太网结构简单,易于实现,技术相对成熟,网络连接设备的成本越来越低。以太网类型较多,但互相兼容,不同类型的以太网可以很好地集成在一个局域网中,他的扩展性很好。因此,当前组建局域网校园网和企业网的单元多把以太网作为首选
26)令牌环工作原理
令牌环网在物理上由一系列换接口和这些接口间的点-点链路构成的闭合环路,个站点通过环接口连接到网络上,令牌和数据帧沿环单向流动。取得令牌的站点,通过换接口将数据帧串行发送到环上,环上的其他个站点检测并转发环上的数据帧,当目的地址与自身站点地址相符时,复制该帧并该帧转发出去,是数据帧在环上从一个站点传至下一个站点。数据帧绕环一周返回到发送站点,由发送站点将其删除,并生成一个新的令牌发送到环上。
27)
28)集线器作用和中继器类似,执行相同的功能。遵循相同的中继规则。HUB是一种多端口的中继器,每个端口多具有发送与接收数据的能力。
当某个端口收到连接该端口上的主机发来的数据时,就转发至其他端口。在数据转发之前,每个端口多对他进行再生、整形,并重新定时。用HUB连接以太网时,虽然物理上是星型结构,但逻辑上仍然是一个总线型结构。
网桥的作用有两个方面:
将一个负载过重的网络分割成若干小段,每个网段各自享用自己独立的带宽,以提高网络的效率,从而减少网络的信息流量。
延伸网络的距离。应为使用中继器受网络直径和中继规限的限制,通过网桥可进一步延伸网络的距离。
30)网桥的分类
按网桥的所处的位置可分为内桥和外侨两种。
按网桥分布的地理范围可分为本地网桥和远程网桥。
31)网桥的学习功能
网桥接受到一个数据帧时,他检查数据的源地址(物理地址),并将该地址与网桥的路径表中各项进行对比,如果在路径中没找到,则将新的源地址加入路径表中,这就是网桥对网络地址的学习功能
32)交换机和集线器外观相似,他是一种低价位高性能的多端口网络设备,它除了具有集线器的全部特性外,还具有自动寻找、数据交换等功能。交换技术可以工作在网络层和应用层。因此有所谓的第三次、第四层及高层交换的概念。这里只讨论第二层的交换机
1、交换机的工作原理
交换机也按存储转发的原理共作,具有数据帧的过滤和地址学习功能。地址学习功能是:首先检查端口传送来的数据帧物理地址,与交换机内部的动态路径表进行比较,若不在路径表中,则加入路径表中,若在路径表中,则将数据帧转发到对应的目标端口,而且只向目标端口转发数据帧。
路由表
静态路由表:事先设置固定不变的路径表。
动态路由表:根据网络拓扑、负载的改变等情况自动调整的路径表
路由器(网关)的IP编址
路由器或网关常常被分配两个或更多的IP地址,用于连接两个或多个网络
ip地址的分配和使用
Internet中IP地址是由指定机构分配的。这些地址外部用户可以访问它们,将它称为IP公有地址。局域网内部的计算机如果不作为Internet的主机供其它用户访问,那么IP地址可以任意分配。IPV6的地址只有32位,资源已十分紧张,在新一代的internet中将会使用128位的IPV6地址
子网划分的作用
可以连接不同的网络
重新组合网络的通信量
减轻网络地址数不够的负担
更有效的使用网络地址
端口号
对于TCP或UTP得应用程序,多有标示该应用程序的端口号,即端口号是用于区分各种应用,端口号的长度是16位,可提供65536个不同的端口号
UDP协议没有连接建立、释放连接过程和确认机制,因此数据传输速率较高,具有更高的优越性。它被广泛应用于如IP电话、网络会议、可视电话、现场直播、视频点播VOD等传输语言或影像等多媒体信息的场合
UDP数据报的传输
在源段,UDP便完成了工作。他没有建立连接等三次握手过程。在目标端,UDP先判断所收到的数据报的目标端口号是否与当前使用的某个端口匹配,如果是则将数据报放入相应接受队列,否则抛弃该数据报,并向源段发送“端口不可到达”的报文。但有时虽然端口号匹配,但如果相应端口的缓冲区已满,UDP也是抛弃该数据报。
IpV6的特征
巨大的地址空间
全新的地址配置方式
灵活的头部格式
简化了协议,加快了分组的转发
对QOS有更好的支持
内置的安全性
全新的邻居发现协议
可扩展性
篇2:计算机网络与通信习题及答案
计算机网络与通信习题及答案 本文关键词:计算机网络,习题,答案,通信
计算机网络与通信习题及答案 本文简介:1.6比较电路交换、存储转发交换、报文交换和分组交换的区别。解答:(1)电路交换的基本原理是在源端和目的端间实时地建立起电路连接,构成一条信息通道,专供两端用户通信。通信期间,信道一直被通信双方用户占有,通信结束,立即释放。线路交换的特点是:数据传输可靠、迅速、有序,但线路利用率低、浪费严重,不适合
计算机网络与通信习题及答案 本文内容:
1.6
比较电路交换、存储转发交换、报文交换和分组交换的区别。
解答:(1)电路交换的基本原理是在源端和目的端间实时地建立起电路连接,构成一条信息通道,专供两端用户通信。通信期间,信道一直被通信双方用户占有,通信结束,立即释放。线路交换的特点是:数据传输可靠、迅速、有序,但线路利用率低、浪费严重,不适合计算机网络。
(2)存储转发交换是在传统的电路交换技术的基础上提出的。存储转发和电路交换的主要区别是:发送的数据与目的地址、源地址、控制信息按照一定格式组成一个数据单元(报文或报文分组)进入通信子网,通信子网中的结点要负责完成数据单元的接收、差错校验、存储、路选和转发功能。存储转发交换包括报文交换和分组交换两种。
(3)报文交换采用“存储-转发“方式进行传送,无需事先建立线路,事后更无需拆除。它的优点是:线路利用率高、故障的影响小、可以实现多目的报文;缺点是:延迟时间长且不定、对中间节点的要求高、通信不可靠、失序等,不适合计算机网络。
(4)分组交换中数据以短分组的形式传输,分组长度一般为1000字节。如果发送端有更长的报文需要发送,那么这个报文被分割成一个分组序列,每个分组由控制信息和用户数据两部分组成。分组交换适用于计算机网络,在实际应用中有两种类型:虚电路方式和数据报方式。分组交换的优点是:高效、灵活、迅速、可靠、经济,但存在如下的缺点:有一定的延迟时间、额外的开销会影响传输效率、实现技术复杂等。
2.5
假设在带宽为3100
Hz、信噪比为30
dB的语音信道上,通过Modem传输数字数据,那么在该语音线路上,理论上所能达到的最大数据传输速率是多少?
解答:
30=10lg1000
根据香农定理:
C=
Wlb
(b/s)
=
3100
lb(1+1000)=30.9kbps
2.11
什么是扩频通信?基本的扩频技术有哪两种?试分析其基本原理。解答:
扩频(spread
spectrum)的基本思想是将携带信息的信号扩散到较宽的带宽中,用以加大干扰及窃听的难度。常见的扩频技术有跳频和直接序列扩频两种。扩频通信的基本原理如图2.1所示。
图2.1
扩频通信的基本原理
2.16
常见的光交换有几种方式?各有何优缺点?
解答:光交换技术可分成光的电路光交换(光路交换)和分组光交换两大类。
电路光交换方式采用OADM、OXC等光器件设置光通路,在中间节点不需要使用光缓存,其交换方式与传统的电路交换技术相类似,目前光的电路光交换研究已经较为成熟。
分组光交换系统按照对控制包头处理以及交换粒度的不同可分为:光分组交换(OPS)、光突发交换(OBS)和光标记分组交换(OMPLS)。分组光交换与光电路交换相比,有着很高的资源利用率和很强的适应突发数据的能力。
3.8
若P
=
110011,而M
=
11100011,计算CRC。
解答:由于模式P=110011,共6bit,所以FCS
R=5bit,所以要在信息码字后补5个0,变为1110001100000。用1110001100000除以110011,余数为11010,即为所求的冗余位。
因此发送出去的CRC码字为原始码字11100011末尾加上冗余位11010,即
1110001111010。
4.6
试比较几种共享信道方法的特点。
解答:受控多点接入主要采用轮询的方式,在线路上有一个轮询帧,各站有数据时才发送,在网络通信量比较小时,工作效率较低。
ALOHA方式采用随机接入技术,是一种完全随机式分布控制的媒质接入方式,哪一个节点想发送帧就发送,而不管其他节点和信道的状况,当发生数据碰撞时就要重新发送。
CSMA也是采用的随机接入技术,它的基本原理是:任一个网络节点在它有帧欲发送之前,先监测一下广播信道中是否存在别的节点正在发送帧的载波信号。如果监测到这种信号,说明信道正忙,否则信道是空闲的。然后,根据预定的控制策略来决定是否发送数据。
令牌传递接入适用于环形网络,它有一个令牌在换上传递,令牌的忙或闲状态代表信道是否空闲以供节点站接入使用。闲令牌到达某一个站,相当于把信道的使用权轮给了该节点站。
5.1
CSMA/CD的工作过程包括那些步骤。
解答:CSMA/CD的工作过程包括以下步骤:
第1步:新帧进入缓冲器,等待发送;
第2步:监测信道。若信道空闲,启动发送帧,发完返回第1步;否则,若信道忙碌,继续;
第3步:转至第2步。
5.13
试比较IEEE802.3、IEEE802.4和IEEE802.5三种局域网的优缺点。
解答:IEEE
802.3、802.4和802.5分别包括了MAC子层协议和物理层协议,其中最大的不同体现在介质访问控制协议,即CMSA/CD、Token
Bus和Token
Ring。CSMA/CD协议的总线LAN中,各节点通过竞争的方法强占对媒体的访问权利,出现冲突后,必须延迟重发,节点从准备发送数据到成功发送数据的时间是不能确定的,它不适合传输对时延要求较高的实时性数据。其优点是结构简单、网络维护方便、增删节点容易,网络在轻负载(节点数较少)的情况下效率较高。Token
Ring不会出现冲突,是一种确定型的介质访问控制方法,每个节点发送数据的延迟时间可以确定。在轻负载时,由于存在等待令牌的时间,效率较低;而在重负载时,对各节点公平,且效率高。令牌总线与令牌环相似,适用于重负载的网络中、数据发送的延迟时间确定以及,适合实时性的数据传输等,但网络管理较为复杂。
6.6
什么是测距技术?在PON系统中为什么要采用测距技术?
解答:测距技术是测量各个ONU到OLT的实际距离的技术。
在APON系统中,工作在点到多点方式,各个ONU到OLT的距离不等,为了防止各个ONU所发上行信号发生冲突,OLT必须不断测量每一ONU与OLT之间的距离,指挥每一ONU调整发送时间使之不至于发生冲突。解决的办法是在所有的ONU中插入补偿时延,使每个ONU到OTL的总时延相等。
6.9
简述EPON的优点。
解答:EPON具有如下一些优势:
(1)局端(OLT)与用户(ONU)之间仅有光纤、光分路器等光无源器件,可有效节省建设和运营维护成本。
(2)EPON采用以太网的传输格式同时也是用户局域网(驻地网)的主流技术,二者具有天然的融合性,消除了传输协议转换带来的成本因素。
(3)采用单纤波分复用技术(下行1490
nm,上行1310
nm),仅需一根主干光纤和一个OLT,传输距离可达20
km。在ONU侧通过光分路器最多可分送给32个用户,因此可大大降低OLT和主干光纤的成本压力。
(4)
上下行均为千兆速率,下行采用针对不同用户加密广播传输的方式共享带宽,上行利用时分复用(TDMA)共享带宽。高速宽带充分满足接入网客户的带宽需求,并可方便灵活地根据用户需求的变化动态分配带宽。
(5)
EPON具有点对多点的结构,只需增加ONU数量和少量用户侧光纤即可方便地对系统进行扩容升级,充分保护运营商的投资。
(6)
EPON具有同时传输TDM、IP数据和视频广播的能力,其中TDM和IP数据采用IEEE802.3以太网的格式进行传输,辅以网管系统,来保证传输质量。
7.2
试比较虚电路服务和数据报服务的异同点。
解答:数据报和虚电路的区别
存在以下几点:
(1)在传输方式上,虚电路服务在源、目的主机通信之前,应先建立一条虚电路,然后才能进行通信,通信结束应将虚电路拆除。而数据报服务,网络层从运输层接收报文,将其装上报头(源、目的地址等信息)后,作为一个独立的信息单位传送,不需建立和释放连接,目标结点收到数据后也不需发送确认,因而是一种开销较小的通信方式。但发方不能确切地知道对方是否准备好接收,是否正在忙碌,因而数据报服务的可靠性不是很高。
(2)关于全网地址:虚电路服务仅在源主机发出呼叫分组中需要填上源和目的主机的全网地址,在数据传输阶段,都只需填上虚电路号。而数据报服务,由于每个数据报都单独传送,因此,在每个数据报中都必须具有源和目的主机的全网地址,以便网络结点根据所带地址向目的主机转发,这对频繁的人—机交互通信每次都附上源、目的主机的全网地址不仅累赘,也降低了信道利用率。
(3)关于路由选择:虚电路服务沿途各结点只在呼叫请求分组在网中传输时,进行路径选择,以后便不需要了。可是在数据报服务时,每个数据每经过一个网络结点都要进行一次路由选择。当有一个很长的报文需要传输时,必须先把它分成若干个具有定长的分组,若采用数据报服务,势必增加网络开销。
(4)关于分组顺序:对虚电路服务,由于从源主机发出的所有分组都是通过事先建立好的一条虚电路进行传输,所以能保证分组按发送顺序到达目的主机。但是,当把一份长报文分成若干个短的数据报时,由于它们被独立传送,可能各自通过不同的路径到达目的主机,因而数据报服务不能保证这些数据报按序列到达目的主机。
(5)可靠性与适应性:虚电路服务在通信之前双方已进行过连接,而且每发完一定数量的分组后,对方也都给予确认,故虚电路服务比数据报服务的可靠性高。但是,当传输途中的某个结点或链路发生故障时,数据报服务可以绕开这些故障地区,而另选其他路径,把数据传至目的地,而虚电路服务则必须重新建立虚电路才能进行通信。因此,数据报服务的适应性比虚电路服务强。
(6)关于平衡网络流量:数据报在传输过程中,中继结点可为数据报选择一条流量较小的路由,而避开流量较高的路由,因此数据报服务既平衡网络中的信息流量,又可使数据报得以更迅速地传输。而在虚电路服务中,一旦虚电路建立后,中继结点是不能根据流量情况来改变分组的传送路径的。
综上所述,虚电路服务适用于交互作用,不仅及时、传输较为可靠,而且网络开销小。数据报服务适用于传输单个分组构成的、不具交互作用的信息以及对传输要求不高的场合。
7.5
已知下图7-17所示的子网和各链路的延迟,用最短通路算法求从源点A到目标结点D的最佳路径。
图
7-17
解答:A—B—C—D
7.7
拥塞控制和流量控制有什么关系和不同点?
解答:流量控制与拥塞控制的关系与区别如下:
(1)流量控制:接收端向发送端发出信号,请求发送端降低发送速率;
拥塞控制:接收端也向发送端发出信号,告之发送端,网络已出现麻烦,必须放慢发送速率。
(2)流量控制:主要控制收发端之间的通信量;
拥塞控制:是全局性控制,涉及所有主机、路由器以及其它降低网络性能的有关因素;
(3)拥塞控制:是网络能够承受现有的网络负荷,是一个全局变量;
流量控制:往往只是指点对点之间对通信量的控制
8.3
IP
地址分为哪几类,A类地址和C类地址的范围各是多少?
解答:有A、B、C、D、E五大类,其中ABC类为平时所使用的,D类为组播,E类为实验研究。A类地址范围是1.0.0.0—126.255.255.255;C类地址范围是192.0.0.0—223.255.255.255
8.7
某个单位分配到一个B类地址,IP
为129.250.0.0,该单位有4000台电脑
,分布在16个不同的地点,如果选用子网掩码为255.255.255.0
,给每一个地点分配一个子网号码,并计算出每个地点主机的最小值和最大值。
解答:B类地址前2个比特规定为10,网络号占14比特,后16比特用于确定主机号,即最多允许16384台主机。B类地址范围为128.0.0.0至
191.255.255.255。因此,129.250.0.0是B类IP地址中的一个。
题中选用子网掩码为255.255.255.0。说明在后16比特中用前8比特划分子网,最后8比特确定主机,则每个子网最多有28-2=254台主机。
题中说明该单位有4000台机器,分布在16个不同的地点。但没有说明这16个不同的地点各拥有多少台机器。如果是“平均”分配在16个子网中,即16个子网中任何一个地点不超过254台主机数,则选用这个子网掩码是可以的,如果某个子网中的机器数超过了254台,则选择这样的子网掩码是不合适的。如果机器总数超过4064台,选择这样的子网掩码也是不合适的。
从以上所选子网掩码为255.255.255.0可知16个子网的主机共16×254=4064台主机。设计在主机号前网络地址域和子网中“借用”4个比特作为16个子网地址。这16个地点分配子网号码可以选用129.250.nnn.0至129.250.nnn
.255,其中nnn可以是0~15,16~31,32~47,48~63,64~79,80~95,96~111,112~127,128~143,144~159,160~175,176~191,192~207,208~223,224~239,240~255。可以按这些成组设计子网中的一组或分别选用其中的16个。而每个子网中主机号码的最小值和最大值分别为:
1至254。
8.11
在因特网上的一个B类地址的子网掩码是255.255.240.0
,
问
在其中每一个子网上的主机数最多是多少。
解答:255.255.240.0转换成二进制即11111111.11111111.
11110000.00000000,因它是B类地址,B类地址的主机号共占16位,可以看出其中4位被借用为子网号,12位做主机号,因此主机数为=4096台,但是需要去掉全是0和全是1的,所以再减去2台就是4096-2=4094台。
8.13
设某路由器建立了如下路由表:
目
的
网
络
子
网
掩
码
下
一
跳
128.96.39.0
255.255.255.128
接口m0
128.96.39.128
255.255.255.128
接口m1
128.96.40.0
255.255.255.128
R2
192.4.153.0
255.255.255.192
R3(默认)
—
R4
现收到5个分组,其目的地址分别为:
(1)
128.96.39.10;
(2)
128.96.40.12;
(3)
128.96.40.151;
(4)
192.4.153.17;
(5)
192.4.153.90;
试分别计算其下一跳。
解答:依次将目的地址与路由表中的子网掩码做“与”运算,若所得结果与对应该行的目的网络相同则选择该行的下一跳,没有就选择默认目的网络的下一跳R4。
(1)128.96.39.10&255.255.255.128=128.96.39.0,所以下一跳为:接口0
(2)128.96.40.12&255.255.255.128=128.96.40.0,所以下一跳为:R2
(3)128.96.40.151&255.255.255.128=128.96.40.128,
128.96.40.151&255.255.255.192=128.96.40.128,所以下一跳为:R4
(4)192.4.153.17&255.255.255.192=192.4.153.0,所以下一跳为:R3
(5)192.4.153.90&255.255.255.
128=192.4.153.0,
192.4.153.90&255.255.255.
192=192.4.153.64,所以下一跳为:R4
8.15
什么是VPN?什么是NAT?
解答:VPN即虚拟专用网,是通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。通常,VPN是对企业内部网的扩展,通过它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。VPN可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。
NAT(网络地址转换)提供了连接互联网的一种简单方式,并且通过隐藏内部网络地址的手段为用户提供了安全保护。内部网络用户(位于NAT服务器的内侧)连接互联网时,NAT将用户的内部网络IP地址转换成一个外部公共IP地址(存贮于NAT的地址池),当外部网络数据返回时,NAT则反向将目标地址替换成初始的内部用户的地址好让内部网络用户接受。由于这样对外隐藏了内部网络的IP地址,因此,外部用户无法直接发起到内部用的连接,从而保护了内部用户。
8.18
简要说明为什么在传输层连接建立时要使用三次握手。
解答:次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组,在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
8.26
说明传输层中伪首部的作用
解答:用于计算运输层数据报校验和。
8.27
端口的作用是什么?为什么端口要划分为两种?
解答:端口是计算机与外部通信的途径,计算机需要它与外界进行沟通交流。服务器采用不同的端口提供不同的服务,因此只需要一个IP地址就可以接受不同的数据包。正因为有了端口,当一个数据包到达该计算机时,它才知道该把哪个数据包送到哪个服务程序去。因此通过不同端口,计算机与外界就可以进行互不干扰的通信。
端口用于标志通信的进程,一方面,应用程序(进程)通过系统调用与选定的端口联编(或绑定)后,可接收从传输层经该端口传送的数据。另一方面,端口又是进程访问传输服务的入口点。在TCP/IP实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取一个本地唯一的I/O文件,可用一般的读写原语访问。
将端口分为以下两类(1)
保留端口(熟知端口),(2)
自由端口。熟知端口号由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口,其数值一般为0~1023。自由用来随时分配给请求通信的客户进程。
篇3:成都信息工程学院计算机网络课程实验三
成都信息工程学院计算机网络课程实验三 本文关键词:成都,计算机网络,信息工程学院,课程,实验
成都信息工程学院计算机网络课程实验三 本文简介:计算机网络实验报告实验三:编写客户服务器程序班级xxxxx姓名xxxxxxxxxxxxx学号xxxxxxxxx日期xxxxxxxx一、实验目的:学习TCP/UDP协议套接字编程,深入理解客户服务器程序的原理,以及端口作用等。二、实验内容编写客户服务器程序,服务器运行后等待客户连接,一旦收到客户送来的
成都信息工程学院计算机网络课程实验三 本文内容:
计算机网络
实验报告
实验三:编写客户服务器程序
班级
xxxxx
姓名
xxxxxxxxxxxxx
学号
xxxxxxxxx
日期
xxxxxxxx
一、
实验目的:
学习TCP/UDP协议套接字编程,深入理解客户服务器程序的原理,以及端口作用等。
二、
实验内容
编写客户服务器程序,服务器运行后等待客户连接,一旦收到客户送来的信息,立即回送回去。
客户机等待用户输入信息,然后发送给服务器。并接受服务器回送回来的信息。所有的信息均需显示在屏幕上。
三、
程序实现设计方法
编写客户服务器程序,服务器运行后等待客户连接,一旦收到客户送来的信息,立即送回去。
客户机等待用户输入信息,然后发送给服务器。并接受服务器回送回来的信息。所有的信息均需显示在屏幕上。
可以每2个人一组,一个负责服务器端,一个负责客户端。(自己协商使用udp还是tcp方式,端口号)
上机实验过程:
1、启动winXP,运行vc程序
2、新建一个文件,录入编辑好的服务器程序或客户程序
3、分别以server.c或client.c保存
4、打开build/compile菜单,系统会自动建立一个新的工程,然后完成编译工作
5、打开project/settings.菜单,在对话框的link标签下,找到project
options:编辑框,在其中添加“WS2_32.LIB”
6、打开build/build菜单,系统生成执行程序server.exe或client.exe
7、分别运行server.exe,client.exe,观察两个程序运行结果
四、
源程序
服务器端程序
/****************************************************Windows环境下使用VC编写的TCP通信服务器端程序在编译这个程序时,需要在工程设置项目--〉连接项目中添加如下两项:
Ws2_32.lib和Winmm.lib否则编译后链接生成可执行文件时会出错!服务器程序在单机内的测试运行方法:
server
[监听端口:缺省为9999]程序中的函数列表:int
InitSockets(void):
插口(套接字)初始化void
ServeAClient(LPVOID
lpv):为客户提供服务的函数int
ServerLoop(SOCKET
sd_listen,int
isMultiTasking):
服务器循环函数,服务期间总是在这个函数中循环********************************************************/
#include
#include
#include
/*
由于Winsock目前有两个版本:2.2和1.1,所以我们首先必须判断系统所支持的Winsock版本,这就要靠WSAStartup函数了。
另外还有一个WSACleanup函数,这两个函数是Winsock编程必须调用的,其中WSAStartup函数的功能是初始化Winsock
DLL,因为在Windows下,Socket是以DLL的形式实现的。1.1版本的DLL为Winsock.dll,而2.2版本的DLL则为Wsock32.dll,其中在2.2版本的系统中,对Winsock1.1函数的调用会由Wsock32.dll自动映射到Winsock.dll。WSAStartup函数的功能就是初始化DLL,其函数原型为:
int
WSAStartup
(WORD
wVersionRequested,LPWSADATA
lpWSAData);
其第一个参数为你所想需要的Winsock版本!低字节为主版本,高字节为副版本!由于目前Winsock有两个版本:1.1和2.2,因此该参数可以是0x101或0x202;第2个参数是一个WSADATA结构,用于接收函数的返回信息!WSAStartup函数调用成功会返回0,否则返回非0值!
由于Win
95,WinNT4自带的Winsock是1.1版本的,所以如果你的程序是基于Winsock2.2的,那很可能无法在上面运行。因此,如果你希望你写的程序被所有Windows平台支持的话,最好将其声明成1.1版的,不过这样将无法使用很多Winsock2.2才有的特性!至于WSACleanup的用法很简单,用“WSACleanup();”就行了!另外,在DLL内部维持着一个计数器,只有第一次调用WSAStartup才真正装载DLL,以后的调用只是简单的增加计数器,而WSACleanup函数的功能则刚好相反,每调用一次使计数器减1,当计数器减到0时,DLL就从内存中被卸载!因此,你调用了多少次WSAStartup,就应相应的调用多少次的WSACleanup!/
int
InitSockets(void)
{
WSADATA
wsaData;
WORD
wVersionRequested;
int
err;
/*
Ask
for
Winsock
1.1
functionality/
wVersionRequested
=
MAKEWORD(
1,1
);
err
=
WSAStartup(
wVersionRequested,if
(
err
!=
0
)
{
printf(“Error
%d:
Winsock
not
available/n“,err);
return
1;
}
return
0;
}
#define
WSA_ERROR(x)
{
printf(“Error
%d:
%s/n“,/
WSAGetLastError(),x);
return
1;
}
int
ServerLoop(SOCKET
sd_listen,int
isMultiTasking);
main(int
argc,char*argv)
{
SOCKET
sd_listen;
int
err;
u_short
iPort;
struct
sockaddr_in
addr_srv;
struct
hostentptrHost;
iPort
=
(argc
>=
2)
?
atoi(argv[1])
:
9999;//从命令行中提取服务器监控的端口号,如果命令行没有带数字格式的端口号,则定为9999
InitSockets();//初始化套接字
/*
创建套接字有两个函数,socket和WSASocket,前者是标准的Socket函数,而后者是微软对Socket的扩展函数。socket函数有3个参数,第一个是指定通信发生的区域,在UNIX下有AF_UNIX、AF_INET、AF_NS等,而在Winsock1.1下只支持AF_INET,到了2.2则添了AF_IRDA(红外线通信)、AF_ATM(异步网络通信)、AF_NS、AF_IPX等;第2个参数是套接字的类型,在AF_INET地址族下,有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW三种套接字类型。SOCK_STREAM也就是通常所说的TCP,而SOCK_DGRAM则是通常所说的UDP,而SOCK_RAW则是用于提供一些较低级的控制的;第3个参数依赖于第2个参数,用于指定套接字所用的特定协议,设为0表示使用默认的协议。socket函数调用成功返回一个套接字描述符,错误则返回SOCKET_ERROR。/
sd_listen
=
socket(PF_INET,SOCK_STREAM,0);
if
(sd_listen
==
INVALID_SOCKET)
{
printf(“Error:
out
of
socket
resources/n“);
return
1;
}
/*
接下来要为服务器端定义的这个监听的socket指定一个地址及端口(Port),这样客户端才知道要连接哪一个地址的哪个端口,为此我们首先设置数据结构struct
sockaddr中的参数,随之调用bind()函数将socket邦定在指定的端口和地址上,该函数调用成功返回0,否则返回SOCKET_ERROR。sockaddr_in结构的sin_addr.s_addr成员被设置为INADDR_ANY,意味着由操作系统给socket自动指定一个最有效的IP地址。/
addr_srv.sin_family
=
PF_INET;
addr_srv.sin_addr.s_addr
=
htonl(INADDR_ANY);
addr_srv.sin_port
=
htons(iPort);
err
=
bind(sd_listen,(const
struct
sockaddr)
if
(err
==
INVALID_SOCKET)
WSA_ERROR(“Error:
unable
to
bind
socket/n“)
/*
当服务器端的Socket对象绑定完成之后,服务器端必须通知操作系统为这个socket建立一个监听队列来接收客户端的连接请求。listen()函数使服务器端的Socket
进入监听状态,并设定可以建立的最大连接数。该函数调用成功返回0,否则返回SOCKET_ERROR。/
err
=
listen(sd_listen,SOMAXCONN);
if
(err
==
INVALID_SOCKET)
WSA_ERROR(“Error:
listen
failed/n“)
//程序进入服务循环函数
ServerLoop(sd_listen,1);
printf(“Server
is
down/n“);
WSACleanup();
return
0;
}
/*
如果客户端发来HELLO
SERVER,
那么服务器端将回送HELLO
CLIENT,
不符合的输入,服务器端将没有响应/
void
ServeAClient(LPVOID
lpv)
{
SOCKET
sd_accept
=
(SOCKET)
lpv;
const
charmsg
=
“HELLO
CLIENT“;
char
response[4096];
memset(response,0,sizeof(response));
recv(sd_accept,response,sizeof(response),0);
if
(strcmp(response,“HELLO
SERVER“))
{
printf(“Application:
client
not
using
expected
““protocol
%s/n“,response);
}
else
send
(sd_accept,msg,strlen(msg)+1,0);
closesocket(sd_accept);
}
#define
MAX_SERVED
3
//服务器端的循环函数,服务期间总是在这个函数中运行
int
ServerLoop(SOCKET
sd_listen,int
isMultiTasking)
{
SOCKET
sd_accept;
struct
sockaddr_in
addr_client;
int
err,nSize;
int
numServed
=
0;
HANDLE
handles[MAX_SERVED];
int
myID;
//主循环体,服务期间总是在这个结构内循环
while
(numServed
#include
int
InitSockets(void)
{
WSADATA
wsaData;
WORD
wVersionRequested;
int
err;
/*
Ask
for
Winsock
1.1
functionality/
wVersionRequested
=
MAKEWORD(
1,1
);
err
=
WSAStartup(
wVersionRequested,if
(
err
!=
0
)
{
printf(“Error
%d:
Winsock
not
available/n“,err);
return
1;
}
return
0;
}
#define
WSA_ERROR(x)
{
printf(“Error
%d:
%s/n“,/
WSAGetLastError(),x);
return
1;
}
//void
InitSockets(void);
main(int
argc,char*argv)
{
SOCKET
sd_client;
int
err;
u_short
iPort;
struct
sockaddr_in
addr_srv;
struct
hostentptrHost;
char
response[4096];
charpszHost;
charmsg
=
“HELLO
SERVER“;
if
(argc
==
3)
{
pszHost
=
argv[1];
iPort
=
atoi(argv[2]);
}
else
{
printf(“Usage:/t
client1
[hostname]
[portno]“);
return
1;
}
InitSockets();
sd_client
=
socket(PF_INET,SOCK_STREAM,0);
if
(sd_client
==
INVALID_SOCKET)
WSA_ERROR(“no
more
socket
resources“)
//输入了数字格式的主机名,则直接转换,否则通过gethostbyname获取主机IP
if
(atoi(pszHost))
{
u_long
ip_addr
=
inet_addr(pszHost);
ptrHost
=
gethostbyaddr((char)
}
else
ptrHost
=
gethostbyname(pszHost);
if
(!ptrHost)
WSA_ERROR(“cannot
resolve
hostname“)
addr_srv.sin_family
=
PF_INET;
memcpy((char)
addr_srv.sin_port
=
htons(iPort);
//向服务器发出连接请求
err
=
connect(sd_client,(struct
sockaddr)
if
(err
==
INVALID_SOCKET)
WSA_ERROR(“cannot
connect
to
server“)
printf(“You
are
connected
to
the
server/n“);
//连接上后,向服务器发出服务请求
send
(sd_client,msg,strlen(msg)+1,0);
memset(response,0,sizeof(response));
//接收服务器返回的服务信息
recv(sd_client,response,sizeof(response),0);
printf(“server
says
%s/n“,response);
closesocket(sd_client);
WSACleanup();
return
0;
}