一,ARP协议

使用ARP协议可以查出擅自更改IP地址主机的MAC地址。在学习ARP协议前需要了解广播和广播域的相关概念。

1.1 广播与广播域

在超市找人时,如果不知道对方的位置就需要到服务台通过广播进行找人,当知道对方的位置时就可以直接到对方所在位置。在网络中也存在这种情况。如果不知道对方的地址就需要进行广播。即发送广播帧;而知道对方的地址就发送单播到对方处。所以,广播通信是“一对所有”的通信形式。而单播通信是“一对一”的通信形式。所有听到找人广播的范围就是广播域。广播和广播域的具体定义如下:

  • [x] 广播:将广播地址作为目的地址的数据帧
  • [x] 广播域:网络中能接收到同一个广播的所有节点的集合

1.1.1 MAC地址广播

MAC地址的广播地址:FF-FF-FF-FF-FF-FF
MAC地址的广播域是所有相连接的交换机或集线器的集合。如果一台主机发送一个MAC地址广播。则这个广播将转发到所有相连的交换机或集线器的所有端口。收到广播帧的主机会比较数据帧包中的目的IP地址是否为自身IP地址。如果是,则继续处理数据包中的承载数据;如果不是,则丢弃数据。
交换机转发MAC地址广播,而路由器会阻挡MAC地址广播。

1.1.2 IP广播

iP网段的最后一个地址为广播地址,即主机部分全部为1.在数据帧中,目的MAC地址是FF-FF-FF-FF-FF-FF,目的IP地址是IP网段的广播地址。

1.2 解析MAC地址的过程

(1)查找ARP缓存表

(2)发送ARP广播

(3)ARP应答

(4)添加ARP缓存记录

二, 路由原理

路由器工作在OSI参考模型的网络层,它的重要作用是为数据包选择最佳路径,最终送达目的地。那么路由器是怎样选择路径的呢?

  • [x] 在只有一个网段的网络中,数据包可以很容易地从源主机到达目的主机。但是如果一台计算机要和非本网段的计算机进行通信,数据包可能就要经过很多路由器。主机A和主机B所在的网段被许多路由器隔开,这时主机A和主机B的通信就要经过这些中间路由器,这就要面临一个很重要的问题--如何选择到达目的地的路径。

  • [x] 数据包从A到达B有很多条路径可供选择,但是很显然,这些路径中在某一时刻总会有一条路径是最好(最快)的。因此,为了尽可能地提高网络访问速度,就需要有一种方法来判断从源主机到达目标主机所经过的最佳路径,从而进行数据转发,这就是路由技术。

2.1 路由器的工作原理

  1. 对于普通用户来说,通过在PC上设置默认网关就可以使局域网的计算机与Internet进行通信。其实在PC上所设置的默认网关就是路由器以太口的IP地址。
  2. 如果局域网的计算机要和外面的计算机进行通信,只要把请求提交给路由器的以太口即可,接下来的工作就由路由器来完成。
  3. 因此可以说路由器就是互联网的中转站,网络中的数据包就是通过一个一个的路由器转发到目的网络的。
  4. 那么路由器是如何进行数据包的转发的呢?就像一个人如果要去某个地方,他的脑海里一定要有一张地图一样,在每个路由器的内部也有一张地图,这张地图就是路由表。
  5. 在这个路由表中,包含该路由器掌握的所有目的网络地址,以及通过此路由器到达这些网络的最佳路径
  6. 正是由于路由表的存在,路由器才可以高效地进行数据包的转发。

###2.2 静态路由

###2.3 默认路由

###2.4 路由器转发数据包的封装过程

三,学云计算必会的网络数据传输原理

3.1 同网段下(同广播域),两台主机通信过程

我们知道两主机要通信传送数据时,就要把应用数据封装成IP包(因为我们的网络大多都是TCP/IP的以太网),然后再交给下一层数据链路层继续·封装成帧;之后根据MAC地址才能把数据从一台主机,准确无误的传送到另一台主机。

当NO要和N1通信时,

1)假如NO知道N1的IP但却不知道它的MAC地址,那NO就会发送一个ARP的广播请求(里面源IP是NO目标IP是N1源MAC是N0目标MAC是12个F)给同一广播域中的所有成员。

2)当交换机SW0从自己的1接口上收到这个广播包,然后它会读取这个帧的源MAC地址和目标MAC地址,由于交换机SW0刚启动加电时,它的MAC表为空的。所以它会把NO的MAC地址与之相对应的接口1放到一张表里,这张表就是MAC地址表。

3)然后SW0再从别的接口广播这个数据帧,当别的主机收到这个广播时,查看目标IP不是自己的,就会丢弃此包。如果N1接收到这个数据帧,它检查目标IP和这个的IP是一样的,就会回应这个ARP请求,把自己的IP和MAC封装成源IP和源MAC,N0的IP和N0的MAC地址为目标IP与目标MAC,并记录N0的MAC与IP,放进自己的ARP缓存表中。

4)此时,这个应答包经过交换机SWO时,它又会检查源MAC,目标MAC,把N1的MAC和自己接口2放进MAC地址表中,再查看自己的MAC地址表,发现存在目标MAC与自己的1接口对应(由于刚开始有记录过N0的MAC),那它就会直接把这个应答包从接口1送出去了。

5)主机N0收到这个包后发现目标MAC是自己,就会处理这个包。并把N1的MAC与IP放进自己的ARP缓存表中。这时主机N0就知道N1的MAC地址了,
6)后续的发送数据任务,就会直接把N1的IP与MAC封装进帧中进行点对点的发送了。

3.2 跨路由(不同网段)数据传输过程

当N0要和N2通信时

1)N0会先检查N2的IP地址和自己是否处于同一网段,由于N2和自己处在不同网段,因此,N0会把数据包给它的网管,也就是R0上的F0/0接口了。

2)当这个数据包到达R0时,路由器R0会查看目标IP是否是自己的,由于目标不是自己,所以会查看自己的路由表,找出到达N2网段的路由;(如果找不到就会丢弃数据包)

3)当R0查看路由表发现到达N2网段的出接口是F0/1.于是,把数据包转到F0/1接口上,再由接口F0/1传给R1.这个过程,数据包的源IP是N0源MAC是F0/1目标IP是N2目标MAC是R1的F0/1接口IP

4)当R1收到这个数据包后,同样也要检查包的目标IP是否自己,它会主动查找自己的路由表,发现目标IP跟自己F0/0接口处在同一网段,于是就把包传到F0/0接口上去发给N2。)

Linux运维基础入门(三):网络基础知识梳理03的更多相关文章

  1. 面试 Linux 运维工作至少需要知道哪些知识?

    前言 我们已经发过不少 Linux 面试题,但是单独的面试题总感觉会过于零碎,没有体系化内容给人的帮助大. 知乎上有这样一个问题:一个新手面试 Linux 运维工作至少需要知道哪些知识?其中有一个答案 ...

  2. Linux运维工程师必须掌握的基础技能有哪些?

    这个问题挺好的,回答这个问题也是对自身的审查,看看自己还欠缺哪些.(所以我估计得好好思考下,也许下一刻我就会突然惊醒,发现我还是战⑤渣) 首先限定在Linux运维工程师上 回答仅代表我想到,不代表我都 ...

  3. Linux运维工程师入门的10大实用工具

    说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...

  4. Linux运维工程师入门须掌握的10个技术点

    本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...

  5. Linux运维工作中需要掌握的知识

    说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了.linux系统如果是学习可以选用redhat或centos,特别是cent ...

  6. Linux运维人员-服务器组成硬件基础

    第1章 1.1关于运维人员 1.1.1 运维的职责 数据不能丢 网站7*24小时运行 保证用户体验(用户体验要好) 1.1.2 运维原则 简单.易用.高效  === 简单.粗暴 1.2 服务器 1.2 ...

  7. Linux运维技术之NFS网络文件系统

    NFS:网络文件系统,只能工作在Unix/linux之间,不能与windows之间交互. NFS文件系系统只能基于ip来认证! RPC:远程过程调用,简化分布式应用程序的开发, 对Linux系统而言, ...

  8. Linux运维的第三周总结

    01. 下列文件中, 包含了主机名到IP地址的映射关系的文件是()       A. /etc/HOSTNAME    B. /etc/hosts    C. /etc/resolv.conf    ...

  9. 【Linux 运维】Centos7初始化网络配置

    设置网络 (1)动态获取一个IP地址 #dhclient        系统自动自动获取一个IP地址#ip addr         查看获取的ip地址(2)查看网关,子网掩码 虚拟机编辑>虚拟 ...

  10. Linux 运维测试及第三应用及测试工具

    一 .第三方应用及测试工具链接地址 https://pan.baidu.com/s/1rLQ5NCZvxcy93YQ4fGFaBQ 1.linux LSI系列raid卡监测工具 1)使用参数详解链接: ...

随机推荐

  1. 异常处理过程和异常处理的执行顺序(针对try{}catch{}finally{}而言)

    1.异常的处理方式有两种分别为:try{}catch{}finally{}和throws下面简单说一下这两者的区别和联系. 2.出现异常之后如果没有进行捕获处理系统就会直接将这个异常栈的跟踪信息直接打 ...

  2. LeetCode My Calendar I

    原题链接在这里:https://leetcode.com/problems/my-calendar-i/description/ 题目: Implement a MyCalendar class to ...

  3. Sprint第一个冲刺(第七天)

       今天休息. 燃尽图:

  4. 【转载】最短路径—Dijkstra算法和Floyd算法

    注意:以下代码 只是描述思路,没有测试过!! Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始 ...

  5. SublimeText3搭建go语言开发环境(windows)

    SublimeText3搭建go语言开发环境(windows) 下载并解压:     Sublime Text Build 3021.zip注册:     尽量不要去破解    安装Package C ...

  6. C语言的补码表示和unsigned及signed的转换

    这东西实际编程时一直无视的,范围小了就换个大点的表示形式,但是总觉得基础知识还是掌握得好,免得到时候用移位运算或类型转换或笔试题时要花时间想. C语言的基本类型有char.int.float.doub ...

  7. php-PSR

    <?php/** * 符合psr-1,2的编程实例 */ namespace Standard; // 顶部命名空间// 空一行use Test\TestClass;//use引入类 /** * ...

  8. DP 过河卒

    棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. 棋盘用坐标 ...

  9. idea 注册码 地址:

    http://idea.lanyus.com IntelliJ IDEA 注册码 *.lanyus.com及*.qinxi1992.cn下的全部授权服务器已遭JetBrains封杀 请搭建自己的Int ...

  10. pagination实现分页功能

    pagination.js: /** * pagination分页插件 */ ;(function($,window,document,undefined){ //配置参数 var defaults ...