• 14.IP协议-bite


    IP协议格式

    在这里插入图片描述

    4位版本: 4/6(0100,0110),主要讨论IPv4.(0100)

    4位首部长度:和TCP类似.

    TOS(服务类型,只有4位有效,可以切换形态):最小延时,最大吞吐量,最高可靠性,最小成本,同一时刻只能取一种形态
    4.16位总长度:单个IP数据报最大长度不能超过64KB(65536Byte),如果超过了,IP协议自身实现了分包和组包这样的操作对于IP数据包来说,根本不关心载荷里是啥只是单纯的对数据进行了切分了

    .下面三个字段就是用来进行分包和组包的
    16位标识符:同一个IP数据报拆分出来的多个IP数据报的标识是相同的
    13位片偏移:来描述这个包谁先谁后,片偏移准确来说也不是一个单纯的1,2,3,4而是可以基于片偏移来算出中间差多少空间.将后到的处于中间IP数据报插进去.(如何基于UDP实现分包组包?解决方案就是照抄IP的作业)
    3位标志:只有一位好使,0表示还有后续,1表示最后一个包了(结束标记)
    在这里插入图片描述

    8位生存时间(TTL):表示一个IP数据报可以在网络上转发多少次.数据报被发送的时候,会有一个初始TTL(比如常见的取值,128或者64)IP数据报每次经过了一个路由器,TTL就会减1如果TTL减到0了,此时收到这个包的路由器就会把这个包给丢弃.
    有些包里面的IP地址,可能是永远也到不了.像这样的包,不可能在网络上无休止的转发(占用硬件资源太多了)
    正常的IP数据报都会在既定的TTL内来到达.

    8位协议:传输层使用的是哪种协议.TCP或者是UDP都有不同的取值

    16位首部检验和:用来效验数据是够正确

    32位源IP地址:源IP表示发件人地址
    32位目的P地址:目的IP表示收件人地址.
    对于IPv4来说,一个IP地址本质上是32位的整数
    通常会使用“点分十进制"这样的方式来表示这个IP地址三个点,把32位整数分成4个部分,每个部分1个字节.每个部分的取值就是0-255

    IP地址管理

    IP地址是一个点分十进制构成的数据

    IP地址分成两个部分:网络号+主机号
    网络号:描述当前网络信息(局域网的标识)
    主机号:区分局域网内部的主机

    注意:同一个局域网里,主机之间的网络号是相同的,主机号不能相同.两个相邻的局域网(同一个路由器连接的),网络号也是不同的.

    区分IP地址中的网络号和主机号:
    引入子网掩码:子网掩码,也是一个32位,点分十进制表示的整数
    在这里插入图片描述
    子网掩码的左侧都是1,右侧都是0(不会1,0混着排列)
    左边的这些1就表示哪些位是网络号
    剩下0就是表示哪些位是主机号

    例如:一般家用的场景中,一个局域网设备很少(不会超过255)常见的子网掩码就是255.255.255.0
    十进制表示为:
    1111 1111 1111 1111 1111 1111 1111 0000 0000
    该局域网中IP地址的前24个bit为时网络号,后8个bit位是主机号

    如果一个局域网设备多了,子网掩码就会出现一些其他值

    特殊的IP地址:
    如果IP的主机号为全0,该IP就表示网络号.(局域网里的一个正常的设备,主机号不能设为0)

    如果IP的主机号为全1(255),该IP就表示"广播地址".往这个广播地址上发的消息,整个局域网中都能收到

    IP地址是127开头的,该IP都表示"环回IP",表示主机自己,127.0.0.1(环回IP中的典型代表)
    IP地址是10开头,192.168开头,172.16-172.31开头,表示该IP地址是一个局域网内部的IP(内网IP)

    除此之外,剩下的IP称为外网IP(直接在广域网上使用的IP)

    注意:外网IP一定是唯一的.每个外网IP都会对应到唯一的一个设备.
    内网IP只是在当前局域网中是唯一的.不同的局域网里,可以有相同的内网IP的设备

    解决IPv4地址不够的问题

    1.动态分配IP地址:设备联网时有IP,断网是没IP(设备没有减少,IP地址没有增加:治标不治本)

    2.NAT机制:让多个设备公用同一个外网IP.
    具体:
    NAT机制,把IP分成了内网(局域网)和外网(广域网),那么外网IP在互联网的任意位置都能访问到.内网IP只能在当前局域网内部访问且在当前局域网唯一.同时内网中的若干个设备,可以共用同一个外网IP.此时,每个外网IP都可能表示着几千个,甚至上万个设备.

    所以当使用同一外网IP的多个用户通过局域网访问外网服务器(外网IP)时,运营商的路由器这里就会修改IP数据报,将从内网发出去的源IP改成外网IP,带有这样功能的路由器设备,也称为NAT设备.

    那么通过ISP提供的同一个IP地址的多个用户同时访问同一个服务器(外网IP)时,通过端口后来区分,并返回各自的响应数据

    NAT只是续命了一波,但是不是从根本上解决问题

    3.IPv6
    IPv6在报头中使用了一个更长的字段来表示IP地址16个字节,128位,2的128次方
    在这里插入图片描述
    每个数字都是一个十六进制的数字(4bit)每个冒号分割了2个字节

    IPv6号称可以给地球上的每个沙子都分配一个IP地址

    路由选择

    路由选择,也就是规划路径.
    两个设备之间,要找出一条通道,能够完成传输的过程
    要想找出通道,前提是,得先认识路

    IP协议的路由选择也是类似的.IР数据报中的目的地址,就表示了这个包要发到哪里去,这个目的地址,如果当前路由器直接认识,就直接告诉你路了~如果当前路由器不认识,就会告诉你一个大概的方向,让你走到下一个路由器的时候再来问问
    依次往后走,其实也是在离目标越来越近.这个时候就总会遇到一个认识这个地址的路由器于是就可以具体的转发过去了,有的时候,不光遇到了一个认识这个地址的路由器并且他还认识多个路~~就可以选一个更合适的路了.

  • 相关阅读:
    skywalking源码--agent配置加载
    【ZYNQ】petalinux实现开机自启动
    dubbo Pool Size
    发电机负载测试方案
    React报错之Object is possibly null
    力扣L9--- 12. 整数转罗马数字--2024年3月12日
    软考高级系统架构师_计算机组成与结构---备考笔记004
    kafka主题脚本常用指令
    em/px/rem/vh/vw 的区别?
    【分布式金融交易模型】服务调用
  • 原文地址:https://blog.csdn.net/m0_56182317/article/details/125489116