文章目录







RFC1918 留出三块 IP 地址空间作为私有的内部使用的地址,这样做的目的是什么?请写出这三块地址的范围。
通常将仅在机构内部使用的 IP 地址称为本地地址(或私有地址),而在 Internet 上使用的 IP 地址则称为全球地址(或公有地址)。如果任意选择一些 IP 地址作为本地地址,可能会引起麻烦。例如,某个机构的某台主机连接到 Internet 后,其使用的本地地址很可能会和
Internet 中的某个全球地址重合,造成地址的二义性问题。为了解决这一问题,RFC 1918 指
明了一些专用地址作为本地地址仅供机构内部使用。它们分别是:
(1)10.0.0.0~10.255.255.255
(2)172.16.0.0~172.31.255.255
(3)192.168.0.0~192.168.255.255
网络层向上提供的服务有哪两种?请比较各自的特点。
网络层向上可提供两种类型的服务:面向连接的虚电路服务和无连接的数据报服务。
数据报方式中,分组是独立的实体,各分组可以经由不同的路径到达终点。虚电路方式中,必须先建立一条虚电路,然后各分组沿着同一路径到达终点。虚电路的可靠通信由网络保证,数据报的可靠通信则由用户主机保证。
简述 RIP 路由协议的工作原理。
RIP 是一种分布式的基于距离向量的路由选择协议。RIP 将“距离”定义为从源主机到目的主机所经过的路由器数量,也称为“跳数”。RIP 认为好的路由就是跳数最少的路由。RIP允许一条路由最多包含 15 个路由器。RIP 仅和相邻路由器交换信息;路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表;RIP 通常每隔 30 秒交换一次路由信息。
网络协议的组成要素有哪些?各有什么含义?
网络协议由 3 个要素组成,分别是语法、语义和同步。
(1)语法,即数据与控制信息的结构或格式;
(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)同步,即事件顺序的详细说明。
简述对称密钥密码体制与公钥密码体制的概念。
所谓对称密钥密码体制,即加密密钥与解密密钥都相同的密码体制。公钥密码体制则使用不同的加密密钥和解密密钥。
对称密钥密码体制的优点是简单,但传送密钥的安全信道却不容易找到。为了解决这一问题,产生了公钥密码体制。除此之外,公钥密码体制的产生还有另外一个重要原因:满足数字签名的需求。
简述局域网、城域网和广域网的主要特征。
局域网:覆盖有限的地理范围,提供高数据传输率、低误码率的高质量数据传输环境。
城域网:分布范围介于局域网和广域网之间,属于一种高速网络。
广域网:分布范围可达数百甚至数千公里。
简述本地域名服务器进行域名解析的过程。
当一个主机发出域名解析请求时,这个请求首先被送往默认的(本地)域名服务器。本地域名服务器通常距离用户较近,一般不超过几个路由的距离。当所要解析的域名属于同一个本地子域时,本地域名服务器就能立即解析到 IP 地址,并返回给发出请求的主机。否则就需要以客户端的身份向其他域名服务器发出域名解析请求。
简述 IP 协议的基本任务。
IP 协议的基本任务是通过互联网传送数据报。其特点包括:主机上的网络层(IP 层)向运输层提供服务;IP 从源传输实体取得数据,并传送给目的主机的 IP 层;IP 从不保证服务的可靠性;IP 将高层协议数据封装为数据报,并交给下一层。
简述三报文握手算法的工作原理。
三报文握手算法的工作原理如下:
①发送方向接收方发送建立连接的请求报文。
②接收方向发送方回应一个对建立连接请求报文的确认报文。
③发送方再向接收方发送一个对确认报文的确认报文。
简述数字签名的基本过程。
数字签名建立在公钥密码体制基础上,是公钥密码体制的一种应用。其过程如下:
step1:报文发送方从报文文本中生成一个 128 位的报文摘要(通常使用 Hash 函数)。
step2:发送方用自己的私钥对报文摘要加密,形成发送方的数字签名。
step3:数字签名作为报文的附件和报文一道发送给接收方。
step4:接收方从收到的报文中取出发送方给出的报文摘要(需要使用公钥解密),并按照发送方同样的方式计算报文摘要。
step5:如果两个报文摘要相同,即可确定该报文是发送方发送的原始报文。
请介绍交换机 MAC 地址学习的基本过程。
交换机工作在数据链路层,该层基于 MAC 地址转发数据。交换机 MAC 地址转发数据依赖
MAC 地址表,MAC 地址表的生成即 MAC 地址学习的过程。
假定以太网交换机有 4 个接口,分别连接了主机 A、B、C、D。一开始,交换机中的 MAC
地址表是空的。现在主机 A 向主机 B 发送数据帧,从接口 1 进入交换机。交换机收到数据帧
后,先查找地址表,没有查到应从哪个接口转发数据帧。这时,交换机会把数据帧的源 MAC
地址 A 和接口 1 写入到 MAC 地址表中,然后向除接口 1 以外的所有接口广播这个数据帧。主
机 C 和 D 收到后会丢弃该帧,因为目的地址不对。主机 B 收下该帧,主机 B 回复数据帧给 A,
交换机将主机 B 的 MAC 地址和连接的接口 2 写入到 MAC 地址表。
随着数据帧的多次转发,交换机就逐渐建立了比较完整的 MAC 地址表。
RJ-45 插头上的网线排序有哪两种方式?这两种方式在应用上有何不同?各应用于什么场合?
EIA/TIA 的布线标准中规定 RJ-45 插头上的排序方式有两种。
第一种是 T568A 线序,用于网络设备需要交叉互连的场合。“交叉”是指网线的一端按
T568A 线序连接,而另一端按 T568B 线序连接。交叉用于连接两台同类设备,例如两台计算
机、集线器或交换机。
第二种是 T568B 线序,用于网络设备直通互连的场合。“直通”是指网线两端都使用 T568B
线序连接。直通用于连接两台不同类设备,例如计算机与交换机、计算机与集线器。
T568A 线序:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕。
T568B 线序:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。
设 k=4,请使用替代密码对报文:AI RIIH E PSX SJ TVEGXMGI 进行解密。再对报文:THIS IS A GOOD EXAMPLE 进行加密
解密的结果是:WE NEED A LOT OF PRACTICE。
加密的结果是:XLMW MW E KSSH IBEQTI。
请指出下列 IP 地址中的错误。
(1)112.56.48.76.20
(2)183.256.76.253
(1)在 IP 地址的点分十进制记法中,IP 地址不能超过 4 个字段。
(2)在 IP 地址的点分十进制记法中,IP 地址的每一个字段不能大于 255。
简述网络协议的概念及其要素
网络协议是为进行网络中的数据交换而建立的规则、标准或约定。由语法、语义和时序
(或顺序或同步)三个要素组成。
语法,即数据与控制信息的结构或格式。
语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。
时序,即事件实现顺序的详细说明。
简述 IP 地址与 MAC 地址的区别。为什么要使用这两种不同类型的地址
从层次的角度看,物理地址是数据链路层和物理层使用的地址。而 IP 地址是网络层及其以上各层使用的地址,是一种逻辑地址。
由于全世界存在各式各样的网络,使用不同的硬件地址。要使这些异构网络能够互相通信,就必须进行非常复杂的硬件地址转换工作。由用户或用户主机来完成这项工作几乎是不可能的事。但统一的 IP 地址把这个复杂问题解决了。连接到 Internet 的主机只需拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便。当需要把 IP 地址转换为物理地址时,使用 ARP 协议即可实现。
如果应用程序愿意使用 UDP 完成可靠传输,这可能吗?请说明理由
这是可能的,但这要由应用层自己来完成可靠传输。例如,应用层自己使用可靠传输协议。当然,这还是需要相当大的工作量的。
请问下列 IP 地址能否分配给主机?如果不能,请说明理由。
(1)131.107.256.80
(2)231.222.0.11
(3)126.1.0.0
(4)198.121.254.255
(5)202.117.34.32
(1)不能分配主机,因为第三个字节 256 大于 255,是非法值。
(2)不能分配给主机,因为第一个字节 231 位于 224 和 239 之间,说明是组播地址。
(3)不能分配给主机,因为以全 0 结尾的 IP 地址是网络地址。
(4)不能分配给主机,因为以全 1 结尾的 IP 地址是广播地址。
(5)可以分配给主机。
为了缓解和最终解决 IPv4 地址空间耗尽的问题,IETF 提出和使用了一系列技术方案,请列举出这些技术方案
为了缓解和最终解决 IPv4 地址空间耗尽的问题,IETF 提出和使用过的技术方案主要有:
① 可变长子网掩码 VLSM,将两级结构的 IP 地址变换为三级结构的 IP 地址。
②无类域间路由 CIDR,消除网络地址和主机地址的划分,改为网络前缀和网络后缀。
③网络地址转换 NAT,将 IP 地址划分为本地地址和全球地址两种类型,如果本地主机要
使用 Internet,可使用 NAT 技术将本地 IP 地址转换为全球 IP 地址。
④IPv6 技术,将 IP 地址从 32 位扩展到 128 位。
PPP 协议使用同步传输技术传送比特序列 0110111111111100。请问经过零比特填充后变成什么样的比特序列?若接收到的 PPP 帧的数据部分是 0001110111110111110110,请问原来的比特序列是什么?
经零比特填充后所得的比特序列是 011011111011111000。
经还原后得到的比特序列是 00011101111111111110。
为什么说 UDP 是面向报文的,而 TCP 是面向字节流的?
发送方的 UDP 对应于程序交下来的报文,在添加首部后就向下交付给网络层。UDP 对
应用层交下来的报文,既不合并也不拆分,而是保留这些报文的边界。也就是说,应用层交
给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。接收方的 UDP 对网络层交上
来的 UDP 数据报,在去除首部后就原封不动地交付给应用层。也就是说 UDP 向上层一次交
付一个完整的报文。
TCP 无论是发送还是接收报文,都将报文数据块视为无边界的字节流,按顺序一个字节
一个字节地发送或接收。
简述 P2P 技术。P2P 与传统的 C/S 通信方式最大区别是什么?
P2P 即对等连接,是指两个主机在通信时并不区分服务请求方和服务提供方。只要两个
主机都运行了对等连接软件,就可以进行平等的对等连接通信。这与传统的 C/S 方式差别十
分明显。
实际上,对等连接方式本质上是通信双方的主机既是服务请求方也是服务提供方。
简述物理层的特性。
物理层主要有四个特性,分别是机械特性、电气特性、功能特性和规程特性。
机械特性说明接口所用连接器的形状、尺寸、引脚数目、排列、固定和锁定装置等。
电气特性说明在接口电缆的各条线上出现什么样的电压范围。
功能特性说明各条线上出现的电平表示何种意义。
规程特性说明对于不同功能的各种事件的出现顺序。
TCP 采用了什么样的连接服务?简述建立 TCP 连接的过程
TCP 是运输层的协议,采用了面向连接的服务。TCP 的连接过程被称为三报文握手。具体
过程如下:
T1 时刻,发送端向接收端发送建立连接的请求,并将连接请求标志字段 SYN 置为 1。
T2 时刻,接收端收到发送端的请求,向发送端响应,并将连接请求字段 SYN 置为 1。
T3 时刻,发送端收到接收端的响应,再向接收端发送连接确认,通信两端的连接正式建
立
通过 IEEE 802.3 局域网发送 ASCII 码数据“Good morning!”,若封装成一个 MAC 帧,请问该帧的数据字段有效字节是多少?需要填充多少个字节
因为 MAC 帧最小帧长是 64 字节,MAC 帧头占 18 字节,因此数据部分长度不能小于 46 字节。如果小于则进行字节填充。本题中,数据帧的数据字段有效字节长度是 13 字节(由字符个数决定),故还需要填充 33 字节
简述拥塞控制与流量控制的差异
拥塞控制的任务是确保子网能够承载所达到的流量,涉及各种可能会削弱子网承载容量的因素。
流量控制只与特定的发送方和接收方之间的点到点流量有关,目的是确保一个快速的发送方不会持续地以超过接收方能力的速率发送数据
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案
我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT