热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IP协议的地址划分和路由选择

Author:老九计算机专业可控之事沉重冷静不可控之事乐观面对85180586qq.com😄😆😵😭😰

Author:老九
计算机专业
可控之事 沉重冷静 不可控之事 乐观面对
85180586@qq.com
😄 😆 😵 😭 😰 😅 😢 😤 😍 ☺️ 😎 😩


👍 👎 💯 👏 🔔 🎁 ❓ 💣 ❤️ ☕️ 🌀 🙇 💋 🙏 💦 💩 ❗️ 💢
————————————————
版权声明:本文为CSDN博主「浦上青天」的原创文章


文章目录

  • IP协议简介
  • 主要功能
    • IP分组规则
    • IP转发规则
  • IP协议格式(初步了解即可)
    • 4位版本号
    • 4位首部长度
    • 8位服务类型
    • 16位总长度
    • 16位标识
    • 3位标志字段
    • 13位片偏移
    • 8位生存时间
    • 8位协议
    • 16位头部校验和
    • 32位源地址和32位目标地址
    • 选项字段
  • 地址管理(网段划分)
    • IP地址的数量限制
      • NAT技术
      • NAPT
  • 私有IP地址和公网IP地址
  • 路由选择(了解)




知识点


IP协议简介


  • IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),对上可载送传输层各种协议的信息,例如TCP,UDP等;对下可将IP信息包放到链路层,通过以太网,使用各种技术来传送

主要功能


IP分组规则


一个IP包从源主机传输到目标主机可能需要经过多个不同的网络。由于各种网络的数据帧都有一个最大传输单元(MTU)的限制,如以太网帧的MTU是1500;因此,当路由器在转发IP数据包时,如果数据包的大小超过了出口链路的最大传输单元时,则会将该IP分组分解成很多个足够小的片段,以便能够在目标链路上进行传输。这些IP分片重新封装一个IP包独立传输,并在到达目标主机时才会被重新组起来。所以网络层的IP可以自动分包组包,而传输层的UDP就不行



IP转发规则


路由器仅根据网络地址进行转发。当IP数据包经过由路由器转发的时候,如果目标网络与本地路由器直接相连,则直接将数据包交付给目标主机,这称为直接交付。否则,路由器通过路由表查找路由信息,并将数据包转交给指明的下一个路由器,这称为间接交付。路由器在间接交付中,若路由表中由到达目标网络的路由,则把数据包传送给路由表指明的下一个路由器。如果没有路由,但路由表中有一个默认的路由,则把数据报传送给指明的默认路由器;如果两者都没有,则丢弃数据包并报告错误。



IP协议格式(初步了解即可)

在这里插入图片描述


4位版本号

指定IP协议的版本,对于IPv4来说,就是4,对于IPv
6来说,就是6


4位首部长度

4bit相当于0-15,IP头部最大长度为60字节,根据可选字段来变化


8位服务类型

3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置位0),4位TOS分别表示 最小延时,最大吞吐量,最高可靠性,最小成本,这四者相互冲突,只能选择一个服务类型


16位总长度

IP数据包整体占多少个字节
例如TCP数据包的长度,在TCP协议头本身中没有,要搭配IP协议来确定,IP的总长度-IP报头 = TCP包长度
再减去TCP报头就是应用层数据长度


16位标识

唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的(用来区分那些个小包属于同一个大包)


3位标志字段

第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用)第二位是1表示禁止分片;这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示“更多分片“,如果分片了的话,最后一个分片置为1,其他是0,类似于链表中的尾节点null


13位片偏移

是分片相对于原始IP报文开始处的偏移,其实就是在表示当前分片在原报文中处于在哪个位置,实际偏移的字节数就是这个值*8而得。因此,除了最后一个报文之外,其他报文得长度必须是8得整数倍


8位生存时间

数据报到达目的地得最大报文跳数,一般是64,每次经过一个路由,TTL-1,一直减到0还没有到达,那么就丢弃了,这个字段只要是用来防止出现路由循环问题


8位协议

表示上层得协议类型


16位头部校验和

使用CRC进行校验,来鉴别头部是否损坏


32位源地址和32位目标地址

表示发送端和接收端
4个字节
32位比特
点分十进制,8个为一组,2的八次方,0-255


选项字段

不定长,最多40字节


地址管理(网段划分)


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

网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
在这里插入图片描述
不同的子网其实就是把网络号相同的主机放在一起
如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中的其他主机重复



  • 通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同
  • 有一种技术叫做DHCP,能够自动的给子网内新增主机结点分配IP地址,避免了手动管理IP的不便,一般的路由器都带有DHCP功能,因此路由器也可以看作一个DHCP服务器
  • 在实际的网络架设中,引入了子网掩码来区分网络号和主机号

子网掩码是一个32位的正整数,通常用一串0来结尾
在这里插入图片描述
网关就是路由地址
将IP地址和子网掩码进行”按位与“(一假则假)操作,得到的结果就是网络号
网络号和主机号的划分与这个IP地址是A类,B类,C类无关



比如这个IP地址是192.168.10.2,子网掩码是28(28就是前面28个1),所以得到的网络号就是192.168.10.0
在这里插入图片描述



  • 通过子网掩码也可以判断出主机的数目
  • 用255减去此时子网掩码的最后一个数字,得到的就是总数目,但是要再减去一个广播地址,才是主机数目
  • 在这里插入图片描述
    在这里插入图片描述
    #子网地址范围
    在这里插入图片描述
  • 特殊的IP地址

将IP地址中的主机地址全部设成0,就成为了网络号,代表这个局域网
将IP地址中的主机地址全部设位1,就成为了广播地址,用于给同一个局域网中的所有主机发送数据包
127.0.0.1是本机的环回地址



IP地址的数量限制


我们知道,IP地址是一个4字节32位的正整数,那么一共只有2的32次方个IP地址,大概是43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址
这意味着,一共只有43亿台主机能接入网络吗?
实际上,由于一些特殊的IP地址的存在,数量远数量远远超过43亿。另外IP地址并非是按照主机台数来配置的,而是每一个网卡都需要配置一个或多个IP地址
CIDR在一定程度上缓解了IP地址不够用的问题,但仍然不是很够用,这时候有三种方式来解决



  1. 动态分配IP地址:只给接入网络的设备分配IP地址,因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的
  2. NAT技术,本质上用一个广域网的一组ip,代表一组局域网的设备
  3. IPv6.IPv6和IPv4是两个互不兼容的协议,IPv6使用16字节128位来表示一个IP地址,但目前还没有普及

NAT技术


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

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



  • NAT IP转换过程
    在这里插入图片描述

NAPT


  • 那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的,那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?这时候NAPT来解决这个问题。使用IP+port(端口号)来建立这个关联关系
    在这里插入图片描述
    这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项
  • NAT技术缺陷

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



  • NAT和代理服务器
    路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。代理服务器看起来和NAT设备有点像,客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器,服务器返回结果后,代理服务器又把结果回传给客户端

代理服务器是一种应用比较广的技术
翻墙:广域网中的代理
负载均衡:局域网中的代理



私有IP地址和公网IP地址

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


10.前8位是网络号
172.16-172.31.前12位是网络号
192.168.前16位是网络号
这些都是私有IP,其余的则称为全局IP
在这里插入图片描述
一个路由器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP
路由器LAN口连接的主机,都从属于当前这个路由器的子网中
不同的路由器,子网的IP可以一样,但同一子网内的IP不可以重复(xxx.1这种一般叫网关,就是当前局域网的路由器)
每一个家用路由器,其实又作为运营商路由器的子网中的一个节点
子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址替换成WAN口的IP,这样逐级替换,最终数据包中的IP地址成为一个公网IP,这种技术成为NAT



路由选择(了解)


  • 在复杂的网络结构中,找出一条通往终点的路线
    1.我的电脑发送一个IP数据包,目的IP是55.66.77.88
    2.这个包从我的电脑出发,看看我的电脑认不认识这个目的IP
    3.如果认识就直接发送过去(一般都是些相同局域网内的设备认识)
    4.如果不认识,就把数据再交给光猫
    5.如果光猫不认识就再交给运营商的路由器
    6.就这样如果不认识就一直向上传递,但是我们的IP报文里有一个生存时间默认64,如果超过64次传递还没有找到就宣告失败了(只要对方正常,64足够)

  • 访问百度的服务器
    在这里插入图片描述

  • 此处TTL为56,说明传递了64-58=8次

  • 那么每一个路由器如何判断自己认不认识
    通过路由表来判断


目的IP 和子网掩码做按位与运算,找到其网络号,然后在路由表中查找是否匹配
如果找到匹配项,就从对应的路由端口中继续转发
如果没有找到,就从默认的“下一跳”表项继续转发
如果对方正常,转发到一定程度,总会由路由器认识这个IP,也就发送完成了



  • 路由表可以由网络管理员手动维护(静态路由),也可以通过一些算法自动生成(动态路由),例如距离向量算法,LS算法等

先赞后看,养成习惯!!!^ _ ^♥♥♥
每天都更新知识点哦!!!
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!


推荐阅读
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • Shodan简单用法Shodan简介Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“ ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
author-avatar
博客小辈_824
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有