计算机网络题
关于OSI分层的概念
1、OSI有哪几层,怎么画,并且作用分别是?
- 应用层(
):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用
- 表示层(
):主要解决用户信息的语法表示问题,如加密解密
- 会话层(
):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制,如服务器验证用户登录便是由会话层完成的
- 传输层(
):实现网络不同主机上用户进程之间的数据通信,可靠与不可靠的传输,传输层的错误检测,流量控制等
- 网络层(
):提供逻辑地址(IP)、选路,数据从源端到目的端的传输
- 数据链路层(
):将上层数据封装成帧,用MAC地址访问媒介,错误检测与修正
- 物理层(
):设备之间比特流的传输,物理接口,电气特性等
2、每个层用的是哪个数据交换设备?(交换机、路由器、网关)
- 网关:应用层、传输层
网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构和路由器类似,不同的是互联层。==网关即可用于广域网互连,也可以用于局域网互连。== - 路由器:网络层(路由选择,存储转发)
- 交换机:数据联络层、网络层
识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中
==MAC(Media Access Control, 介质访问控制),或称为 MAC位址、硬件位址,用来定义网络设备的位置== - 网桥:数据链路层
将两个LAN连接起来,根据MAC地址来转发帧
==LAN一般指局域网== - 集线器(Hub):物理层(纯硬件设备,主要用来连接计算机等网络终端)
- 中继器:物理层
在比特级别对网络信号进行再生和重定时,从而使得它们能够在网络上传输更长的距离
数据链路层
ARP协议:“Address Resolution Protocol”(地址解析协议)
1、ARP的作用是什么?
不使用。
-
帧类型:ARP:0x0806
-
硬件类型:硬件地址的类型,以太网的值为1
-
协议类型:表示要映射的协议地址的类型,表示IP地址,值为0x0800
-
硬件地址长度:字节为6单位
-
协议地址长度:字节为4单位
-
操作类型:用来表示这个报文的类型。
-
ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4*
-
发送方硬件地址:6个字节
-
发送方IP地址:4个字节
-
目标硬件地址(接收方):6个字节
-
目标IP地址(接收方):4个字节
-
CRC校验:4个字节
5、ARP协议有什么弱点?
-
缓存:主机的地址映射是基于高速缓存的,是动态更新的。地址刷新是有时间限制的,可以通过下次更新之前修改计算机上的地址缓存,造成拒绝服务供给或者ARP欺骗。
-
广播:攻击者可以伪装ARP应答。
-
ARP应答没有认证,都是合法的。可以在不接受到请求的时候就发出应答包。
6、ARP代理的概念和应用场景?
ARP代理:若ARP请求是从一个网络的主机发送给另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程就叫做ARP代理。ARP代理路由器响应ARP请求的MAC地址为路由器的MAC地址,而非ARP请求的主机的MAC地址。
ARP代理的应用环境:两个物理网络之间的路由是使用相同的网络号,两个路由器设置成ARP代理,实现相互隐瞒的物理网络
7、免费ARP?
指的是主机发送ARP查找自己的IP地址,即数据链路层SIP=DIP
作用有两个:
-
一个主机使用免费ARP确定是否存在有其他主机设置了相同的IP地址
-
如果发送免费ARP的主机改变了MAC地址,可以通过发送免费ARP的方式告知其他主机端更新ARP表
8、数据链路层MTU(数据链路层允许的最大IP包长)的最大值和最小值是多少?
-
数据链路层的最小MTU为64字节。
-
数据联络层的最大MTU为1500字节,即数据字段的最大长度
网络层
一、IP协议:==IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。==
1、如何理解IP的不可靠和无连接?
-
无连接:IP不维护关于后续数据报的状态信息
IP数据可以不按顺序地发送和接受。A发送连续的数据报,到达B不一定是连续的,来回路由选择可能不一样,路线也不一样,到达先后顺序也不一样。2、IP报文的格式和各个字段的含义?
-
版本号:IPV4就是4,IPV6就是6
-
首部长度:以4个字节为单位。最小为5,最大为15。所以最小的长度为20个字节,最大为60个字节。
-
服务类型:Qos用,占8位,即1个字节,一般情况下不用这个字段。
(QoS的英文全称为"Quality of Service",中文名为"服务质量"。QoS是网络du的一种安全机zhi制, 是用来解决网络延迟和阻dao塞等问题的一种技术。现在的路由器一般均支持QoS)用。 -
总长度:指报头和数据之和的长度,单位是字节。总长度字段为16位,故IP数据报的最大长度为65535(2^16-1)。
-
标识:占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并赋给标识字段。当数据报进行分片处理后,每个分片的标识值都与原数据报的标识值相同,则在接收端具有相同标识值的分片就能最终正确的重装成为原来的数据报。
-
标志:占3位,但目前只有两位有意义
1. 最低位记为MF。MF=1即表示后面”还有分片“的数据包。MF=0表示这已是若干数据包片中的最后一个。
2. 中间位记为DF,意思是”不能分片“。只有当DF=0时才允许分片。 -
段偏移:与分片有关,占13位。表示每个数据报的分片在原数据报中的相对位置
-
生存时间:经过一个路由器减一。字段为0时,数据报被丢弃,并且发送ICMP报文通知源主机,目的是防止数据报在选路时无休止地在网络中流动。
-
协议:区分上层协议。
-
首部校验和:仅对首部进行校验。
【对比:ICMP、IGMP、TCP、UDP:对首部和数据进行校验】 -
源地址:占32位。
-
目的地址:占32位。
3、为什么IP首部中要有总长度字段?
因为一些数据链路(以太网)需要填充一些数据以达到最小长度。因为以太网帧的最小长度是46个字节,但是IP长度可能更短,所以需要总长度来确定IP数据部分的内容。
4、IP首部校验和是怎么计算的?与ICMP、IGMP、TCP、UDP的首部校验和有什么区别和共同点?
- 计算
- 先把校验和字段置0;
- 对首部中每个16位比特进行二进制反码求和;
- 结果存在校验和字段中;
- 收到一份IP数据包后,同样对首部中每个16bit二进制反码求和;
- 最后结果全为1,表示正确,否则错误;
- 如果是错误的,IP就丢弃该数据报,但是不生成差错报文,而是由上层去处理。
- 异同点
-
同:用到的算法都是一样的
-
异:IP计算的时候没有将数据包括在内;
而ICMP、IGMP、TCP、UDP同时覆盖首部和数据校验码。5、主机和路由器本质区别是?
主机从不把数据报从一个接口转发到另一个接口,而路由器则要转发数据报。
6、IP路由选择的过程是怎样的?
根据最长匹配原则,找到条目,发送到指定的路由器。如果找不到,则返回一个“主机不可达”或“网络不可达”的错误。
7、IP路由选择的特性有什么?
-
IP路由选择是逐条进行的。
IP并不知道到达任何目的地的完整路径,只提供下一条的地址。 -
为一个网络指定一个路由器,而不是为每个主机指定一个路由器。这样可以缩小路由表的规模。
8、IP搜索路由表的步骤是?
搜索匹配的主机地址——>搜索匹配的网络地址——>搜索默认选项
IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。
####9、如果路由表中没有默认项,而又没有找到匹配项,此时如何处理?
结果取决于该IP数据报是由主机产生的还是被转发的。
-
如果数据报是由本机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”。
-
如果是被转发的数据报,就给原始发送一份ICMP主机不可达的差错报文。
10、IP地址的分类,是如何划分的,及会计算各类地址支持的主机数
- A类地址:首位为0,1.0.0.1~~126.255.255.254;主机号24位;
- B类地址:首位为10,128.0.0.1~~191.255.255.254;主机号16位;
- C类地址:首位为110,192.0.0.1~~223.255.255.254;主机号8位;
- D类地址(多播地址,也叫组播地址):首位为1110,224.0.0.1~~239.255.255.254;
- E类地址:此类地址是保留地址,首位为11110,240.0.0.1~254.255.255.254
二、ICMP协议(网络控制报文协议)
由于互联网之间通讯会涉及到很多网关和主机,为了能够报告数据错误,所以产生了ICMP协议。也就是说ICMP协议就是为了更高效的转发IP数据报和提高交付成功的机会。
ICMP分为两类,一类是ICMP查询报文,另一类是ICMP差错报文
-
ICMP差错报文
-
目的地址是广播地址或者多播地址的IP数据报
-
链路层广播的数据报
-
不是IP分片的第一片
-
原地址不是单个主机的数据包
5、ICMP重定向差错报文是怎么来的,在何种场合出现?
- 主机发送IP数据报给R1,因为主机的默认路由指向的下一站是R1
- R1收到数据报并且检查它的路由表,发现R2是发送该数据报的下一站。当它把数据报发送给R2时,R1检测到它正在发送的接口与数据报到达接口是相同的(即主机和两个路由器所在的LAN)。这样就给路由器发送重定向报文给原始发送端提供了线索。
- R1 发送一份ICMP重定向报文给主机,告诉它以后把数据报发送给R2而不是R1。
-
重定向报文只能由路由器生成。
-
重定向报文是为主机而不是为路由器使用的。
7、Ping过程解析?
- A电脑(19.168.2.135)发起ping请求,ping 192.168. 2.179
- A电脑广播发起ARP请求,查询19.168.2.135的MAC地址
- B电脑应答ARP请求,向A电脑发起单向应答,告诉A电脑自己的MAC地址为90:A4:DE:C2:DF:FE
- 知道了MAC地址后,开始进行真正的 ping请求,由于B电脑可以根据A电脑发送的请求知道MAC地址,所以就可以根据源 MAC地址进行响应了。
传输层
UDP协议
1、UDP和TCP的简单介绍?
-
UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
-
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的字节流服务。
2、UDP报头字段和含义?
UDP报头由4个部分组成,其中两个是可选的(粉红背景标出部分): -
各16bit的来源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。
-
在目的端口后面是长度固定的以字节为单位的报文长度域,用来指定UDP数据报包括数据部分的长度,长度最小值为8byte
-
首部剩下的16bit是用来对首部和数据部分一起做校验和(Checksum)的,这部分是可选的,但在实际应用中一般都使用这一功能。
-
UDP和TCP的校验和都覆盖到了他们的首部和数据,而之前介绍的IP首部的校验和只覆盖了IP首部。
3、UDP的校验和是怎么计算的?
UDP的校验和要计算首部和数据部分,首部还包括伪首部。
多了12个字节的伪首部。
注意点: UDP长度计算两次
目的是让UDP两次检查数据是否已经正确到达目的地。
IP接受正确的目的地址,传送到正确的上层程序,
TCP协议(传输控制协议)
1、TCP通过哪些方式来保证可靠性?
-
应用数据被分割成TCP认为最适合发送的数据块
-
确认机制,发送报文后,等待确认
-
重发机制,没有受到确认将重发数据段
-
保持它首部和数据的校验和,以确认数据的准确性
-
排序,丢弃重复的,流量控制
2、TCP与UDP概念相互的区别与优劣
且TCP面向报文,而UDP面向字节流3、TCP与UDP为什么存在伪报头?
UDP(TCP)检验和:是根据UDP(TCP)数据报和伪报头计算得到的差错检测值。
伪报头包含源和目的IP地址,以及来自IP数据报报头的协议值。IP数据报在网络中传送时包含UDP数据报。
伪报头并不会在网络中传送,校验和中所包含的伪报头内容可以避免目的端错误的接收错误路由的数据报。检验和值的计算方法和IP报头检验和计算方法类似。4、TCP为何三次握手四次挥手?
- 三次握手:
- 四次挥手