博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机保研面试题——计算机网络
阅读量:38411 次
发布时间:2022-03-07

本文共 9446 字,大约阅读时间需要 31 分钟。

目录


计算机网络体系结构

​计算机网络的各层及协议集合,成为网络的体系结构。引脚是指从集成电路(芯片)内部电路引出与外围电路的接线,引脚构成了这块芯片的接口。
  • OSI,TCP/IP,五层协议的体系结构,以及各层协议

OSI开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI)。分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议     (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下: 物理层:RJ45、CLOCK、IEEE802.3    (中继器,集线器,网关)数据链路:PPP、FR、HDLC、VLAN、MAC  (网桥,交换机)网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)传输层:TCP、UDP、SPX会话层:NFS、SQL、NETBIOS、RPC表示层:JPEG、MPEG、ASII应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

每一层的作用如下: 

物理层:在物理介质上正确地、透明地传送比特流(比特Bit)(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。数据链路层:将比特组装成帧和点到点的传递(帧Frame) (接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。此外,该层还负责提供物理地址寻址、数据的成帧、流量控制、差错控制等功能。)网络层:负责数据包从源到宿的传递和网际互连(包PackeT) (将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。)传输层:提供端到端的可靠报文传递和错误恢复(段Segment)会话层:建立、管理和终止会话(会话协议数据单元SPDU) (会话就是通信)表示层:对数据进行翻译、加密解密和压缩解压(表示协议数据单元PPDU)应用层:允许访问OSI环境的手段(应用协议数据单元APDU)(为用户的应用进程提供网络通信服务。) 
  • IP地址的分类 32位地址

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上保留地址用于内部)IP地址与子网掩码相与得到主机号 
  • ARP是地址解析协议,简单语言解释一下工作原理。
是根据IP地址获取物理地址的一个TCP/IP协议。1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。3:当本网段的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。广播发送ARP请求,单播发送ARP响应。

  • 各种协议 ?

ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。DHCP协议: 动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,DHCP协议:一个局域网的网络协议,使用UDP协议工作,用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作***管理的手段。描述:RARP RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

  • TCP三次握手和四次挥手的全过程

三次握手: 第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
四次挥手与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次挥手”。第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

  • 六、TCP和UDP的区别?

1、TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。2、TCP传输单位称为TCP报文段(数据流),UDP传输单位称为用户数据报。3、TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。4、UDP传时数据是有大小限制的,而TCP没有
  • TCP对应的协议和UDP对应的协议

TCP对应的协议: (1) FTP:定义了文件传输协议,使用21端口。(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议: (1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。(3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

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

DNS域名服务器:产生于应用层上的域名系统 NDS(Domain Name System)就可以用来把互联网上的主机名转换成 IP 地址。

原理:

 

当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如(http://www.baidu.com/,并将这个主机名传送给DNS客户端。(在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。)③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)。然后通过递归查询或是迭代查询去获得对应的ip地址。④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址。⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接。

总的来说,两种查询方式:递归查询和迭代查询

1)递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。2)迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。

域名,MAC地址和IP地址的区别:

IP地址:是在IP协议中,用来标识网络中不同主机的地址。IP协议属于网络层,有两个版本:IPV4和IPV6(不兼容)。通常使用 点分十进制 (32位)的字符串表示IP地址,例如:192.168.0.1(11000000 10101000 00000000 00000001),每个点分割的每个数字表示一个字节,范围是0 ~ 255MAC地址是在 数据链路层和物理层 使用的地址,所以MAC地址又被称为物理地址。MAC地址是6字节(48比特)的整数,常常使用12个16进制数字表示,每两个16进制数字之间用冒号隔开,比如:08:00:20:0A:8C:6D。其中前24比特位所表示的是:生产网卡的厂商向IEEE申请的厂商地址;后24位则是代表该厂商所制造的某个网络产品的系列号。MAC地址可以唯一标识计算机。域名地址:会在应用层用到的地址

IP地址也可以用在应用层,那么为什么还需要域名地址呢?

比如说我现在让你打开百度的页面,你肯定是在浏览器页面输入:baidu.com ,你为什么不输入百度的IP地址呢?因为好记。域名地址,就是IP地址的符号化,一个ip可以绑定多个域名,但是一个域名不能同时解析到多个IP地址下,域名的出现就是为了方便人们记忆,但是注意,机器之间只认识IP地址,域名与IP地址之间是对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器(DNS)来完成,整个过程是自动进行的。

为什么已经有了IP地址还需要MAC地址呢?

数据链路层如何标识一台主机,就要用到 MAC地址了。IP协议是属于网络层的。可以把MAC地址看做每个人的身份证号码;而私有IP在局域网中是唯一的,你可以把私有IP看做是人的名字,你可能会遇到和你重名的人,但是在你家这个局域网中,你的名字就是唯一的。

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

面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。

  • TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

答:建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。(1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。(2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。(3)采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。1.syn为什么有两个?双方的连接状态会持续,且连接是有方向的2.第二步中,为什么是ack+syn?本质上是一个发ack应答,一个发syn请求,而且是方向一致的两个数据报,可以合并2.3.服务器出现大量的close_wait状态,是为什么?服务端没有正确的关闭连接(程序没有调用close,或者没有正确使用)
  • IPV4和IPV6的区别

1.地址不同(IPV4 32位,IPV6 128位),所有地址的空间,数目不同2.地址分配不同(IPV4资源不够,分配的话需要竞争,而IPV6可以给每个人都分配很多的地址)3.寻址的方式不同:IPV4 通过子网掩码计算网络地址,而IPV6有固定的计算方式划分网络

  • 如何用UDP进行可靠传输

(1)引入序列号, 保证数据顺序;(2)引入确认应答, 确保对端收到了数据;(3)引入超时重传, 如果隔一段时间没有应答, 就重发数据;

  • 正向代理和反向代理的区别

正向代理:要访问的服务器只知道代理服务器来访问它,并不知道真实的客户端是谁(代理客户端)反向代理:反向代理正好相反。对于客户端来说,反向代理就好像目标服务器,客户端向反向代理发送请求,接着反向代理判断请求走向何处,隐藏了真实的服务器。(代理服务器)正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

  • 说说HTTP和HTTPS

HTTP是超文本传输协议,是目前应用最广泛的网络通信协议,也是客户端和服务端交互的一系列行为的标准http header包含三大部分,有General。Response Headers(响应头)。 Request Headers(请求头)。http是无连接,无状态的(每次连接只处理一个请求,发送完数据后,不会记录)而https简单讲是HTTP的安全版,即HTTP下加入SSL层,主要是来确认网站的真实性和数据传输的安全。HTTP:超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。HTTPS:是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。区别:1.HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好,需要用到ca证书,增加了费用2.http和https 使用的是完全不同的连接方式,用的端口也不一样,http是 80,https是 443。3.http的速度比https要快(主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。)

  • https中SSL握手的过程

<1>.首先客户端给出协议版本号,一个客户端生成的随机数,以及支持的加密方式<2>.服务端确认双方使用的加密方式,给出数字证书,以及一个服务器生成的随机数<3>.客户端确认数字证书有效,然后生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,发个服务端<4>.服务端使用自己的私钥,获取客户端发来的随机数<5>.客户端和服务端根据约定的加密方式,使用前面的三个随机数,生成密钥<6>客户端通过会话秘钥加密一条消息发送给服务端<7> 同样服务端也会通过会话秘钥加密一条消息回传给客户端,如果客户端能够正常接受的话表明SSL层连接建立完成了。

  • DNS解析(DNS找IP)

DNS(域名解析系统)服务器所提供的服务是完成将主机名和域名转换为IP地址的工作。用户在 浏览器地址栏中输入的是便于识记的主机名和域名。而网络上的计算机之间实现连接却是通过每台计算机在网络中拥有的惟一的IP地址来完成的,这样就需要在用户容易记忆的地址和计算机能够识别的地址之间有一个解析,DNS服务器便充当了地址解析的重要角色第一步,客户端向本地DNS服务器发送解析请求第二步,本地DNS如有相应记录会直接返回结果给客户端,如没有就向DNS根服务器发送j请求第三步,DSN根服务器接收到请求,返回给本地服务器一个所查询域的主域名服务器的地址第四步,本地dns服务器再向返回的主域名服务器地址发送查询请求第五步,主域名服务器如有记录就返回结果,没有的话返回相关的下级域名服务器地址第六步,本地DNS服务器继续向接收到的地址q进行查询请求第七步,下级域名服务器有相应记录,返回结果第八步,本地dns服务器将收到的返回地址发给客户端,同时写入自己的缓存,以便下次查询

  • GET和POST的区别

(1)功能: get从服务器上获取数据,post是向服务器传送数据(2)位置: get参数url可见,post通过请求体传送数据(3)浏览器缓存: get请求会被浏览器主动缓存,而post不会,除非手动设置。(4)回退: get请求页面后退时,不产生影响,post请求页面后退时会重新提交请求(5)数据大小: get一般传输数据大小不超过2K-4K(根据浏览器不同限值会有所不同),post请求传输数据大小没要求(6)安全性: post肯定比get安全,但是还是没有很大区别,也没有很安全。

  • 常见的状态码

400:客户端请求语法错误,服务端无法理解405:映射找到了,但是客户端请求方法和服务端提供的请求方法不匹配500:服务端内部报错403:无权限
  • 输入一个URL到浏览器中,会发生什么

1.域名解析(DNS解析)2.发起TCP的三次握手3.建立TCP连接后发起HTTP请求(如果浏览器存储了该域名下的Cookies,那么会把Cookies放入HTTP请求头里发给服务器。)4.服务器端响应http请求,浏览器得到html代码5.浏览器解析html代码,并请求html代码中的资源6.浏览器对页面进行渲染呈现给用户

  •  路由选择协议

内部网关协议:在一个自治系统内部使用的路由选择协议,与互联网中的其他自治系统选用什么路由协议无关路由信息协议(RIP):距离向量算法1、仅和相邻的路由器交换信息2、按照固定时间间隔交换路由信息3、交换的信息是路由器的路由表(该路由器到其自治系统中所有网络的最短距 离,以及到每个网络应该经过的下一个路由器)

开放最短路径优先协议(OSPF):dijkstra

(1)向本自治系统所有的路由器发送信息

(2)交换的信息是该路由器相邻的所有的路由器的链路状态

(3)只有链路状态发生变化时才交换信息

当链路状态发生变化到链路状态信息交换完成后,每一个路由器都有整个区域网络的所有路由器的链路状态信息, 此时在通过最短路径算法对这些信息进行处理,从而每个路由器都知道到达所有路由器的最短链路

外部网关协议:不同自治系统交互的协议

边界网关协议(BGP):BGP是自治系统间的路由协议,BGP交换的网络可达性信息提供了足够的信息来检测路 由回路并根据性能优先和策略约束对路由进行决策。

  • 扩展局域网*

① 在物理层进行扩展使用集线器进行扩展。② 在链路层进行扩展交换机的问世很快就淘汰了网桥,它实质上是一个多接口网桥,而网桥是两接口。③ 虚拟局域网VLAN

  • 地址解析协议(ARP)

实现由 IP 地址得到 MAC 地址每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 硬件地址的映射表。

  • 私有地址

A类:10.0.0.0 - 10.255.255.255B类:172.16.0.0 - 172.31.255.255C类:192.168.0.0 - 192.168.255.255

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

在浏览器中输入www.baidu.com后执行的全部过程1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据报,输入到网络层。2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。3、客户端的网络层不通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作。4、客户端的链路层,通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

转载地址:http://pugnuy.baihongyu.com/

你可能感兴趣的文章
学习网站汇总
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>
solver及其配置
查看>>
JAVA多线程之volatile 与 synchronized 的比较
查看>>
Java集合框架知识梳理
查看>>