IP 协议的相关特性

1.IP协议的特性

  • 无连接性。IP协议是一种无连接协议,这意味着数据包在传输过程中不需要保留连接状态信息。每个数据包都是独立发送和处理的,每个包都可以按不同的路径传输到目的地。
  • 不可靠性。IP协议不提供任何可靠性保证,数据包在传输过程中可能会丢失、重复或乱序。这需要应用层协议自行处理数据的可靠性。
  • 分组交换。IP协议采用分组交换技术,将数据分成较小的数据包进行传输,以适应不同网络速度的环境并降低网络拥塞的风险。
  • 路由选择。IP协议可以根据网络拓扑和路由信息,动态选择最佳的传输路径,具有较高的网络扩展性。
  • 分类服务差错检测。IP协议支持不同的服务质量,可以对数据包进行分类和处理,还支持差错检测机制,确保数据包传输过程中的完整性和正确性。
  • 地址的唯一性和层次性。每个连接到网络的设备都必须具有唯一的IP地址,以便能够与其他设备区分和通信。地址还具有层次性,有助于在地址总数较多时更高效地定位通信主体。

1.1 报文格式

4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4.
4位头部⻓度(header length):IP头部的⻓度是多少个32bit,也就是length*4的字节数.4bit表⽰最⼤的数字是15,因此IP头部最⼤⻓度是60字节.
8位服务类型(Type Of Service):3位优先权字段(已经弃⽤),4位TOS字段,和1位保留字段(必须置为0).4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本.这四者相互冲突,只能选择⼀个.对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要

16位总⻓度(total length):IP数据报整体占多少个字节.
16位标识(id):唯⼀的标识主机发送的报⽂.如果IP报⽂在数据链路层被分⽚了,那么每⼀个⽚⾥⾯的这个id都是相同的.
3位标志字段:第⼀位保留(保留的意思是现在不⽤,但是还没想好说不定以后要⽤到).第⼆位置为1表⽰禁⽌分⽚,这时候如果报⽂⻓度超过MTU,IP模块就会丢弃报⽂.第三位表⽰"更多分⽚",如果分⽚了的话,最后⼀个分⽚置为1,其他是0.类似于⼀个结束标记.

13位分⽚偏移(framegament offset):是分⽚相对于原始IP报⽂开始处的偏移.其实就是在表⽰当前分⽚在原报⽂中处在哪个位置.实际偏移的字节数是这个值*8得到的.因此,除了最后⼀个报⽂之外,其他报⽂的⻓度必须是8的整数倍(否则报⽂就不连续了).
8位⽣存时间(Time To Live,TTL):数据报到达⽬的地的最⼤报⽂跳数.⼀般是64.每次经过⼀个路由,TTL-=1,⼀直减到0还没到达,那么就丢弃了.这个字段主要是⽤来防⽌出现路由循环
8位协议:表⽰上层协议的类型

16位头部校验和:使⽤CRC进⾏校验,来鉴别头部是否损坏.
32位源地址和32位⽬标地址:表⽰发送端和接收端.
• 选项字段(不定⻓,最多40字节)

1.2 IP协议如何管理地址

IP地址本质是一个32位整数,为了方便,就会把IP表示成点分十进制

IP地址的存在,目的是为了区分网络上的不同的设备,希望每个网络都有唯一的一个IP地址

32位整数表示的数据范围42亿9千万   

这个数据看起来很大,但在网络飞速发展的今天,其实并不算很大

1.3 如何解决IP地址不够用

1) 动态分配IP地址

2)NAT机制(网络地址映射)

        先把地址分分为两大类,

a.私网IP/局域网

        IP地址是以10.*   172.16--172.31.*   192.168.*

b.公网IP/广域网

        除了私网IP 剩下的都是公网IP

要求公网上设备,对应的公网IP,都必须唯一

但私网上的设备,使用私网IP,只要保证和私网内部的IP不重复即可,不同的局域网之间的IP允许重复

由于上述设定,就有了一个限制 

1.公网设备访问公网设备,没有任何问题,直接访问即可

2.局域网设备访问局域网设备(同一个局域网中),也没有任何问题

3.局域网设备访问局域网设备(不同局域网中),不允许访问

4.局域网设备访问公网设备,就需要对局域网设备的IP进行地址转换

5.公网设备访问局域网设备,不允许主动访问

外网设备 ->外网设备,不需要任何 NAT,直接就能通信
内网设备 -> 其他内网设备, 不允许!!
外网设备 ->内网设备,不允许!!
内网设备 ->外网设备,对应的内网设备的路由器,触发NAT 机制进行 IP 替换,此时就会给这个网络数据报的源IP替换成路由器自己的 ip

3) IPv6 从根本上解决问题的方案

IPv6使用16字节表示ip地址 2^128 是一个天文数字

但ipv6报头结构和ipv4是不兼容的   

2.网段划分

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

• ⽹络号:保证相互连接的两个⽹段具有不同的标识;
• 主机号:同⼀⽹段内,主机之间具有相同的⽹络号,但是必须有不同的主机号

不同的⼦⽹其实就是把⽹络号相同的主机放到⼀起.
如果在⼦⽹中新增⼀台主机,则这台主机的⽹络号和这个⼦⽹的⽹络号⼀致,但是主机号必须不能和⼦⽹中的其他主机重复.

 

• A类  0.0.0.0到127.255.255.255
• B类 128.0.0.0到191.255.255.255
• C类 192.0.0.0到223.255.255.255
• D类 224.0.0.0到239.255.255.255
• E类 240.0.0.0到247.255.255.255
 

随着Internet的⻜速发展,这种划分⽅案的局限性很快显现出来,⼤多数组织都申请B类⽹络地址,导致B类地址很快就分配完了,⽽A类却浪费了⼤量地址;

• 例如,申请了⼀个B类地址,理论上⼀个⼦⽹内能允许6万5千多个主机.A类地址的⼦⽹内的主机数更多.
• 然⽽实际⽹络架设中, 不会存在⼀个⼦⽹内有这么多的情况.因此⼤量的IP地址都被浪费掉了.

针对这种情况提出了新的划分⽅案,称为CIDR(Classless InterdomainRouting):

• 引⼊⼀个额外的⼦⽹掩码(subnet mask)来区分⽹络号和主机号;
• ⼦⽹掩码也是⼀个32位的正整数.通常⽤⼀串"0"来结尾;
• 将IP地址和⼦⽹掩码进⾏"按位与"操作,得到的结果就是⽹络号;
• ⽹络号和主机号的划分与这个IP地址是A类、B类还是C类⽆关;

3.路由选择

 从复杂的网络结构中,找到一条通往终点的路线

路由的过程,就是一跳一跳"问路"的过程

⼀跳":数据链路层中的⼀个区间.具体在以太⽹中指从源MAC地址到⽬的MAC地址之间的帧
传输区间.
 

IP数据包的传输过程也和问路⼀样.

• 当IP数据包,到达路由器时,路由器会先查看⽬的IP;
• 路由器决定这个数据包是能直接发送给⽬标主机,还是需要发送给下⼀个路由器;
• 依次反复,⼀直到达⽬标IP地址;

• 路由表可以使⽤route命令查看
• 如果⽬的IP命中了路由表,就直接转发即可;
• 路由表中的最后⼀⾏,主要由下⼀跳地址和发送接⼝两部分组成,当⽬的地址与路由表中其它⾏都不匹配时,就按缺省路由条⽬规定的接⼝发送到下⼀跳地址。
 

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值