当前位置: 首页 > news >正文

IP协议的介绍

    网络层的主要功能是在复杂的网络环境中确定一个合适的路径.网络层的协议主要是IP协议.IP协议头格式如下:

1.4位版本号:指定IP协议的版本,常用的是IPV4,对于IPV4来说,这里的值就是4.

2.4位头部长度,单位也是4个字节,4bit表示的最大数字是15,因此IP头部的最大长度就是60字节

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

4.总长度:可以看到表示用16位来表示IP数据报的总长度,说明一个IP数据报的最大位64KB.

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

6.3位标志位:,第一个位保留(目前不用),第二位为1标识禁止分片,这时候如果报文长度超过了MTU,IP模块就会丢弃报文.第三位表示"更多分片",如果进行了分片,如果分片了的话,最后一个分片置为1,其余置为0,类似于一个结束标志.

7.13位分片偏移:是分片相对于原始IP报文开始处的偏移,其实就是在表示当前分片在原始报文中处于那个位置.实际偏移的字节数是这个值*8得到的.因此,除了最后一个报文,其余报文的长度就是8的整数倍.

8.8位生存时间:数据报到达目的地的最大报文跳数,每一经过一个路由都会减一,一直递减到0,还没到达的话就会丢弃.主要是为了防止出现路由循环.

9.8位协议:表示上层协议的类型.

10.16位首部校验和:使用CRC进行校验,来鉴别头部是否损坏.

11.32位源地址和32位目的地址:表示发送端和接收端.

地址管理

1.动态分配

对正在运行的主机分配IP地址.主机处于停止运行状态就不会分配IP地址.

2.NAT网络地址转换

IP地址有内网IP和外网IP

内网IP有下面几种: 10.*     172.16.*-172.31.*        192.168.*

其中,内网IP在不同的局域网中是可以重复的,外网IP是不能重复的.

NAT机制下的几个情况:

1.同一个局域网中,内网IP访问内网IP,是可行的.

2.不同局域网中,内网IP访问内网IP,不可行.

3.外网IP访问外网IP,可行.

4. 外网IP直接访问内网IP.不可行.

5.内网IP访问访问外网IP,可行.     

这是内网IP访问外网IP的简单图示:假定我的电脑要访问某视频网站观看视频.源IP设置为192.168.100.188    源端口设置为2233      目的IP设置为   30.11.11.11   目的端口设置为 4455

   可以看到运营商路由器会对源IP地址进行转换,转换成运营商路由器的公网IP后进行转发.视频网站的服务器在接收到数据之后,会返回数据,其中的目的IP就是运营商路由器的IP,运营商路由器在接收到数据之后,根据记录的转发表更换目的IP和目的端口,把数据转发到我的电脑.这就是NAT机制的基本原理,即内网IP访问外网IP时,会先访问一个外网的路由器,路由器会重新设置源IP和源端口,并且记录下旧的源IP,源端口和新的源IP,源端口的对应关系.在接收到返回的数据之后,根据记录的对应关系,把数据返回到对应的主机.即允许多个内部主机使用同一个公网IP和不同的端口号访问外部网络.通过生成转换表,使多个客户端可以同时与服务器进行通信.当前的网络世界就是通过动态分配和NAT机制来解决IP不够用的问题的.但是这两种方法,还是没有从根本上解决问题,一个外网NAT设备上最多有6万个表项,极端情况下还是会出现不够用的情况.于是就有了IPV6这个版本.

IPV6通过使用更多的字节来表示IP地址,来解决IP地址不够用的问题.IPV6使用128位地址长度,能够提供2^128个地址,数量极其庞大,可以充分满足目前的需求.

   IP地址的基本规则

1.网段划分,同一个局域网中的主机按照一定的规则来分配IP地址,如何来表示不同的主机呢?通常把IP地址分成两部分:网络号+主机号.网络号用来标识局域网,主机号用来区分局域网中的不同主机.不同局域网中的主机的主机号可以相同,同一个局域网中的主机号不能相同.局域网和局域网之间,网络号可以相同.但是两个相邻的局域网,网络号不能相同,一旦相邻的局域网网络号相同,局域网内的主机就无法上网.同一个路由器的wan口和lankou就处于不同的局域网.既然IP地址由网络号和主机号构成,那么如何区分哪些是网络号那些是主机号呢?这里就引入了子网掩码,子网掩码是32位的二进制,左半部分全是1,右半部分全是0.与IP地址的每一位相互对应,1表示该位表示网络号,0表示该位表示主机号.  特殊的IP地址:1.主机号全是0:这样的IP地址表示的网段,不应该分配给具体的主机,即使设置给主机,主机也无法上网. 2.主机号全是0:这样的IP表示广播IP,向广播IP上发送数据,此时,就会发送给局域网中的所有设备. 3.127.* :环回IP,127.0.0.1 向这个IP发送数据,就是自己来接收.

2.路由选择

1.主机发送数据包到目的主机:当主机发送数据包时,会首先检查目的主机的IP地址,查看是否和自己在同一个内网,如果在,则主机直接将数据包发送到目的主机的MAC地址.如果发现目的主机和自己不在同一个内网,主机将数据包发送给路由器.

2.路由器转发数据包:路由器收到主机发来的数据包之后,检查数据包的目的IP地址,查看路由表,按照最长前缀匹配原则进行匹配.路由器会查找路由表中与目的IP地址匹配的最长前缀.如果找到匹配的路由条目,路由器将数据包发送到对应的下一跳地址或出接口.如果没有找到匹配的路由条目,路由器会根据默认路由进行转发,即一个指向外部网络的网关.数据包一般会经过多个路由器的转发,才会到达目的主机,每个路由器都会重复上述的查找和转发过程.直到数据包最终到达目标网络.每次转发时,数据包的IP头部信息保持不变,MAC地址会随着每`跳转发而改变.
 

相关文章:

  • 2025跨境平台突围战:商家自营+精准供货+智能代销全渠道增长引擎
  • Qt正则表达式QRegularExpression
  • logstash收集数据
  • Spring Boot 2.x 到 3.x 迁移实战:Redis 配置篇
  • 测试用例与需求脱节的修复方案
  • 基于MFC按钮逻辑
  • Linux内核审计规则及其数据结构
  • 基于OpenCV+MediaPipe手部追踪(1/2)
  • shell脚本实例练习(持续更新)
  • 为AI聊天工具添加一个知识系统 之154:理论框架、工程方案及两者的结合架构
  • 深入理解 JavaScript 的 Set 对象
  • 全面解析PRN文件:从原理到可视化的完整指南 【标签打印】
  • MySql修改全部表和字段编码
  • 计算机体系结构的性能瓶颈100例
  • opencv在iOS 中的使用
  • Linux | i.MX6ULL 终结者学习指南(1)
  • MyBatis分页插件混用问题解析:IPage与PageHelper的冲突与解决
  • Linux系统部署OA项目
  • 初识MySQl · 内置函数
  • OpenCV图像处理:边缘检测
  • 国家发改委:进一步完善促进民营经济发展的制度机制
  • 住建部:推进“好房子、好小区、好社区、好城区”四好建设
  • 受贿2.61亿余元,陕西省政协原主席韩勇一审被判死缓
  • 国家统计局:4月全国城镇调查失业率为5.1%,比上月下降0.1个百分点
  • 贯彻落实《生态环境保护督察工作条例》,充分发挥生态环境保护督察利剑作用
  • 舞者王佳俊谈“与AI共舞”:像多了一个舞伴,要考虑它的“感受”