1. MAC 地址和 IP 地址分别有什么作用 ★★★
- MAC 地址是数据链路层和物理层使用的地址,是写在网卡上的物理地址。MAC 地址用来定义网络设备的位置
- IP 地址是网络层和以上各层使用的地址,是一种逻辑地址。IP 地址用来区别网络上的计算机
2. 为什么有了 MAC 地址还需要 IP 地址 ★★★★
- 如果只使用 MAC 地址进行寻址的话,我们需要路由器记住每个 MAC 地址属于哪一个子网,不然每一次路由器收到数据包时都要满世界寻找 MAC 地址。因为 MAC 地址的长度为 48 位,也就是说最多总共有 2 的 48 次方个 MAC 地址,这就意味着每个路由器需要 256 T 的内存,这显然是不现实的
- IP 地址是和地域相关的,在一个子网中的设备,我们给其分配的 IP 地址前缀都是一样的,这样路由器就能根据 IP 地址的前缀知道这个设备属于哪个子网,剩下的寻址就交给子网内部实现,从而大大减少了路由器所需要的内存
3. 为什么有了 IP 地址还需要 MAC 地址 ★★★★
- 只有当设备接入网络时,才能根据进入的那个子网来为其分配 IP 地址
- 在设备还没有 IP 地址的时候或者在分配 IP 地址的过程中,需要 MAC 地址来区别不同的设备
4. 私网地址和公网地址之间进行转换:同一个局域网内的两个私网地址,经过转换之后外面看到的一样吗 ★★★
- 当采用静态转换或者动态转换时,由于一个私网 IP 地址对应一个公网地址,因此经过转换之后的公网 IP 地址是不同的
- 采用端口复用方式转换,在一个子网中的所有地址都采用一个公网地址,但是使用的端口是不同的
5. 以太网中的 CSMA/CD 协议 ★★
概念
- CSMA/CD 为载波监听多路访问/冲突检测,是像以太网这种广播网络采用的一种机制
- 在以太网中多台主机在同一个信道中进行数据传输,CSMA/CD 很好地解决了共享信道通信中出现的问题
原理
- 载波监听:当使用 CSMA/CD 协议时,总线上的各个节点都在监听信道上是否有信号在传输。如果有的话,表明信道处于忙碌状态,继续保持监听,直到信道空闲为止。如果发现信道是空闲的,就立即发送数据
- 冲突检测:当两个或两个以上节点同时监听到信道空闲时,便开始发送数据,此时就会发生碰撞(数据的传输延迟也可能引发碰撞)。当两个帧发生冲突时,数据帧就会被破坏从而失去了继续传输的意义。在数据的发送过程中,以太网是一直监听信道的,当检测到当前信道冲突,就立即停止这次传输,避免造成网络资源浪费,同时向信道发送一个「冲突」信号,确保其它节点也发现该冲突。之后采用一种二进制退避策略让待发送数据的节点随机退避一段时间之后重新发送
6. 数据链路层上的三个基本问题 ★
- 封装成帧:将网络层传下来的分组前后分别添加首部和尾部,这样就构成了帧。首部和尾部的一个重要作用是帧定界,也携带了一些必要的控制信息,对于每种数据链路层协议都规定了帧的数据部分的最大长度
- 透明传输:帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束的位置就会判断错误,因此需要在数据部分中出现有歧义的内容前边插入转义字符,如果数据部分出现转义字符,则在该转义字符前再加一个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在
- 差错检测:目前数据链路层广泛使用循环冗余检验(CRC)来检查数据传输过程中是否产生比特差错
7. PPP 点对点协议概述 ★
概念
- 互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP(点对点)协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议
- 点对点协议为点对点连接上传输多协议数据包提供了一个标准方法,该协议设计的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种解决方案
特点
- PPP 协议具有动态分配 IP 地址的能力,其允许在连接时刻协商 IP 地址
- PPP 协议支持多种网络协议,例如 TCP/IP、NETBEUI 等
- PPP 协议具有差错检测能力,但不具备纠错能力,所以 PPP 是不可靠传输协议
- 无重传的机制,网络开销小、速度快
- PPP 具有身份验证的功能
8. 为什么 PPP 协议不使用序号和确认机制 ★
- IETF 在设计因特网体系结构时把其中最复杂的部分放在了 TCP 协议中,而网际协议 IP 则相对比较简单,它提供的是不可靠的数据包服务。在这种情况下,数据链路层没有必要提供比 IP 协议更多的功能。若使用能够实现可靠传输的数据链路层协议,则开销就要增大,这在数据链路层出现差错概率不大时是得不偿失的
- 即使数据链路层实现了可靠传输,但其也不能保证网络的传输也是可靠的,当数据帧在路由器中从数据链路层上升到网络层后,仍有可能因为网络层拥塞而被丢弃
- PPP 协议在帧格式中有帧检验序列,对每一个收到的帧,PPP 都会进行差错检测,若发现差错,则丢弃该帧