计算机网络常考面试题
1. OSI,TCP/IP,五层协议的体系结构,以及各层协议
OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。(物链网输会示用)
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。(接网输用)
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。(物链网输用)
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)
- IEEE 802.3是工作组和工作组制定的电气和电子工程师协会 (IEEE)标准的集合,该工作组定义了有线以太网的物理层和数据链路层的介质访问控制 (MAC)。 这通常是具有一些广域网 (WAN)应用的局域网(LAN)技术。 通过各种类型的铜缆或光缆在节点和/或基础设施设备( 集线器 , 交换机 , 路由器 )之间建立物理连接。
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
- PPP协议(点对点协议)。PPP协议作用:PPP协议可应用于连接认证,传输封装和压缩。目前应用于很多类型的物理网络,比如串行电缆,电话线等。
- HDLC:高级数据链路控制,是一个在同步网上传输数据、面向比特的数据链路层协议,其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。
- VLAN:虚拟局域网,是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。
- MAC地址:也叫物理地址,每张网卡在生产时厂家就是固化一个48位的地址(6个字节,通常表 示为12个16进制数,如:00-16-EA-AE-3C-40),此地址全世界唯一,交换机路由 器以此来确认网络设备位置的位址,缺点是不方便记忆,不够灵活。
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
- IP 地址:IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆,方便划分子网, 因此在计算机网络中表面上使用IP进行通信,目前由4个不超过255的整数组成,一般用点分十进制表示(192.168.2.180)
- ICMP:网际控制报文协议,ICMP封装在IP数据报的数据部分,分两种:ICMP差错报告,ICMP询问报告。
- 差错报告报文的五种:
- 终点不可达:不能交付
- 源点抑制:用塞丢弃,速率放慢
- 时间超过: 生存时间到时,数据报片未全部收到。
- 参数问题:字段值出错
- 改变路由:路由器改变
- ICMP询问报文:
- 回送请求和回答,测试目的站是否可答
- 时间戳请求和回答时钟同步,测量时间
- ARP:地址解析协议。
以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。
如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址。
ARP只适用于IPv4, 不能用于IPv6。IPv6 中可以用ICMPv6替代ARP发送邻居探索消息。
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用如下:
- 物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
- 数据链路层:将比特组装成帧和点到点的传递(帧Frame)
- 网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
- 传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
- 会话层:建立、管理和终止会话(会话协议数据单元SPDU)
- 表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
- 应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
2. IP地址的分类
A类地址:以0开头, 第一个字节范围:1~126(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);
D类地址:以1110开头,第一个字节范围:224~239(224.0.0.0 – 239.255.255.255);(作为多播使用)
E类地址:保留
其中A、B、C是基本类,D、E类作为多播和保留使用。
以下是留用的内部私有地址:
A类 10.0.0.0–10.255.255.255
B类 172.16.0.0–172.31.255.255
C类 192.168.0.0–192.168.255.255
IP地址与子网掩码相与得到网络号:
ip : 192.168.2.110
&
Submask : 255.255.255.0
—————————-
网络号 :192.168.2 .0
注:主机号,全为0的是网络号(例如:192.168.2.0),主机号全为1的为广播地址(192.168.2.255)
3. ARP是地址解析协议,简单语言解释一下工作原理
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响应。
4. 各种协议的介绍
TCP/IP 互联网层协议 :
ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。(分两种:ICMP差错报告,ICMP询问报告)
NAT协议:网络地址转换属于广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。让一个合法的地址给多个内部主机共享,通过端口号对不同主机进程加以区分,用来解决 IP 地址不足的问题。
TCP/IP 应用层协议:
TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。(总结:自动设置 IP 地址,统一管理 IP 地址分配)
5. 描述RARP协议
RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。
RARP的工作过程如下:
1、网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的MAC地址。PC1从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该PC的IP地址。
2、RARP服务器收到了RARP请求数据包,为其分配IP地址,并将RARP回应发送给PC1。
3、PC1收到RARP回应后,就使用得到的IP地址进行通讯
因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。
6. TCP三次握手和四次挥手的全过程
三次握手:
第一次握手:客户端发送syn包(syn=1,seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认;
第二次握手:服务器收到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,至此,完成四次挥手。
seq是序号,ack是确认号。
ACK 即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。
SYN:同步序列编号。是TCP/IP建立连接时使用的握手信号。
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应
7. 在浏览器中输入www.baidu.com后执行的全部过程
事件顺序:
(1) 浏览器获取输入的域名www.baidu.com
(2) 浏览器向DNS请求解析www.baidu.com的IP地址
(3) 域名系统DNS解析出百度服务器的IP地址
(4) 浏览器与该服务器建立TCP连接(默认端口号80)
(5) 浏览器发出HTTP请求,请求百度首页
(6) 服务器通过HTTP响应把首页文件发送给浏览器
(7) TCP连接释放
(8) 浏览器将首页文件进行解析,并将Web页显示给用户。
涉及到的协议
(1) 应用层:HTTP(WWW访问协议),DNS(域名解析服务)
(2) 传输层:TCP(为HTTP提供可靠的数据传输),UDP(DNS使用UDP传输)
(3) 网络层:IP(IP数据数据包传输和路由选择),ICMP(提供网络传输过程中的差错检测),ARP(将本机的默认网关IP地址映射成物理MAC地址)
8. TCP和UDP的区别
- TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输
- TCP是可靠交付,UDP是尽最大努力交付
- TCP面向字节流,UDP面向报文
- TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
- TCP是点对点连接的,UDP一对一,一对多,多对多都可以
- TCP适合用于网页,邮件等,UDP适合用于视频,语音广播等
- TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
9. DNS域名系统,简单描述其工作原理
当一个应用进程需要把某个域名解析为IP地址时,该应用进程就会调用解析程序,并成为一个DNS用户,把待解析的域名放在DNS请求报文中,以UDP数据报的形式发送给本地域名服务器,本地域名服务器查找到相应域名的IP地址后,就将该域名的IP地址信息放入应答报文中返回给客户进程,如果本地域名服务器没有直接查找到对应的IP地址,则向根域名服务器发出迭代查询,再将查询到的IP地址信息回传给客户程序。
10. 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)采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。
11. 了解中继器、集线器、网桥、交换机、路由器、网关的概念,并知道各自的用途
1.中继器
中继器(Repeater)是连接网络线路的一种装置,常用于两个网络节点之间物理信号的双向转发工作。中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个节点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。它在OSI参考模型中的位置物理层。
由于存在损耗, 在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。中继器就是为解决这一问题而设计的。它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同。
中继器是模拟设备,用于连接两根电缆段。中继器不理解帧、分组和头的概念,他们只理解电压值。
一句话总结:中继器,就是简单的信号放大器,信号在传输的过程中是要衰减的,中继器的作用就是将信号放大,使信号能传的更远。
2.集线器
集线器(Hub)是中继器的一种形式,区别在于集线器能够提供多端口服务,也称为多口中继器。集线器在OSI/RM中的物理层。
一句话总结:集线器,差不多就是个多端口的中继器,把每个输入端口的信号放大再发到别的端口去,集线器可以实现多台计算机之间的互联,因为它有很多的端口,每个口都能连计算机。
3.网桥
网桥(Bridge)是一个局域网与另一个局域网之间建立连接的桥梁。网桥是属于数据链路层的一种设备,它的作用是扩展网络和通信手段,在各种传输介质中转发数据信号,扩展网络的距离,同时又有选择地将现有地址的信号从一个传输介质发送到另一个传输介质,并能有效地限制两个介质系统中无关紧要的通信。
一句话总结:网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”。
4.交换机
交换机(Swich)工作在第二层(即数据链路层),它要比集线器智能一些,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。交换机通过对信息进行重新生成,并经过内部处理后转发至指定端口,具备自动寻址能力和交换作用。但是 交换机并不懂得IP地址,它只知道MAC地址。
交换机是使用硬件来完成以往网桥使用软件来完成过滤、学习和转发过程的任务。交换机速度比HUB快,这是由于HUB不知道目标地址在何处,发送数据到所有的端口。而交换机中有一张MAC地址表,如果知道目标地址在何处,就把数据发送到指定地点,如果它不知道就发送到所有的端口。这样过滤可以帮助降低整个网络的数据传输量,提高效率。但是交换机的功能还不止如此,它可以把网络拆解成网络分支、分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的数据信息流量而使每个网络更有效,提高整个网络效率。
现代交换机是这样处理数据帧的:一旦目标头域(目标地址)已经进来了,尽管帧的其他部分还没有到达,则只要输出线路可以使用,交换机就开始转发该帧,而不需理会帧后面的内容,也即是说交换机并没有使用“存储—转发”交换方式。
一句话总结:交换机,可以理解为高级的网桥,他有网桥的功能,但性能比网桥强。交换机和网桥的细微差别就在于:交换机常常用来连接独立的计算机,而网桥连接的目标是LAN,所以交换机的端口较网桥多。
5.路由器
路由器(Router)工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上。对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。网络中的设备用它们的网络地址(TCP/IP网络中为IP地址)互相通信。IP地址是与硬件地址无关的“逻辑”地址。目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。
路由器用于连接多个逻辑上分开的网络,几个使用不同协议和体系结构的网络。路由器利用网络层定义的“逻辑”上的网络地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各个网络的独立性。当一个子网传输到另外一个子网时,可以用路由器完成。它具有判断网络地址和选择路径的功能,过滤和分隔网络信息流。一方面能够跨越不同的物理网络类型(DDN、FDDI、以太网等等),另一方面在逻辑上将整个互连网络分割成逻辑上独立的网络单位,使网络具有一定的逻辑结构。
一句话总结:路由器的主要工作就是为经过路由器的每个IP数据包寻找一条最佳传输路径,并将该数据有效地传送到目的站点。 路由器的基本功能是,把数据(IP报文)传送到正确的网络。
6.网关
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
一句话总结:网关,通过字面意思解释就是网络的关口。从技术角度来解释,就是连接两个不同网络的接口,比如局域网的共享上网服务器就是局域网和广域网的接口。
11.1 路由器和交换机的区别
从应用上说:
交换机和路由器的使用中最大的区别莫过于路由器内部可实现拨号上网,然后通过共享给多台电脑同时上网,而交换机内部不具有拨号功能,但交换机的作用是将网络信号分流,以实现更多电脑连接共享上网。
大家可以这样认为,交换机可以将多台电脑连接起来,与交换机互连的电脑本身则具备了互相通信的功能,组建成了一个内部局域网,但需要访问互联网还需要有网络支持,因此交换机一端需要连接到路由器,路由器即可实现交换功能,还可以拨号,实现宽带连接,并将宽带资源分配个交换机使用,这样就实现了多台电脑共享上网。
从概念上说:
路由,是三层设备,有选择道路的作用。比如你去罗马,有很多路可以走,怎么走省钱省时间,就是路由要做的,解决你应该按照那条路走的问题。当然还有基于三层的其他功能。
交换机,是二层设备。他就像你家门前的如或者你们楼道,附近的住户都知道去几层几号怎么走。
11.2 为什么有时候还要在路由器的后面先接1台交换机再接计算机
路由器是可以直接接电脑等终端设备,为什么标准都是路由器接交换机然后再接电脑等终端,是因为路由器本来就是一个路由设备,用来选路的,不适合大量的数据交换,交换机是用来大量数据交换的,终端在内网的性质就是需要使用交换机,所以标准就是路由器地下接交换机的形式。一般是情况就是在路由器下面接交换机,路由器主要起数据转发,也就是寻址、路由的功能,交换机起到用户接入的目的。但是家用的路由器的话直接就接计算机就可以了,而不必考虑再接交换机。