复试面试题——计算机网络

常见面试题

  • 请简述TCP\UDP的区别

1、TCP面向连接,提供可靠的服务,传送的数据,无差错,按序到达;;UDP是无连接,不可靠的。
2、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
3、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
4、TCP首部开销20字节;UDP的首部开销小,只有8个字节
5、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

  • 说一说TCP的三次握手

目的:同步连接双方的序列号和确认号,并交换TCP窗口大小信息,确认双方有收发数据的能力。

第一次:客户端向服务器端发送请求连接报文段,请求建立TCP连接。
第二次:服务器端收到请求后,如果同意建立连接,就发回确认报文段。
第三次:客户端收到确认报文段后,向服务器端再发送确认报文段,完成TCP连接的建立。

为什么不两次:为了防止 已失效的链接请求报文突然又传送到了服务端,因而产生错误。
两次握手,客户端收到服务端的应答后进入ESTABLISHED(已建立连接状态),而服务端在收到客户端的连接请求之后就进入了ESTABLISHED状态。如果出现网络拥塞,客户端发送的连接请求报文A过了很久没有到达服务端,会超时重发请求报文B,服务端正确接受并确认应答,连接建立并开始通信传输数据,等通信结束之后释放连接。此时,如果之前失效的连接请求A到达服务端,由于两次握手就能成功建立连接,服务端收到请求A之后进入ESTABLISHED已建立连接状态,等待发送数据或者主动发送数据,此时,客户端已经进入CLISED断开连接状态,服务器会一直等下去,浪费服务器连接资源。

(b)建立连接需要四次握手

由于三次握手已经能确保建立可靠的连接,所以不需要四次或更多的握手。

参考

  • 如何保证TCP的可靠传输

1、TCP数据编号和确认:建立连接时,协定初始编号,每一个字节对应一个编号,保证数据有序的提交到应用层。对接收到的数据的最高序号进行确认。
2、流水线传输:连续ARQ协议+滑动窗口
3、停止等等协议+超时重传。

  • TCP流量控制
    滑动窗口协议。防止发送方发送速度过快,接收方来不及接受。
  • TCP拥塞处理:防止过多的数据注入网络中。通过拥塞控制,可以使网络中的路由器和链路的负载都在可承受的范围内。

1、慢启动:不要一开始就发送大量的数据,先探测一下网络的拥塞程度,由小到大逐渐增加拥塞窗口的大小。
2、拥塞避免算法。
3、快重传:要求接收方在收到一个 失序的报文段 后就立即发出 重复确认,而不要等到自己发送数据时捎带确认。
4、快恢复算法。

  • 在浏览器中输入网址之后执行会发生什么?

浏览器查询 DNS,获取域名对应的IP地址。这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPNDS缓存,根域名服务器
获得域名对应的IP地址以后,浏览器向服务器请求建立链接,发起三次握手;
TCP/IP链接建立起来后,浏览器向服务器发送HTTP请求;
服务器响应请求,发回网页内容
浏览器解析网页内容

  • 简单解释一些ARP协议的工作过程

ARP 地址解析协议:将IP地址映射为Mac地址。RARP 逆地址解析:将Mac地址转换为IP地址。

ARP的原理:先查本地的ARP表,如果没有目的IP的Mac地址就进行广播,目的主机收到广播之后,发现与自己的IP相匹配,就返回响应,其中包括自己的Mac地址,源主机收到后把目的MAC加入ARP表,再发数据。

RARP原理:发送主机发送一个本地的RARP广播声明自己的Mac地址,并请求收到的RARP服务器分配一个IP地址,RARP服务器收到之后检查RARP列表,查找对应的IP地址。如果存在就发给源主机,如果不存在就不响应,源主机收到之后利用IP地址通讯,如果一直没有响应就视为初始化失败。

  • 说一说OSI七层模型或TCP/IP四层模型

参考

  • IP地址的分类

A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);

B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);

C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);

10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)

  • DNS域名系统,简单描述其工作原理

DNS 域名系统:用来把便于记忆的域名转换为便于机器处理的IP地址,由层次域名空间,域名服务器和解析器构成。

解析的过程:主机构造DNS请求报文以UDP的方式发送本地域名服务器,如果查询成功,则返回对应的IP地址。如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份向其他域名服务器继续发出查询请求报文。

  • 面向连接和非面向连接的服务的特点是什么?

面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。

非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。

  • 请简单说一下你了解的端口及对应的服务
    21端口:主要用于FTP(文件传输协议)服务。
    23端口:主要用于Telnet(远程登录)服务。
    25端口:为SMTP(简单邮件传输协议),主要用于发送邮件。
    53端口:为DNS(域名服务器),主要用于域名解析。
    80端口:为HTTP(超文本传输协议),主要用于在WWW(万维网)上传输信息。
    443端口:HTTPS。
  • HTTP 协议包括哪些请求?GET和POST的区别

GET:对服务器资源的简单请求
POST:用于发送包含用户提交数据的请求
HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头
DELETE:发出一个删除指定文档的请求

GET用于信息获取,而且应该是安全和幂等的
POST请求表示可能修改服务器上资源的请求

GET请求的数据会附在URL后面,POST的数据放在HTTP包体
POST安全性比GET安全性高

  • TCP和UDP分别对应的常见应用层协议

1、TCP对应的应用层协议

FTP:文件传输协议,使用21端口。用于在计算机之间传输文件。

Telnet:它是一种用于远程登陆的端口。

SMTP:简单邮件传送协议,用于发送邮件。端口号25。

POP3:邮件读取协议,用于接收邮件。端口号110。

HTTP:客户端和万维网服务器之间进行交互所使用的协议,端口号80。

2、UDP对应的应用层协议

DNS:用来把便于记忆的域名转换为便于机器处理的IP地址,由层次域名空间,域名服务器和解析器构成。DNS用的是53号端口。

SNMP:简单网络管理协议,用来管理网络设备,使用161号端口。

TFTP(Trival File Transfer Protocal):简单文件传输协议,无连接,使用UDP服务。

补充题

  • CSMA/CD:监听介质中是否存在数据信号,若空闲则传输,边发送边侦听,判断信道上是否有冲突,冲突则停发,并在稍后随机重发。
  • CSMA/CA:发送数据时广播告知其他节点让其他节点,在某段时间内不要发送数据,对信道进行预约,以免出现碰撞。
  • PPP协议:面向字节的,只负责检测,是一种不可靠的协议,点对点传输,具有身份认证、成帧、链路控制和网络控制的功能。
  • HDLC协议:面向比特,信息帧使用了编号和确认机制,透明传输,全双工,CRC校验
  • 网桥&交换机&路由器:网桥能够过滤帧,扩大物理范围,提高可靠性,连接起来可以成为更大的以太网,但是网桥存储转发会增加时延,连在一起时延会更大,并且可能会出现广播风暴。交换机就是一个多端口的网桥,每个端口都直接与主机或者集线器相连,因为它使用了硬件,所以是效率比网桥更高。网桥和交换机都是按照Mac地址进行转发,都能够隔离冲突域,但不能够隔离广播域。路由器是可以划分冲突域和广播域,是通过检查目的地址来转发包,然后延迟更高,并且可以用作网关。
  • STP生成树协议:按照树的结构来构造网络拓扑,消除网络中的环路,减少冗余路径而导致的网络时延。算法过程是先选择根网桥,然后在非根网桥上选择根端口,然后在每个网段中选择指定端口,所有的非指定端口将被阻塞。
  • MAC层&LLC层:Mac层定义如何在物理线路上传输帧,处理物理寻址,定义网络拓扑。LLC层是建立和释放数据链路层的连接,然后提供与网络层的接口。
  • NAT:网络地址转换,把内部的私有IP地址转换为公有IP地址,从而对外隐藏内部的IP地址,使得整个专用网只需要一个IP地址,就可以与因特网进行联通。
  • CIDR:无分类域间路由,是一种基于前缀方式表示IP地址的标准,允许路由协议汇总多个网络到一个快,能够更有效的使用地址空间,前缀聚合减小路由表。
  • 静态路由&动态路由:静态路由算法简便可靠,但当网络拓朴变化较大的情况下,调整的复杂度会比较高,只适合用于对于安全性要求较高的系统,或者是规模较小的网络。动态路由算法有距离向量路由算法、链路状态路由算法。距离向量路由算法是使用跳数来衡量到达目的地地址的路由距离,仅和相邻的路由器交换信息,交换的信息就是自己的路由表,并且按固定的时间间隔来交换信息。链路状态路由算法是每个节点通过广播的方式与其他所有节点交换信息。最终所有的路由器能够建立一个全网的拓扑结构图,然后每个路由器根据这个拓扑结构图来选择最优路径,从而构造路由表,当链路状态发生变化的时候需要重新构造。
  • RIP&OSPF:同上
  • OSPF收敛步骤:1 建立邻接关系,2 选举指定路由器和备份路由器,3 发现路由,4 选择合适的路由路径,5 维护路由信息。
  • 路由环路:路由环路是数据包不断的在这个网络上传输,始终到达不了目的地,导致掉线或者是网络瘫痪。解决办法是,1 定义最大值,例如IP协议当中允许一条路径,最多为15跳,因此距离为16的时候表示网络不可达。2 水平分割,就是路由器从某个接口收到的更新信息不再从这个接口发回去,3 路由毒化,就是将不可达网络至为无穷大,并且由该表象引发一个路由中毒,而不是直接从路由表当中删除这条路由信息.
  • 端口号&套接字:端口是应用层的各种协议进程与传输实体进行层间交互的一种地址。端口号,长度为16bit,然后能够标识和区分一台主机当中不同的应用进程。套接字就是主机ip地址+端口号,能够唯一标识网络当中一个主机和它上面的一个应用。
  • C/S模型:进程之间是服务与被服务的关系,更加方便集中管理,但可扩展性不好。
  • DHCP:用于给网络中的主机动态的分配IP地址。工作原理:1 寻找服务器,2 提供IP地址,3 请求分配IP,4 确认分配
  • ICMP:用来给主机或者路由器报告差错或者异常情况。
  • PING:因特网包搜索。用于检测网络连接梁程序。使用icmp,是应用程序直接使用网络层icmp的例子。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值