计算机网络是我专业课里成绩较高的课,老师应该会问到,面试的时候计网也是公司里爱问的科目。整理一下看到的网上的一些保研/考研复试题,便于复习。
一、计算机网络的体系结构
1、计算机网络的分类。
- 按分布范围:广域网(WAN)、城域网(MAN)、局域网(LAN)、个人区域网(PAN)
- 按传输技术:广播式网络、点对点网络
- 按拓扑结构:总线形、星形、环形、网状形
- 按交换技术:电路交换网络、报文交换网络、分组交换网络
- 按传输介质:有线网络(双绞线、同轴电缆、光纤)、无线网络(蓝牙、WiFi)
2、简述计算机网络采用层次结构模型的优点。
- 每层都实现一种相对独立的功能,降低整个系统的复杂度
- 各层之间的界限自然清晰、易于理解
- 各层功能的定义与其具体实现方法相独立,可以采用最合适的技术来实现
- 保持下层对上层的独立性,上层单向使用下层提供的服务
- 整个分层结构能促进标准化工作
3、解释协议、接口和服务
- 协议:对等实体之间进行通信的规则的集合,它是水平的
- 接口:同一结点内相邻两层之间交换信息的连接点,即服务访问点(SAP)
- 服务:下层为相邻的上层提供的功能调用,它是垂直的。服务可分为面向连接的服务和无连接服务,可靠服务和不可靠服务
4、TCP/IP的核心是什么。
TCP/IP的核心思想是“网络互连”,即TCP、UDP、IP协议。将使用不同协议的异构网络,在网际层(即IP层)统一为虚拟逻辑网络。其特点是两头大中间小,应用层和网络接口层有很多协议,而中间的IP层很小。这表明,TCP/IP协议可以为各种应用提供服务(everything over ip),也可以屏蔽不同物理网络实现的细节(ip over everything)。
5、OSI模型和TCP/IP模型的区别是什么?
- OSI模型有7层,而TCP/IP模型只有4层
- OSI模型有三个明确的概念:协议、服务和接口,而TCP/IP模型没有明确的划分
- OSI模型在网络层支持无连接和面向连接的通信,而TCP/IP在网络层仅支持无连接的通信
- OSI模型是先于协议设计的,TCP/IP模型是在协议发明之后总结的
- OSI模型概念清晰,但复杂且不实用。TCP/IP模型是事实上的标准
【相关计算题】
- 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
- 发送时延 = 分组长度 / 带宽速率
- 传播时延 = 距离 / 电磁波速率
- 1Mb = 10^3kb = 10^6b
- 1s = 10^3 ms = 10^6 μs
二、物理层
1、什么是多路复用技术?有几种复用方法?
多路复用技术是将若干个彼此独立的信号进行合并,从而可以在同一物理信道上同时传输的方法。主要包括时分多路复用、频分多路复用、波分多路复用和码分多路复用。
- 时分复用:所有的用户在不同的时间占用同样的带宽,一般用来传输数字信号
- 频分复用:所有的用户在相同的时间占用不同的带宽,一般用来传输模拟信号
- 波分复用:即光的频分复用,它在一根光纤中传输多种不同波长的光信号
- 码分复用:用相互正交的码片序列来区分原始信号的一种复用方式,主要用于移动通信系统
2、什么是信道?有几种通信方式?
信道表示向单方向传送信息的媒体,通信线路通常包含一条发送信道和一条接收信道。
- 单工通信:只能有一个方向的通信
- 半双工通信:通信双方都可以发送和接收,但不能同时发送或者同时接收
- 全双工通信:通信双方可以同时发送和接收
【相关计算题】
1)奈奎斯特定理:极限数据传输率 = (b/s),其中V表示有多少种不同的码元,W为带宽,单位为Hz
2)香农公式:极限数据传输率 = (b/s),其中信噪比S/N以分贝记,20dB = 100,30dB = 1000,40dB = 10000
三、数据链路层
1、数据链路层的作用是什么?
①封装成帧。在一段数据的前后加上首部和尾部,构成一个帧。接收端收到物理层上交的比特流后,能根据首部和尾部的标记,识别帧的开始和结束。
②透明传输。由于帧定界符可能出现在数据部分而产生错误。传送时要进行处理,以保证无论是什么样的数据都能够正确传输。
③差错检验。处理传输过程中可能出现的比特差错,帧丢失、帧重复和帧失序等问题。
④流量控制。控制发送速率,使得接收方有足够的缓冲空间来接收每个帧。协议包括:停止-等待协议、后退N帧协议和选择重传协议。
2、简述以太网CSMA/CD的工作原理。
CSMA/CD的全称是载波侦听多点接入/碰撞检测。工作过程可概括为“发前先听,边听边发,冲突停发,随机重发”。
适配器准备一个以太网帧放到缓冲区中,如果适配器侦听到信道空闲,就开始传输该帧。在传输过程中,适配器检测来自其他适配器的信号能量。如果发生冲突,则停止传输并发送一个48bit的拥塞信号。在中止(即传输拥塞信号)后,采用二进制指数退避算法等待一段随机时间后重发。
【相关计算题】
1)循环冗余码
生成多项式和位串的转换(下面是一个5阶多项式,注意有X^0)
- 假设G(x)的阶数为r,在帧的最低为补r个0
- 做模2除法,用帧序列除以G(x),得出r位冗余码(前导0不可省略)
- 接收到的比特序列 除以G(x)后 余数为0,则表示没有出错
2)停止-等待协议的信道利用率
设L为帧长,C为发送速率,R为单程传播时延。可知,协议忙的时间为L/C,协议空闲的时间为等待确认返回的时间2R。故信道利用率为
3)CSMA/CD协议的最小帧长
最小帧长 = (总线传播时延 × 2) × 数据传输率
四、网络层
1、简述各物理设备的工作层次和作用。
- 转发器(中继器)/集线器 工作在物理层。主要用于扩大网络传输的距离
- 网桥/交换机 工作在数据链路层。它能识别帧中的MAC地址,可以隔离冲突域
- 路由器 工作在网络层。它能识别IP地址,确定合适的路径,将数据包转发到其他网络
- 网关 工作在网络层以上。用于两个高层协议不同的网络互连
2、什么是域名地址、IP地址和MAC地址?它们之间有什么关系?
- 域名地址:为了便于用户记忆而引入,一个域名对应一个IP地址
- IP地址:给互联网上每一台主机或路由器的每一个接口分配的全球唯一32位标识符
- MAC地址:即硬件地址或物理地址,固化在适配器中。地址解析协议ARP,可将IP地址解析为MAC地址
3、简述RIP(距离向量算法)的特点。
每个路由表项目中有三项关键数据:<目的网络,距离,下一跳>。RIP通过距离向量算法完成路由表的更新。每隔30秒,路由器将自己知道的全部信息,即整个路由表发送给相邻的路由器。
对应每个相邻路由器发过来的RIP报文,先将此报文中所有的“下一跳”改为自己,并将距离字段加1(即通过自己去往目标网络)。同时,使用贪心算法更新自己的路由表。如果180秒还没有收到相邻路由器的更新报文,则把此相邻路由器设为不可达,即距离为16。
经过第一次RIP广播,每个路由器就知道了自己相邻路由器的路由表;经过第二次RIP广播,每个路由器就知道了距离自己跳数为2的网络的路由,直到最终收敛。
- RIP限制了网络的规模,最大距离为15
- 网络出现故障时,会出现慢收敛现象,即“好消息传的快,坏消息传的慢”
- RIP是应用层协议,使用UDP传送数据
4、简述OSPF(链路状态算法)的特点。
- OSPF使用洪泛法向本自治系统的其他所有路由器发送信息
- 发送的信息是与本路由器相邻的路由器的链路状态,这只是路由器所知道的部分信息
- 只有当链路状态发生变化时,才使用洪泛法更新,不会出现坏消息传得慢的问题
- OSPF是网络层协议,直接使用IP数据报传送,IP首部的协议字段为89
5、具有特殊用途的IP地址。
- 主机号全为0,表示网络号
- 主机号全为1,表示本网络的广播地址
- 32位全为0,表示本网络上的本主机
- 32位全为1,表示整个TCP/IP网络的广播地址,又称受限广播地址。由于路由器对广播域的隔离,等价于本网络的广播地址
- 127.0.0.0 保留为环路自检地址,表示任意主机本身
【相关计算题】
- 子网划分、无分类编址CIDR
- 计算可用主机数(A类地址主机号为24位,B类16位,C类8位)
五、传输层
1、简述TCP连接的建立过程。
主机A向主机B发送连接请求,主机B对A发来的报文段进行确认,主机A对B的确认再确认。
- 第一步:SYN=1, seq=x
- 第二步:SYN=1, ACK=1, seq=y, ack=x+1
- 第三步:ACK=1, seq=x+1, ack=y+1
2、简述TDP和UDP的区别。
- TCP是面向连接的可靠传输,UDP“尽最大努力交付”,是无连接不可靠的传输
- UDP面向报文。发送端应用层的数据加上一个UDP头部就交给网络层。TCP面向字节流
- UDP支持一对一、多对多、一对多、多对一通信。TCP只支持一对一通信
- UDP首部开销为8字节,TCP首部至少有20字节。UDP效率高
3、在TCP拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?
- 接收窗口rwnd:反映接收方的容量,由接收方通过TCP首部的窗口字段通知发送方
- 拥塞窗口cwnd:发送方根据自己的估算确定
- 发送窗口的上限值 = min(rwnd, cwnd)
慢开始算法:先令cwnd=1,每经过一个RTT,使cwnd加倍。直到cwnd达到慢开始门限ssthresh的值后,改为拥塞避免算法。
拥塞避免算法:每经过一个RTT,使cwnd增加一个MSS的大小(通常是1)。若出现超时,令慢开始门限ssthresh等于当前cwnd的一半,并置cwnd=1,重新执行慢开始算法。即“加法增大,乘法减小”。
快重传:使用冗余ACK来检测丢包。当发送方收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段的重传计时器超时。
快恢复:当发送端收到三个重复的ACK时,执行“乘法减小”,把慢开始门限ssthresh设为出现拥塞时cwnd的一半。与慢开始不同的时,它置cwnd=ssthresh,然后执行拥塞避免算法。
六、应用层
1、假定某客户机想获知域名为http://y.abc.com主机的IP地址,说明域名解析过程。
- 客户机向本地域名服务器发送DNS请求报文。
- 本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。
- 根域名服务器收到请求后,将对应的顶级域名服务器http://dns.com的IP地址返回给本地域名服务器。
- 本地域名服务器向顶级域名服务器http://dns.com发送解析请求报文。
- 顶级域名服务器http://dns.com收到请求后,将对应的授权域名服务器http://dns.abc.com的IP地址返回给本地域名服务器。
- 本地域名服务器向授权域名服务器http://dns.abc.com发送解析请求报文。
- 授权域名服务器收到请求后,将查询结果返回给本地域名服务器
- 本地域名服务器将结果存入缓存,并返回客户机。
其中,主机向本地域名服务器的查询采用递归查询,本地域名服务器向根域名服务器的查询采用迭代查询。(使用UDP报文)
2、简述FTP的工作过程。
文件传输协议FTP,提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中传送文件。
FTP在工作时采用两个并行的TCP连接。一个是控制连接(21端口),一个是数据连接(20端口)。控制连接在整个会话期间一直保持打开,其收到文件传输请求后,就创建数据连接。文件在数据连接上传送完毕后,数据连接就被关闭。
3、简述电子邮件的收发过程。
- 发信人调用用户代理(一个WEB或客户端程序,例如Gmail、Foxmail),用户代理使用SMTP或HTTP协议把邮件传送给发送方邮件服务器。
- 发送方邮件服务器将邮件放入缓存队列,等待发送。
- 发送方邮件服务器建立TCP连接,使用SMTP协议将待发邮件发送到接收方邮件服务器。
- 接收方邮件服务器收到邮件后,放入用户邮箱,等待收信人读取。
- 收信人调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收方邮件服务器的用户邮箱中取回。
4、简述HTTP访问的工作过程。
- 浏览器分析链接所指页面的URL,例如http://www.baidu.com/index.html。
- 浏览器向DNS请求解析http://www.baidu.com的IP地址。
- 浏览器通过该IP地址与服务器建立TCP连接,默认端口号为80。
- 浏览器发出HTTP请求:GET /index.html。
- 服务器通过HTTP响应,把文件index.html发送给浏览器(客户端随机选择的端口)。
- 释放TCP连接。
- 浏览器渲染index.html,将WEB页面展示给用户。
来自:知乎专栏链接
一、介绍一下五层协议
1、应用层(对应七层协议中的应用层、表示层、会话层) :
为特定应用程序提供数据传输服务,包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol),数据单位为报文。
2、运输层 :
提供的是进程间的通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。
运输层包括两种协议:
传输控制协议TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;TCP 主要提供完整性服务.
用户数据报协议UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。UDP 主要提供及时性服务。
3、网络层:
为主机间提供数据传输服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组。
4、数据链路层:
网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的节点提供服务。数据链路层把网络层传来的分组封装成帧。
5、物理层 :
考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
二、说一说OSI七层模型
其中表示层和会话层用途如下:
表示层 :
数据压缩、加密以及数据描述。这使得应用程序不必担心在各台主机中表示/存储的内部格式不同的问题。
会话层 :
建立及管理会话。
其余五层同五层协议。
三、说一说TCP/IP四层模型
TCP/IP参考模型分为四个层次:应用层、传输层、网络互连层和网络接口层。
1、主机到网络层
实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。
2、网络互连层
网络互连层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机 网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。
3、传输层
在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。
4、应用层
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现,为特定应用程序提供数据传输服务。
应用层考点
四、介绍一下域名系统
域名系统(Domain Name System缩写 DNS)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。一个公司的 Web 网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如:IBM 公司的域名是 http://www.ibm.com、Oracle 公司的域名是 http://www.oracle.com。
五、HTTP请求过程
1、建立TCP连接
2、发送请求
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。
3、发送请求头信息
浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
4、服务器应答
客户机向服务器发出请求后,服务器会客户机回送应答。
5、服务器发送应答头信息
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。
6、服务器向浏览器发送数据
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
\7. Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive 。TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
六、简述HTTP中GET和POST的区别
1、从原理性看:
GET用于信息获取,而且应该是安全和幂等的;POST请求表示可能修改服务器上资源的请求
2、从表面上看:
GET请求的数据会附在URL后面,POST的数据放在HTTP包体,POST安全性比GET安全性高。
七、HTTP与HTTPS区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
运输层考点:
八、请简述一下TCP和UDP,以及它们的区别
TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
传输控制协议 TCP(Transmission Control Protocol)是有连接的,提供可靠交付,有流量控制,拥塞控制,面向字节流,把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块,每一条 TCP连接只能是点对点的(一对一)。
用户数据报协议 UDP(User Datagram Protocol):无连接的,尽最大可能交付,没有拥塞控制,面向报文对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部,支持一对一、一对多、多对一和多对多的交互通信。
总结(TCP和UDP的区别):
1)TCP提供面向连接的传输;UDP提供无连接的传输
2)TCP提供可靠的传输(有序,无差错,不丢失,不重复);UDP提供不可靠的传输。
3)TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。
4)TCP提供拥塞控制和流量控制机制;UDP不提供拥塞控制和流量控制机制。
5)TCP只能是点对点的(一对一)。UDP支持一对一、一对多、多对一和多对多的交互通信。
九、说一说TCP的三次握手
在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。
1、第一步:源主机A的TCP向主机B发出连接请求报文段,其首部中的SYN(同步)标志位应置为1,表示想与目标主机B进行通信,并发送一个同步序列号X(例:SEQ=100)进行同步,表明在后面传送数据时的第一个数据字节的序号是X+1(即101)。SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号。
2、第二步:目标主机B的TCP收到连接请求报文段后,如同意,则发回确认。在确认报中应将ACK位和SYN位置1,表示客户端的请求被接受。确认号应为X+1(即为101),同时也为自己选择一个序号Y。
3、第三步:源主机A的TCP收到目标主机B的确认后要向目标主机B给出确认,其ACK置1,确认号为Y+1,而自己的序号为X+1。(TCP的标准规定,SYN置1的报文段要消耗掉一个序号。)
运行客户进程的源主机A的TCP通知上层应用进程,连接已经建立。当源主机A向目标主机B发送第一个数据报文段时,其序号仍为X+1,因为前一个确认报文段并不消耗序号。
当运行服务进程的目标主机B的TCP收到源主机A的确认后,也通知其上层应用进程,连接已经建立。至此建立了一个全双工的连接。
网络层考点:
十、IP地址分为哪几类?简单说一下各个分类
IP地址分A,B,C,D,E五类:
A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;(modified @2016.05.31)
B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;
C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。
D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。
1、255.255.255.255
该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。
注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。
2、0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
3、回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
附加题:简述一下Cookie 和 Session的区别
Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。
Cookie 一般用来保存用户信息 比如①我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;②一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie 中;③登录一次网站后访问网站其他页面不需要重新登录。Session 的主要作用就是通过服务端记录用户的状态。
Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。
Cookie 存储在客户端中,而Session存储在服务器上,相对来说 Session 安全性更高。如果要在 Cookie 中存储一些敏感信息,不要直接写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。
来自:知乎链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)