传输层IP协议

IP协议概述

IP协议是网络层的协议
⽹络层的主要作⽤是:实现主机与主机之间的通信
在⽹络中数据包传输中也是如此,源IP地址和⽬标IP地址在传输过程中是不会变化的

IP地址:
每个设备都需要配置正确的 IP 地址,方便进行寻址
在这里插入图片描述
基于IP地址的网段划分:
IP地址分为两个部分, 网络号和主机号
网络号: 保证相互连接的两个网段具有不同的标识
主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号

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

IP地址划分

过去曾经提出一种划分网络号和主机号的方案, 把所有IP 地址分为五类
在这里插入图片描述
在这里插入图片描述
这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, B 类地址能包含的最⼤主机数太多了,很多企业达不到这个规模,闲着的地址造成浪费。A类地址也大量浪费。

⽆分类地址 CIDR:
正因为 IP 分类存在许多缺点,所以后⾯提出了⽆分类地址的⽅案 CIDR
这种⽅式不再有分类地址的概念,32 ⽐特的 IP 地址被划分为两部分,前面是络号,后面是主机号

引入一个子网掩码来区分网络号和主机号
子网掩码也是一个32位的正整数
将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号

IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高24位是1,也就是255.255.255.0

CIDR在一定程度上缓解了IP地址不够用的问题, 但是仍然不够用, 这时候有三种方式来解决:

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

私有IP和公网IP

平时我们办公室、家⾥、学校⽤的 IP 地址,⼀般都是私有 IP 地址。这些IP地址允许组织内部的 IT ⼈员⾃⼰管理、⾃⼰分配。私有IP可以重复,比如某个公司的某个IP地址可能和你在学校的IP地址相同。

就像每个⼩区都有⾃⼰的楼编号和⻔牌号,你⼩区家可以叫 1 栋 101 号,我⼩区家也可以叫 1 栋 101。但⼀旦出了⼩区,就需要带上XXX路 XX号(公⽹ IP 地址)。

所以,公有 IP 地址是有组织统⼀分配的,假设你要开⼀个博客⽹站,那么你就需要去申请购买⼀个公有 IP,全世界的读者才能访问,而且这个IP是唯一的。

私有IP范围:
在这里插入图片描述
其余的则称为全局IP(或公网IP)

NAT技术
参考这里🔗

IP报文格式

在这里插入图片描述
4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.

4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大
的数字是15, 因此IP头部最大长度是60字节.

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

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

3位标志字段: 第一位未使用. 第二位为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 为1表示后边还有其他分片.

13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报文的长度必须是8的整数倍.

8位协议: 表示上层协议的类型

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

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

转发IP的过程

当IP数据包到达路由器时, 路由器会先查看目的IP来决定这个数据包是能直接发送给目标主机, 还是需要发送给下一个路由器。

当一个IP报文到达一个路由器,这个路由器查询路由表中是否有和报文中目的IP的网络地址相同的IP,有三种结果

  1. 没有,将报文发送给默认路由器
  2. 有,发送给对应的路由
  3. 已经到达目的网络,将数据发给目标主机

IP分片

MTU:
以太网传输单元的最大值(1500)
不同的网络类型有不同的MTU

那么当 IP 数据包大小大于 MTU 时, IP 数据包就会被分⽚,分片是主机完成的

过程如下:

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

例如:
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南无故人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值