第2章:从二层到三层
从物理层到MAC层
2.1 物理层、MAC层概念
-
IP层要封装了MAC层才能将网络包放入物理层
-
局域网:LAN,Local Area Network
-
MAC:Medium Access Control:媒体访问控制
第二层名为链路层,主要解决三个问题:①网络包的发给谁,谁接收 :这里要用到一个物理地址,叫做链路层地址,也叫MAC层地址(因为该层主要解决媒体接入控制问题)。
②多路访问:媒体接入控制(控制谁先发,谁后发,防止混乱):例如随机接入协议。
③发送时出现错误怎么办 :通过CRC(Cyclic Redumdancy Check,循环冗余检测)来解决发送过程中出现的错误。
MAC层工作流程:
第二层网络包的最开始是目标MAC地址和源MAC地址,接下来是网络包类型,大部分是IP数据包,IP数据包 里面包含TCP、UDP,以及HTTP等,这都是里层封装的事情。
有了目标MAC地址,IP数据包在链路上广播,MAC层的网卡才能知道这个包是给它的。MAC层的网卡把包收进来,然后打开IP数据包,发现IP地址也是给自己的,再打开TCP数据包,发现端口号也是给自己的,也就是80,而监听80的是nginx。
于是将请求提交给nginx,nginx返回一个网页。然后将网页返回给请求的机器,接着层层封装,最后到MAC层。返回时,来时的源MAC地址变成了此时的目标MAC地址。
TIPS:源机器指导目标机器时,可以将目标地址放入网络包中;如果不知道,通过ARP(已知IP地址求MAC地址的协议)“吼”来找出其MAC地址。 机器会在本地进行ARP缓存。
- 交换机学习后得到转发表,知道了每个接口所连电脑的地址。
小结:①MAC层是用来解决多路访问的“堵车”问题的。
②ARP是通过“吼”的方式哎找寻目标MAC地址的,“吼”完之后会记住一段时间,这个叫做缓存。
③交换机是有MAC地址学习能力的,学会了它就能知道谁在哪里,不用广播了。
2.2 交换机与VLAN
生成树协议(Spanning Tree Protocol,STP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴,大量占用交换机的资源。
小结:①当交换机的数目越来越多时,会遭遇环路问题,让广播包迷路。这时需要使用STP通过“比武论剑”的方式,将有环路的图变成没有环路的图,从而解决环路问题。
②交换机数目过多会导致隔离问题。可以通过VLAN形成虚拟局域网,从而解决广播问题和安全问题。
2.3 ICMP与ping
互联网控制报文协议:ICMP(Internet Control Message Protocol)
ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP Echo 请求报文,测试目的站是否可达及了解其有关状态。
echo v/n :回声,回响
对ping的主动请求进行网络抓包,称为ICMP ECHO REQUEST
主动请求的回复:称为ICMP ECHO REPLY
ping计算的过程(同一个局域网的情况): 过主机发送一个ICMP包到目标地址,如果接收到了ICMP应答数据包,说明目标主机可达。此时源主机会用当前时刻减去该ICMP应答数据包从源主机上发出的时刻(在发送请求数据包时,会在报文的数据部分插入发送时间),最终得到ICMP应答数据包的时间延迟(RRT,Round-Trip Time,往返时间)。
小结:①ICMP相当于网络世界的侦察兵,两种类型的ICMP报文,一种是主动探查的查询报文,一种是异常报告的差错报文。
②ping使用查询报文,Traceroute使用差错报文。
2.4节 网关gateway
- MAC头和IP头细节 (P65)
通过CIDR和子网掩码判断目标IP地址和源IP地址是否属于同一个网段。
如果属于:将源IP地址和目标IP地址放入IP头中,然后发送ARP获得MAC地址,将源MAC地址和目标MAC地址放入MAC头中,发出去就行了。
如果不属于:先将请求包发往默认网关,默认网关的IP地址一般是网段的第一个或第二个地址。例如网段192.168.1.1/24这个网段,默认网关地址往往是192.168.1.1/24或192.168.1.2/24。通过上述同一网段的方法将请求包发到网关。 - 网关往往是一个路由器,是一个三层转发设备。三层设备是吧MAC头和IP头都取下来,然后根据里面的内容,看接下来把包往哪里转发的设备。
- MAC地址是一个在局域网内才有效的地址,因而,MAC地址只要过网关,就必定会改变。
- “下一跳”的IP地址,是将这个IP地址转换为MAC地址放入MAC头中。
小结:①如果离开局域网,就需要网关。
②路由器是一个三层设备,里面有如何寻找下一跳的规则。
③经过路由器之后MAC头要变,如果IP地址不变,相当于不换护照的“欧洲十国游”,如果IP地址改变(转换为公网地址),相当于换护照的“玄奘西行”。
2.5 路由协议
- 当一个包发送到路由器时,它会根据路由表来决定如何正确的转发流量。
- 距离矢量路由协议(Distance Vector Routing)有两个缺点,一个是无法传递坏消息,一个是每次发送都要发送整个路由表
- 链路状态路由协议(Link State Routing)只广播更新或改变的网络拓扑。
- OSPF(Open Shortest Path First,开放式最短路径优先)基于链路,在数据中心内部用于路由决策。
- BGP(Border Gateway Protocal,边界网关协议)使用路径矢量路由协议(Path-Vector Protocal,距离矢量路由协议的升级版),分为eBGP(external)和iBGP(internal)。自制系统(Aotonomous System,AS)之间使用eBGP广播路由信息,iBGP帮助内部路由器找到到达外网目的地的最便捷的边界路由器。
小结:①路由分为静态路由和动态路由,静态路由可以配置复杂的策略路由,控制转发策略。
②动态路由有两种主流协议,距离矢量路由协议和链路状态路由协议。分别对应BGP和OSPF这两个实现。