计算机网络
1.网络里 时延和带宽的概念
时延是指一个报文或分组从网络的一端传送到另一个端所需要的时间。
它包括了发送时延,传播 时延,处理时延,排队时延。
时延=发送时延+传播时延+处理时延+排队时延
带宽又是指在固定时间可传输的资料数量,即在传输管道中可以传递数据的能力。
在数字设备中,带宽通常以每秒可传输数据的位数表示
2. 网络拥塞
因为数据包被延迟或丢失,降低了整个网络的传输性能,这种情况叫做拥塞。
如果产生网络拥塞,网络的性能会明显下降,整个网络的吞吐量也将下降。
拥塞现象:当一个网络对资源的需求量超过了资源所能提供的时候,就会导致网络吞吐量大幅下降的情况
(拥塞控制就是为了防止过多的数据注入到网络中导致路由器和链路不至于过载。)
拥塞控制的 4 种算法: ① 慢开始算法 ② 快恢复算法 ③ 快重传算法 ④ 拥塞避免算法
慢开始:由小到大逐渐增加拥塞窗口的大小。线性增长。
快速重传:快重传要求接收方在收到一个失序的报文段后就立即发出重复确认而不要等到自己发送数据时捎带确认。
快速恢复:当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把 ssthresh 门限减半,将 cwnd 设置为 ssthresh 的大小, 然后执行拥塞避免算法。
拥塞避免:在拥塞避免阶段将拥塞窗口控制为按线性规律增长,
3. CSMA/CD 的原理(载波侦听多点接入/碰撞检测)
工作原理:
发送数据前,先侦听信道是否空闲(在各点发送数据之前,检测一下是否有载波信号),若空闲,则立即发送数据;
在发送数据时,边发送边继续 侦听,若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。
(先听后发,边发边听,冲 突停发,随机延迟后重发。)
检测的是总线,碰撞检测就是计算机边发送数据边检测信道上电压的大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大。
4. 三网指哪三网?
电信网,广播电视网,互联网。
5. 组成网络协议的三个要素
协议定义:为进行网络中的数据交换而建立的规则、标准或者约定,称为协议。
① 语义:对构成协议元素的解释;
② 语法:数据域控制信息的结构和格式;
③ 时序:规定事件的执行顺序;
6. 信息交换方式
- 电路交换(电路交换:独占整条电路,信息流直接从源点传向终点,中间不能被别人打断。)、报文交换、分组交换。
分组交换的优点和缺点 与报文交换相比较,分组交换的优点和缺点如下。
优点: ① 加速传输:因为分组交换是逐个传输,所以可以使后一个分组的存储操作与前一个分组的转发操作并行
② 简化了存储管理:分组的长度固定,相应的缓冲区大小也固定。
③ 减少出错几率和重发数据量:因为分组较短,其出错几率必然减少,所以每次重发的数据量也就大大 减少,这样不仅提高了传输的可靠性,也减少了传输时延。
缺点: ① 存在传输时延:尽管与报文交换相比的传输时延较短,但是与电路交换相比仍然存在存储转发时延, 而且对其结点交换机的处理能力有更高的要求。
② 当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达的目的地时,要对 分组按编号进行排序工作,工作量较大
7.流量控制在哪些层实现?
流量控制就是要控制发送方数据传输的速率,使接收方来得及接收。
数据链路层(地址解析协议ARQ):相邻结点的流量控制
传输层(TCP协议):端到端的流量控制,利用滑动窗口机制在 TCP 连接上实现流量控制。
流量控制的方法:
停止等待协议:发送窗口和接收窗口个数都为一,每发送完一个帧就停止发送,等待对方的确认在收到确认后再发送下一帧。
滑动窗口协议中包括后退n帧协议,选择重传协议。
- 后退n帧协议:发送窗口大于一,接收窗口等于一,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和他之前的全部帧。
- 选择重传协议:发送窗口大于一,接收窗口大于一。接收方将确认一个正确接收的帧而不管其是否按序,收谁确认谁,直到所有帧皆被接收为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
8. CDMA 及原理 码分多路复用,既共享信道的频率,又共享时间,是一种真正的动态复用技术。
9. 频分复用如何避免频带间的干扰,保护频带?(静态划分信道)物理层
频分复用(FDM):按频率划分的不同信道,用户分到一定的频带后,在通信过程中自始至终都占用这个频带,可见频分复用的所有用户在同样的时间占用不同的带宽资源(带宽指频率带)
时分复用(TDM):按时间划分成不同的信道,每一个时分复用的用户在每一个TDM帧中占用固定序列号的间隙,可见时分复用的所有用户是在不同时间占用同样的频带宽度
码分复用(CMD):(把一个比特分为多个码片)更常用的是码分多址),每一个用户可以在同样的时间使用同样的频带进行通信,由于各用户使用经过特殊挑选的不同码型,
动态划分信道:CSMA CSMA/CD CSMA/CA
10. IPv4 和 IPv6 如何相互通信?
IPv4和IPv6主机之间可以互相通信,通过双协议栈技术 、隧道技术、网络地址转换技术等过渡技术可以实现。
11. IPV4 和 IPV6 的位数
IPV4 是 32 位;IPV6 是 128 位。协议头从32字节减少到7字节,加快了路由交换速度。
12. 网络安全有哪些方面?
(1) 截获——从网络上窃听他人的通信内容。
(2) 中断——有意中断他人在网络上的通信。
(3) 篡改——故意篡改网络上传送的报文。
(4) 伪造——伪造信息在网络上传送。
13Java消息摘要、对称加密、非对称加密和数字签名
- 对称加密算法使用的加密和解密的密钥一样,比如用秘钥123加密就需要用123解密。实际中秘钥都是普通数据在互联网传输的,这样秘钥可能会被中间人截取,导致加密被破解。
- 所谓非对称加密,是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。把密钥分为公钥和私钥,公钥是公开的所有人都可以认领,私钥是保密的只有一个人知道。 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)
- 消息摘要是一种与消息认证结合使用,以确保消息完整性的技术,消息摘要采用单向Hash函数将加密的明文“摘要”成一串密文,则这串密文亦称为数字指纹(Finger Print),则接受者通过对接受到信息的新产生的摘要与原摘要比较,就知道消息是否被修改了。
- 数字签名的主要作用就是保证了数据的有效性(验证是谁发的)和完整性(证明信息没有被篡改)摘要经过加密,就得到数字签名
14.简述TCP和UDP的区别
TCP和UDP是OSI模型中的传输层协议。
- TCP提供可靠的通信服务,UDP无法保证。
- TCP面向连接,UDP面向非连接即发送数据前不需要建立连接。
- TCP面向字节流,UDP面向报文。
- TCP数据传输慢,UDP数据传输快,如视频会议等实时性的通信。
- TCP的首部占20字节,UDP的首部开销小,只有8字节。
TCP数据段的首部格式:
源端口号(16) |
目的端口号(16) |
|||
序列号(32) |
||||
确认应答号(32) |
||||
数据偏移(4) |
保留(6) |
代码位(6) |
窗口(16) |
|
校验和(16) |
紧急指针 |
|||
选项(长度可变) |
填充 |
|||
数据部份(长度可变) |
||||
|
UDP数据段格式:
源端口号(16) |
目的端口号(16) |
长度(16) |
校验和(16) |
数据(若有的话)
|
15. 路由器和交换机的区别
路由器 工作在第三层(网络层 ),而我们常说的交换机 工作在第二层(链路层)
路由器:寻址,转发(依靠 IP 地址)
交换机:过滤,转发(依靠 MAC 地址)
交换机工作在数据链路层,根据MAC地址寻址,进行过滤和转发;路由器工作在网络层,根据IP地址寻址和转发,路由器可以处理TCP/IP协议,而交换机不可以。
16. 七层网络结构
物理层 数据链路层(PPP、HDLC、CSMA/CD) 网络层(IP、ARP(IP→MAC)/RARP(MAC→IP)、ICMP) 传输层(TCP、UDP) 会话层 表示层 应用层(telnet 23、FTP 20+21、SMTP 161、DNS、SNMP、DHCP、HTTP 80)
TCP/IP 是四层(网络接口层、网际层、运输层、应用层)
17.说一说TCP的三次握手和四次挥手。
在TCP发送数据之前会先以三次握手的形式建立连接,建立成功以后会发送数据,
之后会以四次挥手的形式终止连接。
在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接序列号和确认号 并交换TCP窗口信息。
第一次握手,建立连接,客户端发送连接请求报文段,等待服务器确认,将SYN位 置为1
第二次握手,服务器接收客户端的SYN报文段,对SYN报文段进行确认。并向客户端发送SYN_ACK报文段。
第三次握手,客户端接收到SYN_ACK报文段,向服务器发送确认报文,服务器端收到确认报文后,此时服务器端进入到已连接状态。
客户端收到服务器端发送的确认报文后,会向服务器发送确认报文,告诉服务器我收到了你的确认报文并准备连接,服务器端收到确认报文后,此时服务器端进入到已连接状态。
常见面试题
【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?
第一次挥手:客户端向服务器端放松FIN报文,这表示客户端没有数据要发送给服务器端了。
第二次挥手:服务器端收到客户端发送的FIN报文,向客户端回发ACK报文,这表示我同意你的关闭请求。
(注意:在第二次挥手完毕后,服务器端还可以继续向客户端发送数据,这里只是表示我同意你的关闭请求。)
第三次挥手:服务器端向客户端发送FIN报文,请求关闭连接。这里表示我这边也要关闭请求了,这时服务器端不能再向客户端发送数据。
第四次挥手:客户端收到服务器端的FIN报文后,回发一个ACK报文,服务器端收到客户端的ACK报文后,就关闭连接。
而客户端等待2MSL后没收到回复,这就证明服务器端已经关闭了,这时服务器端也可以关闭了。
【问题2】为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?
答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可能最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以客户端不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。客户端会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么客户端会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,客户端都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。
【问题3】为什么不能用两次握手进行连接?
客户端等待时间过长,取消连接,服务器端收到连接请求,同意建立连接,由于客户端已经取消连接,服务器端收不到确认报文,这样会占用服务器资源
客户端如果发送了连接请求,但是一直没有收到服务端的确认,于是在发送一次请求,这次请求正常,使得数据得以传输,过了不久第一次发送的连接请求发送成功了,原来是延迟了,依然会到服务端那里,如果是两次握手,那么这样连接建立起来了,服务端就一直等待客户端发送数据,而实际上,客户端已经把延迟的请求作为无效的处理了,这样就会造成资源的浪费。
答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
【问题4】如果已经建立了连接,但是客户端突然出现故障了怎么办?
TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
18.单工、半双工、全双工
单工:又称为单向通信,即只能有一个方向的通信而没有反方向的交互。例:无线电广播,电视广播
半双工:又称为双向交替通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时 接受)。
全双工:又称为双向同时通信,即通信的双方可以同时发送和接受信息。
备注:单工只要一条信道,而半双工和全双工都需要两条信道(每个方向各一条)。
19.数据链路层的流量控制(控制发送速率,使得接收方有足够的缓冲空间来接收每一个帧)方法:停止等待协议、滑动窗口协议。
20. 简述一下停等协议
停止等待协议就是保证 可靠传输,每发送一个分组就停止发送,等待对 方的确认,在收到确认后再发送下一个分组,如果接收方不返回应答,则发送方必须一直等待。
22.数据链路层的作用 数据链路层在物理层提供的服务的基础上向网络层提供服务,将原始的、有差错的物理线路改进成逻辑上 无差错的数据链路,从而向网络层提供高质量的服务。
功能主要有:①链路管理;②封装成帧;③透明传输;④差错检测
23.路由协议有哪些 :
①RIP (路由信息协议)。距离矢量协议;16 跳;收敛速度慢;适用小规模网络;仅和邻居交换信息, 且交换的是整个路由表,按固定时间周期性交换;实现简单,开销小;传输层使用 UDP;RIP 报文限制 大小为 512 字节。
②OSPF(开放最短路由协议)。链路状态协议;基于 IP;向自治域中所有路由器发送信息(防洪法), 且发送的是链路状态表(LSA),触发更新;更新过程收敛快;根据代价选择最佳路由;支持多路径负载 均衡。 域间: BGP(外部网关协议)是不同 AS 之间的路由器之间交换路由信息的协议。
24. 列举数据链路层的协议。2 个即可
局域网: ①CSMA/CD(带冲突检测的载波侦听多路访问协议),每一个站在发送数据之前要先检测一下总线上是否 有其他计算机在发送数据,如果有,则暂时不发送数据,以免发生冲突;如果没有,则发送。并且计算机 在发送数据的同时边检测信道上是否有冲突发生。如果有,则采用截断二进制指数类型退避算法来等待一 段随机时间后再次重发。总的来说,可概括为“先听后发,边听边发,冲突停发,随机重发”。
广域网: ①PPP(点对点协议),面向字节;不需要的功能:纠错(PPP 协议只负责检错)、流量控制(由 TCP 负责)、序号(PPP 协议是不可靠传输协议,故不需要对帧进行编号)、多点线路(PPP 协议是点对点 的通信方式)、半双工或单工(PPP 只支持全双工链路)。 ②HDLC(高级数据链路控制协议),面向比特;标记字段(01111110),地址字段(全 1 是广播,全 0 为无效);控制字段(根据前两位取值可以将 HDLC 帧划分为三类(无奸细):信息帧,监督帧,无编 号帧),信息字段,帧检验序列 FCS(CRC 循环冗余码)
25. 网络各层的设备分别是什么
物理层:集线器,中继器(均不能隔离冲突域和广播域)
数据链路层:交换机(转发/学习机制、存储转发、隔离冲突域不能隔离广播域),网桥
网络层:路由器(隔离冲突域和广播域)
26. 什么是滑动窗口协议(区别于停止等待协议)
滑动窗口协议,是 TCP 使用的一种流量控制方法。保证可靠传输。
滑动窗口协议:允许发送方在停止并等待确认前可以连续发送 多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。
停止等待协议:保证 可靠传输,每发送一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组,如果接收方不返回应答,则发送方必须一直等待。
27. PPP 协议 链路层协议。PPP是为了在点对点物理链路上传输OSI模型中的网络层报文而设计的
28. 网络按地理范围分为局域网、城域网、广域网
29. 保护频带 就是插入一些 空白的频段
30. CSMA/CD 协议 如果两端同时发送信息会出现什么情况,为什么?
两端都检测到冲突,均停止发送数据,等待一个随机时间再重发。
31.面向连接和非面向连接的服务特点是什么?
面向连接的服务,通信双方在通信之前要事先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时的监控和管理。
非连接的服务,不需要预先建立起一个联络两个通信结点的连接。
32.常用的编码方式:非归零编码(高1低0)、曼彻斯特编码("前高后低"表示1,"前低后高"表示0)、差分曼彻斯特编码(同1异0,作用在后面的比特)
33.为了解决透明传输的方法:零比特填充法(五个1一个0),字符计数法,字节填充法。
35.
36.传输层和网络层的区别:
网络层为不同的主机提供通信服务,传输层为不同应用进程提供通信服务。
网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。
37.交换机
交换机工作于即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议解析它的MAC地址,保存成一张 ARP表。
在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。
三层交换机就是具有部分路由器功能的交换机
38.
物理层
三种通信方式:单工,半双工,全双工
数据链路层
1.封装成帧
2.透明传输
3.差错检测
4.信道分类
信道复用
频分复用,时分复用,统计时分复用,波分复用,码分复用。
与IP协议配套的三个协议
地址解析协议:ARP
网际控制报文协议:ICMP
网际组管理协议:IGMP
网络层
网络层是整个网络的核心,因此应当让网络层尽可能简单,网络层向上提供数据服务。
使用IP协议,可以把异构网络连接起来,使在网络层看起来就像一个统一的网络。
IP报文
协议,源地址,目的地址
ICMP
分为差错报告报文和询问报文,为更加有效的转发IP数据报和提高交付成功机会,封装在IP协议中,不属于高层协议。
路由器:路由选择和分组转发功能
传输层
网络层只是把分组发送到目的主机,但是正在通信的并不是主机,而是主机中的进程。传输层为进程间提供逻辑通信。
TCP拥塞控制方法:慢启动,拥塞避免,快重传,快恢复
文件传输协议FTP
使用TCP连接,需要2个连接来传送文件,分别是控制连接和数据连接
39.
什么是信道
信道:表示向某一方向传送信息的媒体
信道分类?
模拟信道:传送模拟信号的信道
数字信道:传送数字信号的信道
什么是模拟信号?什么是数字信号?
模拟信号:连续信号,例如:话音信号和广播信号
数字信号:离散信号,二进制代码 0、1 组成的信号
40.IP组播有那些好处?
答:组播是一种允许一个或多个发送者发送单一的数据包到多个接收者的网络技术。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。组播技术的核心就是针对如何节约网络资源的前提下保证服务质量。
41.子网掩码
子网掩码的作用是用来区分网络上的主机是否在同一网络段内。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码可以将某个IP地址划分成网络地址和主机地址两部分。
42.ip地址分为哪几类?常用的是哪些?
A: 1.0.0.1~126.255.255.254
B: 128.0.0.1~191.255.255.254
C: 192.0.0.1~223.255.255.254
D: 224.0.0.0~239.255.255.255
E: 240.0.0.0~247.255.255.255
43.
1)、计算机网络的定义:
1.是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
2.计算机网络是互联的,自治的计算机集合
互联-计算机之间能够进行数据通信和交换信息
通信设备之间自治,各个主机之间没有从属的关系
2)、计算机网络的功能:
1.数据通信:实现两台不同计算机的连通
2.资源共享:硬件资源共享、软件资源共享、数据资源共享
3.分布式处理:多台计算机各自承担同一工作任务的不同部分,如hadoop平台
4.提高可靠性:如替代机
5.负载均衡:
44.拓扑结构包括:网状型 星型 环型 总线型
45.网络层分组转发的流程。
- 提取目的IP地址
- 判断是否直接交付。用目的地址来与路由器连接的子网地址分别做相与,看是否相同。相同就直接交付。
- 如果路由器中所有子网掩码与目的地址都不相符,就看下路由表中有没有当前目的地址的特定主机路由。有,就按照该要求进行传输。
- 没有特定主机路由,就检测路由表中有无路径。
- 仍然没有相符合的子网掩码,就是用默认路由(0.0.0.0)。
- 在生存时间结束,还是没有找到目的子网,就将数据丢弃,上报转发分组出错。
计算机网络中常见的各层协议
应用层: (典型设备:应用程序,如FTP,SMTP ,HTTP)
DHCP------->动态主机分配协议,使用 UDP 协议工作,主要有两个用途:给网络自动分配 IP 地址。
HTTP--------> 超文本传输协议 <端口号 80>, 万维网服务器传输超文本到本地浏览器的传送协议。
SMTP------->邮件传输协议 <端口号25> 用于发送邮件。
TELNET---->远程终端协议,一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上。
FTP---------->文件传输协议,服务器用来存储文件,在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上,FTP传输效率非常高,
传输层: (典型设备: 进程和端口) 数据单元:数据段 (Segment)
TCP-------->传输控制协议提供可靠的面向连接的服务,传输数据前须先建立连接,结束后释放。可靠的全双工信道。可靠、有序、无丢失、不重复。
UDP-------->用户数据报协议发送数据前无需建立连接,不使用拥塞控制,不保证可靠交付,最大努力交付。
网络层: (典型设备:路由器,防火墙、多层交换机) 数据单元:数据包(Packet )
IP-------->网络之间互连的协议
ARP----->地址解析协议,实现通过IP 地址得 知其物理地址。
ICMP---->网际控制报文协议。它是TCP/IP 协议族的一个子协议,用于在IP 主机、路由器之间传递控制消息。
IGMP--->网络组管理协议,是因特 网协议家族中的一个组播协议,用于 IP 主机向任一个直接相邻的路由器报 告他们的组成员情况。
数据链路层: (典型设备: 网卡,网桥,交换机) 数据单元:帧 (Frame)
PPP--------->点对点协议面向字节,由三部分组成:一个将IP 数据报封装到串行链路的方法;一个用于建立、配置和测试数据链路连接的链路控制协议
停止等待协议:
CSMA/CD->载波监听多点接入/碰撞检测协议。总线型网络,协议的实质是载波监听和碰撞检测。载波监听即发数据前先检测总线上是否有其他计算机在发送数据,如暂时不发数据,避免碰撞。碰撞检测为计算机边发送数据边检测信道上的信号电压大小。
ARQ--------->自动重传请求协议,错误纠正协议之一,包括停止等待ARQ 协议和连续ARQ 协议,错误侦测、正面确认、逾时重传与负面确认继以重传等机制。
物理层:(典型设备:中继器,集线器、网线、HUB) 数据单元:比特 (Bit)
以太网物理层、调制解调器、PLC 、SONET/SDH 、G.709 、光导纤维、 同轴电缆、双绞线