精华内容
下载资源
问答
  • 通过IP地址获取对方MAC地址的命令
    千次阅读
    2019-12-23 17:22:35

    转载自:https://blog.csdn.net/0210/article/details/4796938

    叙述

    要解决这个问题,首先我们应该知道,在底层的网络通信中,两个节点想要相互通信,必须先要知道源与目标的MAC地址。为了让系统能快速地找到一个远程节点的MAC地址,每一个本地的内核都保存有一个即时的查询表 (称为ARP缓存)。ARP中有影射远程主机的IP地址到其对应的MAC地址的一个列表。地址解析协议(ARP)缓存是一个常驻内存的数据结构,其中的内容是由本地系统的内核来管理和维护的。默认的情况下,ARP缓存中保留有最近十分钟本地系统与之通信的节点的IP地址(和对应的MAC地址)。


    解决方案

     好了,利用上述原理,我们只要执行如下两个命令就可以获取局域网内对方的MAC地址。

    ping 192.168.0.8    //ping对方的IP,使本机与之产生通信,从而缓存对方的MAC
    
    arp -a              //查看arp缓存的IP/MAC表

    更多相关内容
  • IP地址基础知识

    千次阅读 2021-06-20 19:16:23
    文章目录1.IP的基本概念2.IP协议头部格式3.IP报文分片与重组4.IP地址基础知识4.1IP地址的构成4.2IP地址的分类4.2.1早期分类4.2.2子网掩码和CIDR4.3私有IP地址4.4特殊IP地址4.5路由选择 1.IP的基本概念 HTTP解决的...

    1.IP的基本概念

    HTTP解决的问题:构建与解析请求和响应(对应的操作是read和write)

    tcp解决的问题:数据的可靠性,效率,什么时候发送,每次发送多少(具体办事还是得看下两层)

    IP解决的问题:端到端,将数据经过路由选择,发送到对方主机的过程由IP层负责(可能经过多个IP)
    数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路,就需要借助网络层。网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点之间的数据包传输
    在这里插入图片描述

    主机:配有IP地址,但是不进行路由控制的设备

    路由器:即配有IP地址,又能进行路由控制

    节点:主机和路由器的统称

    2.IP协议头部格式

    image-20210613154438690

    4位版本号: 指定IP协议的版本,对于IPV4来说,就是4(通常是4,ipv4和ipv6不兼容)

    4位首部长度: 表示IP协议的头部长度是多少个32bit(4字节),4位能表示的最大数为15,即首部长度最大为60字节(和TCP类似)

    8位服务类型: 前面三个比特位表示优先权,已经弃用了。后面4位TOS字段, 和1位保留字段(必须置为0).

    4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个为侧重点. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.

    8位协议: 标识传输层使用什么协议,在数据分用的时候,通过该字段决定将有效载荷交给谁(将数据交给响应的协议)

    16位总长度: 标识IP数据包的整体长度。

    将首部长度读上来,总长度 - 首部长度就是有效载荷长度(分离报头与有效载荷)

    16位标识: 表示当前UDP数据包分片是属于哪一个完整的UDP报文,同一个UDP数据包当中的所有分片具有相同的标识

    在这里插入图片描述

    3位标志:由3比特构成,表示包被分片的相关信息。每一位的具体含义请参考下表。

    在这里插入图片描述

    13位片偏移: 用来标识分片在原来数据之中的位置,用于接收方进行组装

    由13比特构成,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对应的值为0。由于FO域占13位,因此最多可以表示8192(=2 13 )个相对位置。单位为8字节,因此最大可表示原始数据8×8192=65536字节的位置 ->UDP最大长度就是2^16字节,因此可以表示UDP的每一个位置

    8位生存时间(Time To Live TTL): 数据在传输过程中,允许经过的路由器的个数(TTL也叫跳数)

    TCP只会存在于发送端和接收端,网络之中只能看到IP报文。

    每经过一个路由器,TTL–; 硬件也有BUG,可能导致循环路由,这样网络中就会存在大量的废弃的游离报文,TTL解决了这些游离报文问题(TTL为0,数据包被丢弃)

    16位首部校验和: 使用CRC进行检验,来鉴别头部是否损坏(数据的可靠性是由TCP保证的,所以IP只进行头部的鉴定,不会对数据进行鉴定)

    32位源/目的IP地址: 表示发送端和接收端,一般在网络之中是不会改变的
    路由查找的基本过程,是先找到目标网络,然后进行报文转发,再找到目标主机,应该根据目的IP进行路由(比如去故宫玩,首先先去北京)

    3.IP报文分片与重组

    在这里插入图片描述
    在这里插入图片描述
    注意事项:
    1.每个切片都带有一个ip的头部 -> 比如大小为3000字节的UDP数据包,需要分成三个片进行运输,这是因为有两个20字节的IP头部
    2.同一个分片的16位标识都相同
    3.在进行重组的时候,通过标志位是否是0,来表示是否重组完成了
    4.重组的时候判断数据是否丢失:将偏移量进行排序,然后通过ip报头读取当前的数据长度,当前的偏移量+数据长度 = 下一个数据包的起始位置,如果不是,则表示丢包发生了,一旦丢失一个分片,则整个数据包都被丢弃
    5.通过偏移量和最后的标志位判断是否进行了分片,如果这个数据包分片了,那么除了第一个其余的偏移量都不相同,第一个的最后的标志位肯定不为0

    4.IP地址基础知识

    4.1IP地址的构成

    IP地址由“网络标识(网络号、网段)” 和"主机标识(主机号、主机地址)"两部分组成

    192.168.128.10/24中的“/24”表示从第1位开始到多少位属于网络标识。在这个例子中,192.168.128之前的都是该IP的网络地址

    网络标识在数据链路的每个段配置不同的值。网络标识必须保证相互连接的每个段的地址不相重复。而相同段内相连的主机必须有相同的网络地址。IP地址的“主机标识”则不允许在同一个网段内重复出现
    在这里插入图片描述

    由此,可以通过设置网络地址和主机地址,在相互连接的整个网络中保证每台主机的IP地址都不会相互重叠

    IP包被转发到途中某个路由器时,正是利用目标IP地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机
    在这里插入图片描述

    4.2IP地址的分类

    4.2.1早期分类

    早期IP地址分为四个级别,分别为A类、B类、C类、D类(还有一个一直未使用的E类。) 。它根据IP地址中从第1位到第4位的比特位对其网络标识(标识一个子网络,代表了一堆的ip地址)和主机标识进行区分。
    在这里插入图片描述

    在分配IP地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可以全部为0或全部为1。
    因为全部为0,只有表示对应的网络地址或IP地址不可获知的情况下才使用。而全部为1的主机地址通常作为广播地址。

    因此,在分配过程中,应该去掉这两种情况。这也是为什么C类地址每个网段最多只能有254(2^8-2=254)个主机地址的原因。

    4.2.2子网掩码和CIDR

    CIDR是什么

    网络标识相同的计算机必须同属于同一个链路。例如,架构B类IP网络时,理论上一个链路内允许6万5千多台计算机连接。然而,在实际网络架构当中,一般不会有在同一个链路上连接6万5千多台计算机的情况。因此,这种网络结构实际上是不存在的

    上述这种直接使用A类或者B类地址的情况,会造成大量的IP被浪费,IP的总数量才2^32,因此,资源形式非常严峻(已经枯竭了),为此需要开发一种新的组合来减少这种浪费 -> 人们开始放弃IP地址的分类作为网络地址,采用用任意长度分割IP地址的网络标识和主机标识。这种方式叫做CIDR

    在这里插入图片描述

    子网掩码是什么:

    上面说到,CIDR采用任意长度分割IP地址的网络标识和主机标识,因此引入子网掩码来进行分割

    现在,一个IP地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比A类、B类、C类更小粒度的网络。这种方式实际上就是将原来A类、B类、C类等分类中的主机地址,部分用作子网地址,可以将原网络分为多个物理网络的一种机制 -> 由固定的网络标识长度,变成了根据新规则进行划分子网(一批网络标识相同的IP地址,就叫做子网)

    子网掩码也是一个32位的数字,它对应的IP地址网络标识部分全为1,对应的IP地址主机表示部分全为0

    自从引入子网掩码后,一个IP地址有了两种识别码,一种是IP地址本身,另外一种是表示网络部分的子网掩码

    因此有:主机号全0,表示的就是网络号,主机号全1,表示的就是广播号地址
    最大主机号=子网掩码的反码
    网络号=子网掩码 & ip地址

    以172.20.100.52的前26位是网络地址的情况为例,以下是其中一种表示方法,它将IP地址与子网掩码的地址分别用两行来表示
    在这里插入图片描述
    另一种表示方式如下所示。它在每个IP地址后面追加网络地址的位数(这种方式也叫“后缀”表示法。) 用“/”隔开。
    在这里插入图片描述
    不难看出,在第二种方式下记述网络地址时可以省略后面的“0”。例如172.20.0.0/16跟172.20/16其实是一个意思(网络标识部分全1,主机号部分全0)

    场景模拟:
    一个网络之中,当前的网络号为 127.16.99.0,子网掩码为255.255.255.0,现在需要将网络平均划分为4个子网,求每一个子网当中ip地址的范围,以及子网掩码
    在这里插入图片描述

    VLSM:
    CIDR被应用到互联网的初期,网络内部采用固定长度的子网掩码机制。也就是说,当子网掩码的长度被设置为/25以后,域内所有的子网掩码都得使用同样的长度。然而,有些部门可能有500台主机,另一些部门可能只有50台主机。如果全部采用统一标准,就难以架构一个高效的网络结构。为此人们提出组织内要使用可变长度的、高效的IP地址分配方式。

    于是产生了一种可以随机修改组织内各个部门的子网掩码长度的机制——VLSM(可变长子网掩码)

    4.3私有IP地址

    即是有了上述的CIDR技术,也只是提高了IP地址的利用率,无法改变IP地址缺少的现实,于是需要使用其他的办法,缓解IP地址资源紧张的办法,其中一种就是私有IP地址

    它不要求为每一台主机或路由器分配一个固定的IP地址,而是在必要的时候只为相应数量的设备分配唯一的IP地址。尤其对于那些没有连接互联网的独立网络中的主机,只要保证在这个网络内地址唯一,可以不用考虑互联网即可配置相应的IP地址

    在这里插入图片描述

    4.4特殊IP地址

    127.0.0.1 本地回环地址,用来测试网络协议栈

    0.0.0.0 一般用于服务端程序,用来表示服务器程序当中所有网卡的IP地址

    255.255.255.255:UDP的广播地址,全网广播,DHCP

    主机号全为0,表示子网,网络标识

    主机号全为1,表示子网,广播号

    4.5路由选择

    发送数据包时所使用的地址是网络层的地址,即IP地址。然而仅仅有IP地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表(Routing Table)。实现IP通信的主机和路由器都必须持有一张这样的表。它们也正是在这个表格的基础上才得以进行数据包发送的。
    在这里插入图片描述
    一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP)

    路由器LAN口连接的主机, 都从属于当前这个路由器的子网中

    不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间的IP地址就可以重复了

    每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级,最外层的运营商路由器, WAN口IP就是一个公网IP了

    子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地址转换,属于网络层的协议)
    在这里插入图片描述

    子网掩码
    网关
    子网

    展开全文
  • IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台...

    全球43亿个IPv4地址正式耗尽,我们即将向IPv6时代迈进。

    IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。

    IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。

    adb8d963730c40edf08204af9dd4c132.png

    IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。

    IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

    IP作为互联网的重要的桥梁,是为计算机网络相互连接进行通信而设计的协议,正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。很多人对IPv4与IPv6有什么区别?不是很了解,

    b42dce544ec0aaad38647015fbe754ca.png

    接下来详细为大家介绍IPv4与IPv6的区别是什么?IPV6的和优势是什么?

    IPV4和IPV6的区别:

    一、扩展了路由和寻址的能力

    IPv6把IP地址由32位增加到128位,从而能够支持更大的地址空间,估计在地球表面每平米有4*10^18个IPv6地址,使IP地址在可预见的将来不会用完。

    IPv6地址的编码采用类似于CIDR的分层分级结构,如同电话号码。简化了路由,加快了路由速度。

    在多点传播地址中增加了一个“范围”域,从而使多点传播不仅仅局限在子网内,可以横跨不同的子网,不同的局域网。

    二、报头格式的简化

    IPv 4报头格式中一些冗余的域或被丢弃或被列为扩展报头,从而降低了包处理和报头带宽的开销。虽然IPv6的地址是IPv4地址的4倍。但报头只有它的2倍大。

    三、对可选项更大的支持

    IPv6的可选项不放入报头,而是放在一个个独立的扩展头部。如果不指定路由器不会打开处理扩展头部.这大大改变了路由性能。IPv6放宽了对可选项长度的严格要求(IPv4的可选项总长最多为40字节),并可根据需要随时引入新选项。IPV6的很多新的特点就是由选项来提供的,如对IP层安全(IPSEC)的支持,对巨报(jumbogram)的支持以及对IP层漫游(Mobile-IP)的支持等。

    四、QoS的功能

    因特网不仅可以提供各种信息,缩短人们的距离.还可以进行网上娱乐。网上VOD现正被商家炒得热火朝天,而大多还只是准VOD的水平,且只能在局域网上实现,因特网上的VOD都很不理想.问题在于IPv4的报头虽然有服务类型的字段,实际上现在的路由器实现中都忽略了这一字段。在IPv6的头部,有两个相应的优先权和流标识字段,允许把数据报指定为某一信息流的组成部分,并可对这些数据报进行流量控制。如对于实时通信即使所有分组都丢失也要保持恒速,所以优先权最高,而一个新闻分组延迟几秒钟也没什么感觉,所以其优先权较低。IPv6指定这两字段是每一IPv6节点都必须实现的。

    五、身份验证和保密

    在IPv6中加入了关于身份验证、数据一致性和保密性的内容。

    六、安全机制IPSec是必选的

    IPv4的是可选的或者是需要付费支持的。

    七、加强了对移动设备的支持

    IPv6在设计之初有有着支持移动设备的思想,允许移动终端在切换接入点时保留相同的IP地址。

    八、支持无状态自动地址配置,简化了地址配置过程。无需DNS服务器也可完成地址的配置,路由广播地址前缀,各主机根据自己MAC地址和收到的地址前缀生成可聚合全球单播地址。这也方便了某一区域内的主机同时更换IP地址前缀。

    8be1b8cc3083f2da63bfc6820535619e.png

    IPv6的优势

    家里有路由器的都知道,一般输入“192.168.0.1”就会打开路由器的管理界面,这一串数字就是IP地址。

    只不过这是你家路由器和电脑、手机、电视机、平板电脑等任何一个可联网设备之间组成的局域网。

    全球IPv4地址耗尽,意思就是全球联网的设备越来越多,“这一串数字”不够用了。

    IP地址是分配给每个联网设备的一系列号码,每个IP地址都是独一无二的。

    由于IPv4中规定IP地址长度为32位,现在物联网的快速发展,使得目前IPv4地址已经告罄。

    f99c4b331789594d8bf45a0f25f51571.png

    截止到今年6月份,我国固网网民数是7.51亿,移动互联网用户7.24亿,但IPv4地址是3.3845亿个,我国平均每个固网网民人均IPv4地址只有0.45个。

    所以咱们家里的电脑和手机一般都是运营商分配的不固定IP地址,想要获得一个固定的IP其实成本很高的。

    以上就今天为大家介绍的全部内容。简单的说,IPv4和IPv6 都是IP地址的一种形式,IP地址相当于互联网设备的地址,我们知道对方的地址后,就可以找到他。

    举报/反馈

    展开全文
  • IP协议与MAC地址详解

    千次阅读 多人点赞 2022-02-18 20:59:33
    目录IP协议基本概念协议头格式网段划分IP地址的数量限制私有IP地址和公网IP地址路由NAT(Network Address Translation,网络地址转换). IP协议 基本概念 主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配...

    IP协议

    在这里插入图片描述

    基本概念

    主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称;

    协议头格式

    在这里插入图片描述

    1、4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4。

    2、4位首部长度(header length): 4个比特位能表示的最大数是15,每个单位是4个字节,即4位首部长度最大为 length * 4 的字节数.,也就是60字节,最小是最基本的20个字节。

    报头与有效载荷分离;先读取20个字节,拿到首部长度和16位总长度,16位总长度减去有4位首部长度就是有效载荷。

    3、8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0).
    4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.

    4、16位总长度(total length): IP数据报整体占多少个字节.

    5、16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的.

    6、3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话, 最后一个分片置为1, 其他是0. 类似于一个结束标记.

    7、13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报文的长度必须是8的整数倍(否则报文就不连续了).

    8、8位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数. 一般是64. 每次经过一个路由, TTL -= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环。

    9、8位协议: 表示上层协议的类型,例、有可能是TCP,有可能是UDP。

    10、16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏。

    11、32位源地址和32位目标地址: 表示发送端和接收端.

    12、选项字段(不定长, 最多40字节)

    网段划分

    IP地址分为两个部分, 网络号和主机号

    1、网络号: 保证相互连接的两个网段具有不同的标识;
    2、主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;
    在这里插入图片描述
    3、不同的子网其实就是把网络号相同的主机放到一起.

    4、如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复。

    通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同.

    那么问题来了, 手动管理子网内的IP, 是一个相当麻烦的事情.

    有一种技术叫做DHCP, 能够自动的给子网内新增主机节点分配IP地址, 避免了手动管理IP的不便。

    一般的路由器都带有DHCP功能. 因此路由器也可以看做一个DHCP服务器。

    过去曾经提出一种划分网络号和主机号的方案, 把所有IP 地址分为五类, 如下图所示
    在这里插入图片描述
    随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, 而A类却浪费了大量地址;

    例如, 申请了一个B类地址, 理论上一个子网内能允许6万5千多个主机. A类地址的子网内的主机数更多.

    然而实际网络架设中, 不会存在一个子网内有这么多的情况. 因此大量的IP地址都被浪费掉了.

    针对这种情况提出了新的划分方案, 称为CIDR(Classless Interdomain Routing):

    • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;
    • 子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;
    • 将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;
    • 网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;

    下面举2个例子:
    在这里插入图片描述

    可见,IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围;
    IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高24位是1,也就是255.255.255.0

    特殊的IP地址

    • 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网;
    • 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包;
    • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1;

    IP地址的数量限制

    我们知道, IP地址(IPv4)是一个4字节32位的正整数. 那么一共只有 2的32次方 个IP地址, 大概是43亿左右. 而TCP/IP协议规定, 每个主机都需要有一个IP地址。

    这意味着, 一共只有43亿台主机能接入网络么?
    实际上, 由于一些特殊的IP地址的存在, 数量远不足43亿; 另外IP地址并非是按照主机台数来配置的, 而是每一个网卡都需要配置一个或多个IP地址.

    CIDR在一定程度上缓解了IP地址不够用的问题(提高了利用率, 减少了浪费, 但是IP地址的绝对上限并没有增加), 仍然不是很够用. 这时候有三种方式来解决:

    • 动态分配IP地址: 只给接入网络的设备分配IP地址. 因此同一个MAC地址的设备, 每次接入互联网中, 得到的IP地址不一定是相同的;
    • NAT技术(后面会重点介绍);
    • IPv6: IPv6并不是IPv4的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6用16字节128位来表示一个IP地址; 但是目前IPv6还没有普及;

    私有IP地址和公网IP地址

    如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址:

    • 10.*,前8位是网络号,共16,777,216个地址;
    • 172.16.到172.31.,前12位是网络号,共1,048,576个地址;
    • 192.168.*,前16位是网络号,共65,536个地址;

    包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP);

    路由

    在复杂的网络结构中, 找出一条通往终点的路线;

    路由的过程, 就是这样一跳一跳(Hop by Hop) “问路” 的过程. 所谓 “一跳” 就是数据链路层中的一个区间. 具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间.

    在这里插入图片描述

    IP数据包的传输过程也和问路一样

    • 当IP数据包, 到达路由器时, 路由器会先查看目的IP;
    • 路由器决定这个数据包是能直接发送给目标主机, 还是需要发送给下一个路由器;
    • 依次反复, 一直到达目标IP地址;

    在这里插入图片描述

    • 路由表可以使用route命令查看
    • 如果目的IP命中了路由表, 就直接转发即可;
    • 路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

    假设某主机上的网络接口配置和路由表如下:
    在这里插入图片描述

    • 这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络接口连到192.168.56.0/24网络;
    • 路由表的 Destination 是目的网络地址, Genmask 是子网掩码, Gateway 是下一跳地址, Iface 是发送接口, Flags中 的 U 标志表示此条目有效(可以禁用某些 条目), G 标志表示此条目的下一跳地址是某个路由器的地址,没有 G 标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;

    转发过程例1: 如果要发送的数据包的目的地址是192.168.56.3

    • 跟第一行的子网掩码做与运算得 到192.168.56.0,与第一行的目的网络地址不符;
    • 再跟第二行的子网掩码做与运算得 到192.168.56.0,正是第二行的目的网络地址,因此从eth1接口发送出去;
    • 由于192.168.56.0/24正 是与eth1 接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转发;

    转发过程例2: 如果要发送的数据包的目的地址是202.10.1.2

    • 依次和路由表前几项进行对比, 发现都不匹配;
    • 按缺省路由条目, 从eth0接口发出去, 发往192.168.10.1路由器;
    • 由192.168.10.1路由器根据它的路由表决定下一跳地址;

    NAT(Network Address Translation,网络地址转换).

    IPv4协议中, IP地址数量不充足的问题;

    NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能;

    • NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法:
    • 很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP;
    • 全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;

    在这里插入图片描述

    • 一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).
    • 路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.
    • 不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间的IP地址就可以重复了.
    • 每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了.
    • 子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地址转换).

    两个主机如何跨网络通信呢?

    在这里插入图片描述

    NAT IP转换过程

    在这里插入图片描述

    • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
    • NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
    • 在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
    • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

    NAPT

    那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

    这时候NAPT来解决这个问题了. 使用IP+port来建立这个关联关系

    在这里插入图片描述

    这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项

    NAT技术的缺陷

    • 无法从NAT外部向内部服务器建立连接;
    • 装换表的生成和销毁都需要额外开销;
    • 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

    数据链路层

    认识以太网

    • “以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;
    • 例如以太网中的网线必须使用双绞线; 传输速率有10M, 100M, 1000M等;
    • 以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等;

    以太网帧格式

    在这里插入图片描述

    认识MAC地址

    • MAC地址用来识别数据链路层中相连的节点;
    • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19);
    • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

    对比理解MAC地址和IP地址

    • IP地址描述的是路途总体的 起点 和 终点;
    • MAC地址描述的是路途上的每一个区间的起点和终点;

    举例说明:唐僧西天取经:
    别人会问唐僧从哪来,要到哪里去。唐僧都会回答道,贫僧是从东土大唐而来,要到西方拜佛求经。

    这里的东土大唐就是:源IP
    西方雷音寺就是:目的IP

    有人问:和尚,你上一站从哪里来,下一站要到哪里去。唐僧回答:贫僧上一站从火焰山来,下一站要到女儿国去。

    火焰山和女儿国就是:MAC地址,MAC地址,在途中,是一直改变的。

    认识MTU

    MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制

    • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
    • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
    • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
    • 不同的数据链路层标准的MTU是不同的;

    注意:在网络中传播的数据都是MAC帧数据,而MAC帧最大只能一次传1500个字节,所以IP将报文给MAC帧时,每个报文不能大于1500,超过1500字节,IP要负责将其分片,分成多片传给MAC帧。当数据传到对端主机时,到 IP 层时,IP要负责组装,分片与组装,后面详谈。

    MTU对IP协议的影响

    由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包.

    • 将较大的IP包分成多个小包, 并给每个小包打上标签;
    • 每个小包IP协议头的 16位标识(id) 都是相同的;
    • 每个小包的IP协议头的3位标志字段中, 第2位置为0, 表示允许分片, 第3位来表示结束标记(当前是否是最后一个小包, 是的话置为1, 否则置为0);
    • 到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;
    • 一旦这些小包中任意一个小包丢失, 接收端的重组就会失败. 但是IP层不会负责重新传输数据;重传数据由TCP负责。
      在这里插入图片描述

    MTU对UDP协议的影响

    • 一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报。
    • 这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在网络层被分片, 整个数据被丢失的概率就大大增加了。

    MTU对于TCP协议的影响

    • TCP的一个数据报也不能无限大, 还是受制于MTU。TCP的单个数据报的最大消息长度, 称为MSS(Max Segment Size);
    • TCP在建立连接的过程中, 通信双方会进行MSS协商.
    • 最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU).
    • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值.
    • 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS.
    • MSS的值就是在TCP首部的40字节变长选项中(kind=2);

    在这里插入图片描述

    ARP协议

    虽然我们在这里介绍ARP协议, 但是需要强调, ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议;

    ARP数据报的格式

    在这里插入图片描述

    • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的
    • 硬件类型指链路层网络类型,1为以太网;
    • 协议类型指要转换的地址类型,0x0800为IP地址;
    • 硬件地址长度对于以太网地址为6字节;
    • 协议地址长度对于和IP地址为4字节;
    • op字段为1表示ARP请求,op字段为2表示ARP应答;

    ARP协议的作用

    ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.

    • 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址(MAC地址);
    • 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
    • 因此在通讯前必须获得目的主机的硬件地址;

    ARP协议的工作流程

    在这里插入图片描述

    ARP的原理:通过IP地址找到目标主机的MAC地址。

    ARP报头中含有目标主机的IP地址: 通过路由找到目标网络之后,但是不知道目标主机的MAC地址。因为数据在网络中传送都是以MAC帧形式的,所以双方都要知道对方的MAC地址才可以。此时ARP发一条广播出去,谁的IP地址是XXX,请主动联系我。局域网所有主机都会收到这条数据,将数据向上交付到网络层,对比自己的IP地址。如果相同,就回复自对方,将自己的MAC地址告诉对方,不同,就将数据丢弃。

    RARP原理:通过MAC地址找IP地址。

    展开全文
  • 1、IP地址 IP,internet protocol,互联网协议 (1)主机唯一的标识,保证主机间正常通信;(2)一种网络编码,用来确定网络中的一个节点; 1.1、MAC地址和IP地址的区别 mac地址:局域网使用,在数据链路层给...
  • 文章目录前言计算机之间连接方式---路由器连接MAC地址IP地址IP地址的分类 计算机之间连接方式—路由器连接 我们知道如果全世界都用交换机连接网络的话,会导致广播风暴,即,当在由交换机连接网络的时候,两台计算机...
  • IP地址和路由

    千次阅读 多人点赞 2019-08-18 16:47:10
    IP地址和路由 IPv4地址 IP地址 IP地址是逻辑上的地址,可人为分配,具有可管理性 IP地址可唯一标识 IP 网络中的每台设备 每台主机(计算机、网络设备、外围设备)必须具有唯一的地址 IP地址由两部分组成 ①...
  • 局域网内通过IP获取对方MAC地址

    千次阅读 2020-10-21 09:36:11
    在底层的网络通信中,两个节点想要相互通信,必须先要知道源与目标的MAC地址。...默认的情况下,ARP缓存中保留有最近十分钟本地系统与之通信的节点的IP地址(和对应的MAC地址)。 ping 1.1.1.1 //通过pin...
  • 网络协议02 - Mac地址和IP地址

    千次阅读 2022-04-17 16:21:35
    MAC地址 介绍 每一个网卡都要一个6字节的MAC地址(Media Access Control Address),该地址全球唯一,固化在网卡的ROM中,由IEEE802标准规定 前3个字节:组织唯一标识符,由IEEE的注册管理结构分配给厂商 后3个...
  • 22张图带你了解IP地址有什么作用

    千次阅读 2021-12-06 09:29:47
    上一篇了解了IP协议的各个字段的作用,以及提到了特别重要IP地址,在网络世界中作为通信识别的唯一寻址信息,让两台终端通信知道如何去跟回,其实网络世界更像我们现实世界的缩影,很多能在现实中找到相似的影子,...
  • IP地址相当于电话号码的概念,想要与对方通讯必须要知道对方的电话号码才行 在网际网路中,相应主机之间是透过IP地址进行沟通,也就是说使用TCP/IP网路互相沟通的主机一定要配置IP地址,因此IP地址可以说是网路传输...
  • 1.0 ip地址的分类 1.1 A类: 1.2 B类: 1.3 C类: 1.4 私有地址: 2.0 子网掩码: 2.1 A,B,C三类地址的默认子网掩码: 2.2 A --》ping B 2.2.1 .判断B的地址是否和A是相同网段 2.2.2 .如果 B的地址和A...
  • 如何判断某一个IP地址是否被占用

    万次阅读 2019-01-30 23:06:46
    在一个局域网中,我们的IP地址要求唯一性,如果设置的IP地址已经被利用,虚拟机就无法创建成功或者出现其他无法预料的事情。 那么我们应该用什么办法来判断某个IP地址是否已经被占用呢?我们我知道的有两个方法: ...
  • ip地址详解(深入网络层分析)

    千次阅读 2021-01-17 17:11:30
    IP数据报服务 思路 可靠的的通信由网络来保证 可靠的通信由用户主机来保证 连接的建立 必须 不需要 终点的地址 仅在连接建立的时候使用,每个分组使用短的虚电路信号 每个分组都有终点的完整地址 分组的...
  • IP地址(例:192.168.1.0) 子网掩码(例:255.255.255.0) 网关 DHCP服务的好处: 减少管理员的工作量 避免输入错误的可能 避免IP冲突 提高了IP地址的利用率 方便客户端的配置 DHCP服务的分配方式: 自动分配:...
  • IP地址,开放端口,http与https的区别

    千次阅读 2021-10-28 20:18:54
    文章目录一、IP地址的概述二、IP地址分类1、**共有地址**2、 **私有地址**三、IPV4和V6四、子网掩码、网关、DNS1、 子网掩码2、网关3、DNS服务器五、获取目标IP地址的方法1、 通过ping命令:2、 通过NSLOOKUP命令:1...
  • IP地址有什么用?

    千次阅读 多人点赞 2019-11-13 08:38:28
    本文关键字:IP、IP地址、公网IP、私网IP。IP其实是网际互连协议的缩写,但是我们通常会省略IP地址后面的地址两个字,直接用IP来代表计算机在网络上的一个标识,其实这是不严谨的。IP是整个互联网工作的核心,我们所...
  • 什么是IP地址

    千次阅读 2016-10-10 13:00:08
    在网络中,类似的地址标识便是IP地址,也是由网络层的IP协议所决定的。  以太网内的寻址  (注:互联网是Internet的意译,因特网是Internet的音译,两者是等同的,是一个全世界范围的广域网。以太网...
  • IP协议的地址划分和路由选择

    千次阅读 2022-02-18 14:03:07
    Author:老九 计算机专业 可控之事 沉重冷静 不可控之事 乐观面对 85180586@qq.com ???? ???? ???? ???? ???? ???? ???? ???? ???? ☺️ ???? ???? ???? ???? ????...文章目录IP协议简介主要功能IP
  • 实战:使用DHCP为局域网中的机器分配IP地址 首先为了避免和当前网络环境中DHCP冲突,我们使用虚拟机自定义的网络模式: 使用VMnet2即可 安装DHCP 1.使用yum进行安装。 [root@xuegod63 ~]# yum -y install dhcp #...
  • 三、IP和IP地址区别和联系

    千次阅读 2018-10-26 10:39:31
    IP(internet protocol) 网际协议 和IP地址 有人会把“IP”和“IP 地址”搞混,“IP”其实是一种协议的名称。 IP 协议的作用是把各种数据包传送给对方。而要保证确实传送到对方 那里,则需要满足各类条件。其中两个...
  • 介绍IP地址、子网掩码和默认网关

    千次阅读 2020-04-28 10:59:26
    一、ip地址 ip地址:指的是互联网协议地址(Internet Protocol Address),它为互联网上的每一个网络和每一台主机分配一个逻辑地址。通过ip地址可以访问到每一台主机。 ip地址由4个字节byte(一个字节8位bit),...
  • 第三天:MAC地址-IP地址-子网掩码

    千次阅读 2021-11-21 22:26:22
    第三天:MAC地址-IP地址-子网掩码 路由器 可以在不同网段之间转发数据 可以隔绝广播域 主机在发送数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段 在同一个网段:ARP、通过交换机\集线器传递数据 不在...
  • 取得对方IP地址如XX.XX.XX.XX,方法太多不细讲了。 2.判断对方上网的地点,开个DOS窗口键入 TRACERT XX.XX.XX.XX 第4和第5行反映的信息既是对方的上网地点。 3.得到对方电脑的名称,开个DOS窗口键入 N...
  • IP地址最简单的解释

    千次阅读 2014-09-07 14:52:59
    彻底明白IP地址 - 完整版(含CIDR讲解) 不管是学习网络还是上网,IP地址都是出现频率非常高的词。Windows系统中设置IP地址的界面如图1所示,图中出现了IP地址、子网掩码、默认网关和DNS服务器这几个需要设置的地方...
  • 如何通过子网掩码划分网段 资料一: 一、缺省A、B、C类地址,子网掩码;...IP地址192.20.15.511000000000101000000111100000101 子网掩码255.255.0.011111111111111110000000000000000 网络ID192.20.0.0110000...
  • 在学习掌握了前面的《进制计数》《IP地址详解》这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容,才能很好的理解和划分子网。 IP地址和子网划分学习笔记相关篇章: 1、IP...
  • IP地址 IP地址是每台计算机在网络中的唯一标识。采用“点分十进制”的方式来记忆IP地址。 举例:192.168.32.80 注意: 计算机在网络中的唯一标识肯定不是这个样子的。 所以,我们要把这个十进制的数据转换为二...
  • 一、子网掩码 IP地址是以网络号和主机号来标识网络上的主机的,我们把网络号相同的主机称之为本地...①、子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。 ②、只有通过子网掩码...
  • 分析过程 这个来自一些项目中,获取用户... 一般朋友,都会看到如下通用获取IP地址方法。function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } el

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,073
精华内容 14,429
关键字:

对方的ip地址是保留地址