网络基础原理专题
1.IP分片的原因及相关报文控制字段
。因为不同的链路类型对应的网络层MTU可能不一致,会导致发送方发出的最大尺寸数 据包超出接收方的MTU。为了避免因超出MTU而导致的数据包无法接收处理,所以需 要对数据包进行分片 。IP报文中有3个字段对分片进行控制 -ID字段是标识符,用于标识该分片来自哪一个数据包 ・Flag字段有3个标志位。第一个标志位保留,第二个标志位标识数据包是否禁止分 片,第三个标志位标识该分片是否为最后一个分片 ・Fragment Offset是分片偏移,用于描述该分片在完整数据包中的位置和重组顺序
2.ARP、RARP、免费ARP协议原理和使用场景
。ARP是地址解析协议,用于根据目的IP地址来解析出MAC地址,进行二层通讯。工 作原理是通过广播发送ARP查询请求来请求目的IP的MAC地址,与发送方处于同一 广播域的主机收到该请求后,如果确认查询的IP是本机,则单播回应本机的MAC地 址;如果发现查询的IP不是本机,则不回应;发送方接收到ARP回应后,把该IP和 MAC地址写入本机ARP缓存表(老化时间为20分钟),下次再与该IP进行二层通讯,则直接使用表中的记 录来进行 。关于ARP的命令: 1.查询ARP缓存表:arp-a 2.清空ARP缓存表:arp-b 3.两个命令皆是在PC上进行配置 。ARP的使用场景分两种情况 ・如果目的IP和本机IP属于同一网段,则ARP请求查询的就是目的IP的MAC地 址 -如果目的IP和本机IP不属于同一网段,当本机存在到达目的IP的路由时,则ARP请求查询的就是该路由下一跳的MAC地址;如果没有明细路由,就请求查询 缺省路由下一跳(也就是网关)的MAC地址 。RARP是逆向ARP协议,用于根据本机的MAC地址来查询出本机的IP地址,一般常 见的场景是用于无盘工作站,无盘终端需要通过自己的MAC地址向服务器请求IP地址 后才能进行系统引导 。免费ARP是主动使用自己的IP地址作为目标地址发送ARP请求 。免费ARP主要作用有三种 -用于检查网络中是否有主机和本机IP地址重复 ・用于通告本机新的MAC地址 -在VRRP备份组中通告主备发生变化 。ARP的配置命令:在交换机上手动添加一条静态ARP记录:arp static 202.30.10.2 00e0-fcol-0000 10 G1/0/1(手动配置IP地址和MAC地址+VLAN+出接口的映射关系);交换机查看ARP表项:display arp all(查看所有ARP表项);将all换成dynamic就是查看动态学习到的ARP表项;将all换成static就是查看静态ARP表项。 二层和三层的排错思路:二层是交换机基于MAC转发的,所以如果二层不同,考虑交换机的问题。比如VLAN和接口类型配置有误、MAC地址学习有问题、二层出现环路导致广播风暴、链路聚合不通、是否配置了基于MAC的ACL等等。另外如果做了错误的ARP静态绑定也会导致二层不通; 三层是路由器基于IP转发的,所以三层不通要考虑的是IP和路由的问题,比如IP地址是否配置正确、是否具有双方互通的路由、路由的指向是否正确、是否配置了ACL过滤了数据包等等。另外三层要通的前提是二层连通,所以三层的排错要首先排除二层的问题
3.Ping功能工作原理和Tracert功能工作原理
。Ping用于检测网络连通性,工作原理:源主机向目的主机发起ICMP echo-request(回声请求)报 文;目的主机收到报文后会向源主机发送ICMP echo-reply(回声应答)报文。在规定的时候间内, 源主机如果没有接到ICMP的应答包,则说明目标主机不可达;如果接收到了 ICMP回 送响应消息,则说明目标主机可达。此时,源主机会检查,用当前时刻减去该数据包最 初从源主机上发出的时刻,就是ICMP数据包的时间延迟 。Tracert用于跟踪数据包经过的路由器,工作原理:源主机向目的主机发送TTL值为1 的echo-request(回声请求)报文(是一个错误的报文),该报文在到达第一个路由器时就因为TTL值耗尽而丢弃,此时 该路由器会向源主机返回一个ICMP超时报文;源主机收到后会再次向目的主机发送 TTL值为2的echo-request报文,该报文到达第二个路由器时丢弃,第二台路由器再 向源主机返回ICMP超时报文;源主机收到后会继续发送TTL值+1的echo-request 报文,直到到达目的主机为止,目的主机会回复port-unreachable(目的不可达)报文。最后源主机就 会把沿途经过的路由器的地址(IP地址)依次输出显示 。配置命令:ip ttl en ip un en
4.TCP传输确认机制工作原理
。TCP协议通过传输确认机制来维护数据传输的可靠性,原理如下: -A主机向B主机发送的第一个TCP报文,会随机产生Seq-Number (序列号), 一次发送多个数据分段的话,除第一个以外的TCP报文的Seq-Number是上一个 报文的Seq-Number +报文数据的长度 -B主机收到TCP报文后,会对收到的报文进行差错校验,校验无误后,在向A主 机回复的TCP报文中,产生Ack-Number (确认号)为收到的最后一个报文的 Seq-Number +报文数据长度,并也会随机产生B主机自己的Seq-Number -A主机收到B主机回复的报文后,通过报文的Ack-Number就能够确认上一次自 己发送的报文是完整无误的,并同时也对收到的报文进行差错校验,校验无误后, 在下一次向B主机发送的TCP报文中携带Seq-Number为上一次收到的B主机报 文的Ack-Number,并携带Ack-Number为上一次收到的B主机最后一个报文的 Seq-Number +报文数据长度 -如果在传输过程中,因为没有收到,或差错校验发现某一个TCP数据报文不完 整,就会在下一次向对方发送的报文中携带Ack-Number为错误报文的Seq- Number ;对方收到后,会把该报文进行重传,重传确认无误后,再向对方发送正 确的Ack-Number继续向后发送
5.TCP连接建立与断开的工作原理
。TCP连接通过三次握手机制建立 -A主机向B主机发起TCP连接请求,把SYN置位,并开始随机产生Seq-Number -B主机收到请求后,向B主机发送请求响应,把ACK和SYN置位,并开始进行传 输确认 -A主机收到响应后,也向B主机发送请求响应,把ACK置位,并继续进行传输确 认 。TCP连接断开有2种方式 -四次挥手方式: -A主机向B主机发送TCP结束请求,把FIN置位 ・B主机向A主机发送请求响应,把ACK置位 -等到B主机把给A主机的数据发送完毕后,B主机也向A主机发送结束请 求,把FIN置位 ・A主机向B主机发送请求响应,把ACK置位 ・Reset强行断开 -当因为网络故障无法完成四次挥手时,可以通过直接发送RST置位的报文来 断开TCP连接;发送或收到RST报文,都会立即断开TCP连接 。为什么TCP握手一定是3次,2次行不行 -不行。因为TCP连接建立的目的是为了让通讯双方互相确认。2次握手只能完成单 方确认
6.TCP滑动窗口机制
。TCP滑动窗口机制是为了实现流量控制的一种方式。当双方吞吐量不一样,就会导致一 边快一边慢,容易形成网络拥塞,所以需要进行控制。工作原理如下 -A主机向B主机一次发送了 4个长度为1024的数据分段,总长度4096 -B主机吞吐量只能处理2048的长度,所以就会在下次发送给B的报文中携带 Window 字段为 2048 -A主机收到后,下次向B主机就只发送2个长度为1024的数据分段,总长度 2048,符合B主机的吞吐量
7.TCP与UDP的区别与适用场景
。TCP属于有连接,可靠的通讯协议,有各种可靠性机制来维护数据传输的可靠性;但是 这些可靠性机制也会导致需要消耗更多的资源来处理,会引入更大的时间延迟。所以 TCP适用于对数据完整性有要求,但对传输延迟不敏感的通讯。比如文件下载,邮件传 输 。UDP属于无连接通讯,也没有任何可靠性机制,无法保障数据传输的完整性;但相应的 也更节省资源,处理和传输的延迟都更小。所以UDP则适用于对延迟敏感,但是对数 据完整性要求不高的通讯。比如语音和视频的即时通讯。在某些情况下,如过对UDP 的通讯也有数据完整性要求,可以通过在其他层来完成 *
8.数据报文长度的问题
。IP头部长度在20-60字节之间,且头部长度必须是4字节的倍数,当头部长度不是4 字节的倍数时,会在Padding字段填充0来达到4字节的倍数 。以太网帧头部和尾部的长度是18字节,帧总长度是18字节+ IP报文长度,所以如果 接口的MTU是1500字节的话,那么以太网帧的最大长度就是1518字节;但是以太网 的每个帧前还有8字节的前导码,标识一个以太网帧的开始,所以算上前导码,最终实 际最大长度应该是1526字节 。TCP头部长度在20-60字节之间,且头部长度必须是4字节的倍数,当头部长度不是4 字节的倍数时,会在Padding字段填充0来达到4字节的倍数 。基于上面的描述,如果一个长度1000字节数据信息要以TCP协议在以太网上传出的 话,实际上接口总共需要发送的数据长度为:1000 + 20 (TCP头部)+ 20 (IP头部) + 18 (以太网帧头部和尾部)+ 8 (前导码)=1066字节 。如果接口 MTU是默认的1500字节,那么当数据内容+ TCP头部+ IP头部的长度超出 1500字节时,且允许被分片,数据包将被分片处理
9.一个接口是否可以配置多个IPv4地址?是否可以配置多个IPv6地址?
。一个接口可以配置一个主IPv4地址,还可以另外同时配置多个子IPv4地址,都能同时 生效 。一个接口可以同时配置多个IPv6全球单播地址,并且会自动产生一个链路本地地址
10.DHCP
DHCP的工作流程: 。客户端以全网广播发送Discover(发现)消息,寻找DHCP服务器 。DHCP服务器收到消息后,会从地址池中取出一个IP地址,以广播形式回应一个Offer(提供)报文给客户端 。客户端收到Offer报文后,会ping一下该地址,看该地址是否已经被使用,如果未使用则向服务器广播发送一个Requset(请求)报文,请求使用该地址 。DHCP服务器收到后,最后广播回应一个ACK(确认)报文,确认分配该地址 -DHCP的租约更新: 。客户端会在租约到达50%时单播发送租约更新,服务器确认后,租约刷新到100% 。如果50%时客户端未在线,租约到达87.5%时,会再次广播发送租约更新,服务器确认后,租约刷新到100% 。如果两次机会客户端都未在线,等到租约结束后,客户端会自动释放IP地址,并重新向DHCP服务器请求地址。 -DHCP中继的工作原理: 。当DHCP服务器需要跨网段广播分配IP地址时,需要在客户端的网关路由器上配置DHCP中继,开启中继后,工作流程如下: 1.客户端广播发送Disecoer(发现)报文,会被中继路由器收到 2.中继路由器把该广播转换成单播形式,发送给DHCP服务器 3.DHCP服务器单播回应报文给中继路由器 4.中继路由器把单播回应报文转化为广播,发送给客户端 -DHCP snooping 1.在二层交换机上配置,需要配置一个信任接口(上行接口),只有在这个接口才能转发DHCP的报文 2.如果没有配置信任端口,那么将无法转发DHCP报文,配置是为了防止有私自接入一个DHCP服务器 3.也可以做一个DHCP的绑定,如果检查不是该映射关系的转发将不处理(IP地址固定映射MAC地址),为了防止有人自己弄一个公网地址来上网 -DHCP Snooping的作用 DHCP Snooping 是在二层交换机配置的保障DHCP安全性的一个协议,主要功能有两个: 。把连接DHCP服务器的端口配置为Trust口,只允许连接的PC从Trust口和DCHP服务器通信,确保不会有私设的DHCP服务器扰乱网络 。联动DHCP服务器中的已分配地址表,把已经分配的IP和获取该IP的PC的MAC地址绑定,只要发现数据帧的源IP和源MAC与绑定记录不一致,则丢弃数据帧。通过这个办法来确保必须通过DHCP获取地址来接入网络 -DHCP获取不到地址的排错思路: 。检查DHCP服务是否开启,地址池是否配置正确 。检查地址池中是否还有可用地址,如果地址已被分配完,将无法分配新的地址 。如果是中继环境,检查中继路由器和DHCP服务器之间是否有路由可达 。如果是中继环境,检查DHCP服务器是否有到客户端所在网段的路由(中继服务器也需要开启DHCP)
11.什么是冲突域和广播域
冲突域是指该范围内,所有的设备连接在一条公共总线上,所有设备同时只能有一台使用线路,也就是只能有一台设备发送数据和接收数据。一台集线器的所有接口与其连接的设备都处于同一个冲突域,交换机的二层接口都是一个独立的冲突域。 。由于同时发送数据就会产生冲突,在冲突域中,需要使用CSMA/CD(载波侦听多路访问/冲突检测)来进行冲突检测。原理是每次发送数据前,会先侦听一下线路是否被占用,如果被占用就等待一段时间,再次侦听,等到线路空闲才能发送数据;如果多次侦听线路一直被占用,就放弃发送 -广播域是指能够接收到同一个广播的设备所组成的网络范围。默认情况下,二层交换机的所有接口连接的设备都处于同一个广播域,如果划分了VLAN,每一个VLAN是一个独立的广播域。路由器的每个接口也是一个独立的广播域。