TCP/IP协议之IP协议

本文深入介绍了IP协议的核心概念,包括IP地址的逻辑寻址功能,以及它在网络层的作用。IP地址分为五类,A、B、C类主要分配给不同规模的网络,D类用于多点广播,E类则用于实验。IP地址的网络ID和主机ID用于标识网络和主机。子网划分进一步优化了寻址效率,子网掩码帮助获取子网ID。IP协议通过分片处理大数据传输,并在数据包中包含详细信息以确保正确传输。此外,还提到了如何利用分片进行洪水攻击的可能性。
摘要由CSDN通过智能技术生成

IP协议是TCP/IP协议的核心协议,位于四层结构模型中的网络层,主要提供逻辑寻址,能够让数据在不同子网中进行传输,这种传输主要基于IP地址实现.

什么是IP地址

IP地址是IP协议提供的一种统一的地址格式,为互联网上的每台设备提供一个IP地址,以此来解决互联网中因硬件设备的差异产生的通信问题.

  • 为什么使用IP地址
    在一个局域网中,两台设备可以通过MAC地址进行互相访问,但是在不同的局域网中,由于MAC地址的构造,MAC地址不具备层次结构,不能在其基础上引入真正的现实地址,例如:将一个国家的MAC地址限制在一个范围内,所以,必须使用一种具有逻辑化,具备层次结构的地址进行代替,这就是IP地址.
  • IP地址的基本构成
    为了便于寻址,每个IP地址包括两个标识码:
    1. 网络ID:处于同一个物理网络上的主机共同使用一个网络ID,可以用于识别主机所在的网络,网络ID决定了可分配的网络数量.
    2. 主机ID:用于识别处于当前网络中的设备,主机ID的位数决定了网络中最大的主机数.
  • IP地址的分类
    IP地址大致可分为5类:
  1. A类:前8位为网络ID,后24位表示主机ID,该网络地址主要分配给政府机关使用.
  2. B类:前16位为网络ID,后16位为主机ID,该网络地址主要分配给一些企业使用.
  3. C类:前24位为网络ID,后8位为主机ID,主要用于个人机.
  4. D类:不区分网络ID和主机ID,是预留IP地址,目前主要用于多点广播.
  5. E类:不区分网络ID和主机ID,该地址目前主要用来进行试验.
  • 如何区分IP地址的类型
    为了能迅速判断IP地址的类型,将不同类型的IP地址头部设置了固定数值:
    A类:IP地址第一位以0开始的地址,因此A类IP地址范围为0.0.0.0~127.255.255.255;
    B类:IP地址前两位以10开始的地址,B类IP地址的范围为128.0.0.0~191.255.255.255;
    C类:IP地址前三位以110开始的地址,C类IP地址的范围为192.0.0.0~223.255.255.255;
    D类:IP地址前四位以1110开始的地址,D类IP地址的范围为224~239.255.255.255;
    E类:IP地址前5位以11110开始的地址,E类IP地址的范围为240.0.0.0~255.255.255.254;
  • 特殊IP地址
    在进行IP地址分配时,有一些特殊的IP地址会进行保留,在这里不做过多介绍,只需了解即可;
  • 什么是子网
    数据在网络中进行传输是通过IP地址中的网络ID进行区分,从而将数据发送到具体的物理网络上,最后根据主机ID将数据发送到目标主机上,但如果物理网络中主机非常多,这一寻址将会非常浪费时间,所以,有些物理网络,会在当前网络的基础上,进行更小的划分,以提高传输数据的效率,子网划分将主机ID划分为子网ID和更小的主机ID,子网ID可以用来寻找当前网络中的子网,主机ID则会继续指向唯一的主机.(子网可根据需求动态配置)
    而子网掩码则是用来获取主机ID中保存的子网ID,在子网设置之后,子网掩码也会随之确定.
IP协议

IP协议可以将互联网中所有的网络连接起来,保证在原地址和目标地址直接发送数据.同时还提供数据重新组装功能,得以适应不同网络中对数据包大小的收发要求.

  • IP协议的工作方式
  1. 如果目标地址和源地址处于同一局域网,则直接可通过ARP协议进行数据传输.
  2. 如果目标地址和源地址不在同一局域网,则先通过ARP协议将数据包发送到当前网络网关(一般为路由器),网关根据数据包中的目标地址,将数据包发送到目标网络,如果未找到目标ID,则会将数据包发送到上一级网关,数据包被发送到正确的网络后,会经过ARP协议进行解析,获取目标主机的MAC地址,进行数据传输.
  • IP协议包的构造
    使用IP协议进行传输的数据包被称为IP协议包,每个包可分为首部和数据两部分构成,首部一般是固定长度,为20个字节,所有数据包必须具有首部,首部后还有一些可选字段,其长度可变.
    首部构造:
  1. 最开始4位为版本号,表示当前使用的IP协议的版本,当前大部分都为4,也就是常说的IPv4;
  2. 向后4位为,数据包首部长度,能表示的范围为0-15,单位为32位,4字节,所以,IP协议的首部长度也就必须为4字节的整数倍,用户可根据需求自己定义,在后面的可变长度中加入自定义内容.
  3. 在往后8位为服务类型,但实际上用处并不大,只有在区分类型时才会用到.
  4. 在往后16位为数据包的总长度,可表示的最大范围为0~65535,单位为字节,也就是理论上最大可传输数据大小;
  5. 接着往后16位为标识段,当要传输的数据超过网络的最大传输长度时,会对数据进行分片,分成多个数据包,而标识段就表示数据被分片之后的数据包个数,便于收到数据之后进行重组.
  6. 标识段往后3位为标志位,第一位未使用,为0,第二位表示是否允许分片,0表示允许,1表示不允许,第三位表示是否还有分片正在传输,0表示没有分片要进行传输.
  7. 标志位向后偏移13个字节为片偏移量,这个字段表示当前分片在原文中的位置,单位为8字节;
  8. 继续向后偏移8位为生存时间(TTL),表示数据包在网络中的生存时间,每经过一个网关后,TTL都会-1,如果TTL=0,则表示应丢弃当前数据包,目的是防止无法到达目的的数据包无限的在网络中传输,消耗网络资源.
  9. TTL 向后8位为数据包中数据所使用的协议类型,主要用于多路分解时所要遵循的协议;
  10. 再向后16位为数据包校验和,用于判断数据的完整性;
  11. 接着向后32位为源IP地址;
  12. 源IP地址后32位为的目标IP地址;
    在首部之后有一些可选字段,可根据实际需求进行选择.
  • 如何利用分片进行洪水攻击
    IP协议在进行数据传输时,如果需要传输的数据过大,超过当前传输接口的最大传输单元,则会进行分片操作;
    如何将一个数据进行分片:
  1. 将数据分为若干个小于最大传输单元的数据包.
  2. 设置数据包的总长度.
  3. 将除了最后一个数据包的其余数据包的更多分片标志位设置为1,表示还有更多分片需要进行传输.
  4. 设置当前数据包在整个数据段中的偏移量.
  5. 按照分片顺序进行发送.
  6. 在目标主机上接收到数据之后会根据数据包的描述,进行数据的重新组合.
    如果构造大量无效的分片数据包,向目标机器发送,就会造成分片洪水攻击.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值