一、计算机网络体系结构
1、OSI、TCP/IP和五层体系结构
- 五层协议:分为5层,自上到下分别为,应用层、传输层、网络层、数据链路层、物理层。
- 应用层:为特定应用程序提供数据传输服务,传输单位是报文。
- 传输层:为不同主机的进程提供通信服务,传输单位是报文段或用户数据报。
- 网络层:为分组交换网上的不同主机提供通信服务,把传输层传输下来的报文段封装成分组,传输单位是数据报。
- 数据链路层:为同一链路的主机提供数据传输服务,把网络层传输下来的分组封装成帧,传输单位是帧。
- 物理层:在物理媒介上为数据端设备透明地传输原始比特流,传输单位是比特。
- OSI协议:分为7层,自下到上分别为,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(物联网淑惠适用)。
- 表示层:主要处理在两个通信系统中交换信息的表示方式。
- 会话层:为用户进程建立连接并在连接上有序地传输数据。
- TCP/IP协议:分为4层,自上到下分别为,应用层、传输层、网际层、网络接口层(硬输计网)。
2、OSI和TCP/IP的异同
- 同
- 都采用分层结构。
- 都基于独立的协议栈。
- 都可以实现异构网络互联。
- 异
- OSI定义了三个主要的概念:服务、协议和接口;TCP/IP在这三个概念上没有明确的区别。
- OSI在网络层支持面向连接服务和无连接服务,在传输层支持面向连接服务;TCP/IP在网络层支持无连接服务,在传输层支持面向连接服务和无连接服务。
3、主机间的通信方式
- 客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
- 对等(P2P):不区分客户和服务器。
4、计算机网络的主要性能指标
- 带宽
- 原表示通信线路允许通过的信号频带范围。
- 在计网中,表示网络的通信线路传输数据的能力,单位是比特/秒。
- 时延
- 总时延=排队时延+处理时延+传输时延+传播时延
- 排队时延:分组在路由器的输入队列或输出队列中排队等待的时间。
- 处理时延:主机或路由器收到分组时进行处理所需的时间。
- 传输时延:结点将分组所有比特推向链路的时间。
- 传播时延:电磁波在信道中传播时需要的时间。
- 时延带宽积
- 发送端发送的第一个比特到达终点时,发送端已经发送了多少比特,又称为以比特为单位的链路长度。
- 时延带宽积=传播时延*信道带宽
5、为什么要进行网络分层?
- 目的:降低协议设计和调试过程的复杂性,便于网络的研究和实现。
- 原则
- 每一层实现一种相对独立的功能。
- 层与层之间的交流尽可能少。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
6、协议、接口和服务
- 协议
- 协议由语法、语义和同步三部分组成。
- 语法:规定了传输数据的格式。
- 语义:规定了所要完成的功能。
- 同步:规定了各种操作的顺序。
- 接口:同一结点内相邻两层间交换信息的连接点。
- 服务:下层为邻接的上层提供的功能调用,是垂直的。
7、面向连接服务和无连接服务
- 面向连接服务
- 通信前双方必须建立连接,分配相应的资源,以保证通信能正常进行,传输结束后释放连接和所占用的资源。传输数据时是按序传输的,是可靠交付。
- 可分为连接建立、数据传输和连接释放三个阶段。
- 无连接服务
- 通信前双方不需要先建立连接,数据将在线路上按照目的地址进行转发。是一种不可靠的服务。
二、物理层
1、电路交换、报文交换和分组交换
- 电路交换
- 整个报文的比特流从源点连续地直达终点,像在一个管道内传输。包括建立连接、传输数据和断开连接。
- 优点:通信时延小,有序传输,没有冲突,适用范围广,实时性强,控制简单。
- 缺点:建立连接时间长,信道利用率低,灵活性差,难以规格化。
- 报文交换
- 将整个报文转发到相邻结点,全部存储下来,查找转发表,再转发到下一个结点,采用存储转发的方式。
- 优点:无需建立连接,动态分配线路,提高线路可靠性,提高线路利用率,提供多目标服务。
- 缺点:有转发时延,网络结点需要有较大的缓存空间。
- 分组交换
- 与报文交换类似,但是不是传输整个报文,而是把大的数据块分成小的数据块,加上必要的控制信息构成分组,把报文分组转发给相邻结点,存储下来,查找转发表,再转发到下一个结点,也是采用存储转发的方式。
- 分类:数据报和虚电路。
- 数据报:无连接,分组之间可能存在不同路径,各个分组分别转发。
- 虚电路:面向连接,在发送方和接受方之间建立一条逻辑上相连的虚电路,分组沿着虚电路传输,结点根据每个分组的虚电路号进行转发。
- 优点:无建立时延,线路利用率高,简化了存储管理,加速传输,减少了出错概率和重传数据量。
- 缺点:存在传输时延,需要传输额外的信息量,分组需要重新排序。
2、波特和比特
- 波特:码元传输的单位,表示每秒传输多少个码元。(码元是指一个固定时长的信号波形)
- 比特:信息量的单位。一个码元可能携带多个比特的信息量。
3、奈式准则和香农定理
- 奈式准则:规定了在理想低通(无噪音、带宽有限)的信道中,为了避免码间串扰而限制码元传输速率,但信息传输速率并未限制。
- 香农定理:规定了带宽受限且有高斯白噪音干扰的信道的极限数据传输速率。
4、调制和编码
- 调制:将数据变换为模拟信号的过程。
- 编码:将数据变换为数字信号的过程。
5、基带传输、频带传输和宽带传输
- 基带传输:在计算机内部或在相邻设备之间近距离传输数字信号。
- 频带传输:在需要远距离传输时,利用调制解调器对原始数字信号进行调制,使其变成适合传输的模拟信号再进行传输。在接收端将收到的模拟信号再解调为数字信号。
- 宽带传输:借助频带传输,将链路容量分解为多个信道,每个信道可以携带不同的信号,使不同的信道并行传输。
6、同步和异步
- 同步:一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行。
- 异步:进程不需要一直等待,可以继续执行其他操作。
- 同步通信:通信双方必须先建立同步,即双方的时钟要调整到同一频率。双方不停地发送和接收连续的同步比特流。
- 异步通信:发送方可以在任意时刻开始发送字符,接收方时刻做好接收的准备。
7、中继器和集线器
- 中继器:将信号整形并放大再转发出去,消除信号的失真和衰减问题,增加物理线路上的传输距离。
- 集线器:多端口的中继器,可以对信号进行放大后发到其他所有端口。
- 【注】工作在物理层,不隔离冲突域和广播域。
8、冲突域和广播域
- 冲突域:也称碰撞域,由连接在同一线路上的结点组成的区域。例如,网络上的两台计算机同时通信时会发生冲突, 那么这个网络就是一个冲突域。
- 广播域:能够接收到同一个广播消息的结点的集合,其中任何一个结点发送一个广播帧,其他结点均能接收到。
三、数据链路层
1、流量控制
- 目的:限制发送方的数据流量,使其发送速率不超过接收方的接收能力,防止帧的丢失。
- 方式
- 停止等待协议:发送方每发送一个帧,都要等待接收方的确认信号,才能发送下一个帧。如果接收方不回应,则发送方必须一直等待。每次只允许发送一个帧,因而传输效率很低。
- 后退N帧协议:发送方可以连续发送多个帧,接收方每次只能接收一个帧,并且需要回复确认帧,但是可以使用累计确认。当接收方接收错误时,会要求发送方重发最后一个被正确接收的帧之后所有未被确认的帧。
- 选择重传协议:发送方和接收方分别维持发送窗口和接收窗口。发送窗口是对发送方进行流量控制,接收窗口是控制接收方可以接收哪些帧和不可以接收哪些帧。当接收窗口中的某个帧丢失,接收方只要求发送方重发该帧即可。
2、可靠传输机制有哪些?
- 数据链路层的可靠传输机制有使用确认和超时重传。
- 确认:确认是一种不携带数据的控制帧,由接收方发送,可以让发送方知道哪些内容被正确接收。
- 超时重传:发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有收到该数据帧的确认帧,就会重传该数据帧,直到发送成功为止。
3、信道划分
- 目的:通过共享信道,最大限度提高信道利用率。
- 频分复用:将信道按频率划分为不同的子信道,不同的用户选择不同的频带进行传输。
- 时分复用:将物理信道按时间分成若干时间片,轮流给不同信号使用。
- 波分复用:在一根光纤中传输多种不同波长(频率)的光信号。
- 码分复用:靠不同的编码来区分各路原始信号。如:归零编码、非归零编码、反向非归零编码、曼彻斯特编码和差分曼彻斯特编码。
4、随机访问介质访问控制
- ALOHA协议
- 纯ALOHA协议:当网络中的任何一个结点需要发送数据时,可以不进行任何检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发送了冲突。发送站点需要等待一段时间后再重新发送,直至发送成功。
- 时隙ALOHA协议:把所有站点在时间上同步起来,并将时间划分为一段段等长的时隙,规定只能在每一个时隙开始时才能发送一个帧,并且每一个帧正好能在一个时隙内发送完毕,从而避免了用户发送数据的随意性,减少了数据产生冲突的可能性。
- CSMA协议(载波侦听多路访问)
- 每个站点在发送前都先侦听一下公用信道,发现信道空闲再发送。
- 1-坚持CSMA:首先侦听信道,如果信道空闲,则立刻发送数据;如果信道忙,那么等待,同时继续侦听直至信道空闲;如果发送冲突,那么等待一段随机时间后,再重新侦听信道。
- 非坚持CSMA:首先侦听信道,如果信道空闲,则立刻发送数据;如果信道忙,那么放弃侦听,等待一段随机时间后,再重新侦听信道。
- p-坚持CSMA:首先侦听信道,如果信道忙,则继续侦听,直至信道空闲;如果信道空闲,那么以概率p发送数据,以概率1-p推迟到下一个时隙;如果在下一个时隙信道仍然空闲,则重复上述操作。
- CSMA/CD(碰撞检测)协议
- 发送前侦听,边发送边侦听,一旦出现碰撞马上停止发送,等待一段随机时间后再发送。
- CSMA/CA(碰撞避免)协议
- 在发送数据前先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免发生碰撞。
- 轮询访问:令牌传递协议
- 只有得到令牌的站点才能发送数据,其他必须等待。站点在发送完一个帧后,应释放令牌,以便让其他站点使用。
5、PPP协议
- 也称点对点协议,目的是通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种方式。
6、网桥和交换机
- 网桥:通过连接多个以太网,使其成为一个覆盖范围更大的以太网。
- 交换机:多端口的网桥,可以对接收到的MAC帧进行转发。
- 【注】工作在数据链路层,可以隔离冲突域,但不可以隔离广播域。
四、网络层
1、路由器
- 主要功能:路由选择(确定哪一条路径)和分组转发(当一个分组到达时所采取的动作)。
- 路由选择:根据从相邻的路由器得到的整个网络拓扑变化情况,动态地选择路由。
- 分组转发:路由器根据转发表将用户的IP数据报从适合的端口转发出去。
- 【注】工作在网络层,可以隔离冲突域和广播域。
2、动态路由算法
- 距离向量路由算法(如RIP算法)
- 所有结点定期将它们的路由选择表传递给所有与之直接相邻的结点。
- 路由选择表包含:
- 每条路径的目的地(另一结点)。
- 路径的代价(距离)。
- 在以下情况更新路由选择表:
- 被告知一条新的路由,且该路由不在本结点的路由表中。(新的路由)
- 发来的路由信息中,有一条到达某个目的地的路由比原路由的代价更小。(更短的路由)
- 实质:迭代计算一条路由中的结点数或延迟时间,从而得到一个到达目标的最短通路。
- 链路状态路由算法(如OSPF算法)
- 要求每个参与该算法的结点具有完整的网络拓扑信息。它们需要主动测试所有邻接结点的状态,并且需要定期将链路状态传播给其他所有的结点。
- 层次路由
- 因特网把整个互联网划分为许多较小的自治系统,每个自治系统自主决定本系统内采用何种路由协议。
- 内部网关协议(IGP):一个自治系统内部所使用的路由选择协议,如RIP和OSPF等。
- 外部网关协议(EGP):自治系统之间所使用的路由选择协议,如BGP。
3、路由协议
- 路由信息协议(RIP)
- 内部网关协议,仅和相邻路由器交换信息。
- RIP是应用层协议,使用UDP传送数据。
- 开放最短路径优先协议(OSPF)
- 内部网关协议,与本自治系统中的所有路由器交换信息。
- OSPF是网络层协议,使用IP数据报传输数据。
- 边界网关协议(BGP)
- 外部网关协议,只能力求寻找一条能够到达目的网络且比较好的路由,而并非寻找一条最佳路由。
- BGP是应用层协议,使用TCP传送数据。
4、网络层转发分组的流程
- 从IP数据报的首部提取出目的主机的IP地址,再得出目的主机的网络地址。
- 若该网络地址直接与路由器相连,则直接把数据报交付给目的主机,否则判断下一条。
- 若路由表中有目的IP的特定主机路由,则按照该路由将数据报转发给下一个路由器,否则判断下一条。
- 若路由表中有直达目的网络的路由,则按照该路由将数据报转发给下一个路由器,否则判断下一条。
- 若路由表中有一个默认路由,则把数据报转发给该默认路由器,否则判断下一条。
- 报告转发分组出错。
5、网络地址转换(NAT)
- 实现私有IP地址与公共IP地址的转换。
- 使用NAT时需要在内部网连接到因特网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球IP地址。NAT路由器使用NAT转换表进行IP地址的转换。
5、ARP地址解析协议
- 完成IP地址到MAC地址的映射。
- 每台主机都有一个ARP高速缓冲,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射关系,称为ARP表。
- 工作原理:主机A向主机B发送IP数据报时,先查看其ARP表中有无主机B的地址映射。若有,则根据其MAC地址封装IP数据报并进行转发;若无,则广播一个MAC地址为全1的ARP请求分组,使本局域网中所有主机都收到ARP请求。主机B收到该请求后,向主机A发送ARP响应分组,分组中包含了主机B的地址映射关系,主机A将此映射写入ARP表中,然后根据该MAC地址封装IP数据报并进行转发。
- 【注】若主机A和主机B不在一个局域网中,则将该分组转发给下一个路由器,让这个路由器把分组转发给下一个网络。
6、DHCP动态主机配置协议
- 给主机动态分配IP地址。
- DHCP是应用层协议,基于UDP。
- 工作过程:
- DHCP客户端广播DHCP发现报文。
- DHCP服务器收到DHCP发现报文后,广播DHCP提供报文,其中包含提供给DHCP客户端的IP地址。
- DHCP客户端收到DHCP提供报文后,如果接受该IP地址,就广播DHCP请求报文。
- DHCP服务器收到DHCP请求报文后,广播DHCP确认报文,将IP地址分配给DHCP客户端。
7、ICMP网际控制报文协议
- 让主机或路由器报告差错和异常情况。
- 包括ICMP差错报告报文和ICMP询问报文。
- ICMP差错报告报文用于目标主机或目标主机路径上的路由器向源主机报告差错和异常情况,分为:终点不可达、源点抑制、超时、参数问题和路由重定向。
五、传输层
1、传输层的功能
- 为不同主机的进程提供通信服务。
- 复用和分用
- 复用:发送方不同的应用进程都可使用同一传输层协议传输数据。
- 分用:接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
- 对收到的报文进行差错检测(首部和数据部分)。
- 提供两种不同的传输协议,即面向连接的TCP和无连接的UDP。
2、UDP协议
- UDP是无连接的协议,发送数据前不需要建立连接,是不可靠传输。
- 特点
- 无需建立连接。
- 分组首部开销小。
- 没有拥塞控制,不会影响主机的发送效率。
- 尽最大努力交付,可靠性由应用层完成。
3、TCP协议
- TCP是面向连接的协议,发送数据前要建立连接,提供的是可靠传输。
- 特点
- 面向连接的传输层协议。
- 每条TCP连接只能有两个端点。
- TCP提供可靠的交付服务。
- TCP提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据。
- 三次握手建立连接
- 客户端对服务器端说:方便打电话吗?
- 服务器端说:方便,打吧。
- 客户端:好,那我打了(连接建立)。
- 四次挥手断开连接
- 客户端对服务器端说:我们分手吧。
- 服务器端说:好,我知道了。(服务器端说一些感慨的话)
- 服务器端确定没有话想跟客户端说了,就说:删微信吧。
- 客户端说:好,删吧。
4、拥塞控制
- 防止过多的数据注入网络,使网络中的路由器和链路过载。
- 拥塞控制和流量控制的异同
- 异:拥塞控制是控制整个网络的通信量,涉及所有的主机、路由器和降低网络传输性能的有关因素;流量控制是控制点对点的通信量,是端到端的问题。
- 同:都通过控制发送方发送数据的速率来达到控制效果。
- 拥塞控制的算法
- 慢开始:开始时拥塞窗口大小为1,每经过一个RTT,拥塞窗口成指数型增长。等拥塞窗口大小超过了规定的慢开始门限,则改用拥塞避免算法。
- 拥塞避免:每经过一个RTT,拥塞窗口加1。当出现网络拥塞时(超时),把慢开始门限设置为拥塞窗口大小的一半,然后把拥塞窗口重新设置为1,再执行慢开始算法。
- 快重传:当出现网络拥塞时(连续收到三个重复的确认),直接重传对方尚未收到的报文段,而不用等待该报文段设置的重传计时器超时。
- 快恢复:当发送方连续收到三个重复的确认时,把慢开始门限设置为此时拥塞窗口的一半,再把拥塞窗口设置为慢开始门限改变后的值,然后执行拥塞避免算法。
- 【注】在TCP连接建立和网络出现超时时,采用慢开始和拥塞避免算法;当发送方收到冗余确认时,采用快重传和快恢复算法。
5、为什么不采用“两次握手”建立连接?
- 防止出现已经失效的连接请求报文段。
- 如果只采用两次握手,服务器端接收到客户端的连接请求后,就会立刻建立连接分配资源,等待客户端发送数据,而此时客户端并不发送数据,就会造成服务器端的资源浪费。
- 例:服务器端接收到已经失效的连接请求(第一个连接请求停滞,第二个连接请求成功且完成传输),就立刻建立连接等待客户端发送数据。
6、为什么不采用“三次挥手”释放连接?
- 即服务器端同时发送确认信号和断开连接请求。
- 第一次挥手表示客户端已经发送完数据,但是服务器端这个时候可能还有数据没有发送完成,所以先给客户端发送一个确认信息,等待全部数据发送完成后才向客户端发送断开连接请求,表示自己的数据也已发送完成。
- 如果采用“三次挥手”,客户端可能就不能完整地接收来自服务器端的数据,不能保证可靠传输。
7、为什么最后一次挥手要等待?
- 保证客户端发送的最后一个确认报文段能够到达服务器端。
- 如果客户端不等待,且客户端发送的最后一个确认报文段丢失,服务器端就不能正常关闭,而客户端此时已经关闭,也不能再进行重传。
- 防止出现已经失效的连接请求报文段。
- 客户端在发送最后一个确认报文段后,再经过2MSL可保证本次连接内所产生的所有报文段从网络中消失。
六、应用层
1、DNS域名解析协议
- 把域名映射成为IP地址或把IP地址映射成域名的过程。
- 查询的方式:递归查询和递归与迭代查询。
- 递归查询:由查询的服务器发起下一次的查询。
- 递归与迭代查询:除第一次查询外,其余均由本地域名服务器向外查询。
2、FTP文件传输协议
- 提供不同种类主机系统之间的文件传输能力。
- FTP采用客户/服务器模式,使用TCP可靠传输。
- FTP服务器进程由两部分组成:一个是主进程,负责接收新的请求;另外是若干从属进程,负责处理单个请求。
3、SMTP简单邮件传输协议
- 是一个提供可靠且有效的电子邮件传输协议,它控制两个相互通信的SMTP进程交换信息。
- SMTP采用客户/服务器模式,使用TCP可靠传输。
- 适用于客户端到邮件服务器、邮件服务器到邮件服务器之间传输。
4、POP3邮局协议
- 是一个简单但功能有限的邮件读取协议。
- POP3采用客户/服务器模式,使用TCP可靠传输。
- 工作方式:
- 下载并保留:用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器中。
- 下载并删除:邮件一旦被读取,就会在邮件服务器中被删除。
5、HTTP超文本传输协议
- 定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器。
- 请求文档过程:
- 浏览器分析链接指向页面的URL(同一资源定位符)。
- 浏览器向DNS请求解析目的域名的IP地址。
- 域名系统DNS解析出目的服务器的IP地址。
- 浏览器与该服务器建立TCP连接。
- 浏览器发出HTTP请求。
- 服务器通过HTTP响应把文档发送给浏览器。
- 释放TCP连接。
- 浏览器解释文档,并将Web页面显示给用户。
- 非持久连接和持久连接:
- 非持久连接:每个网页元素对象的传输都需要单独建立一个TCP连接。
- 持久连接:首次建立TCP连接后,浏览器和服务器可以连续传送HTTP请求和响应报文。