计算机网络之IP协议(详解

IP协议在网络层负责地址管理和路由选择,主要包括IPv4和IPv6。IP数据报包含版本号、首部长度、服务类型、总长度、标识、标志、分片偏移、生存时间、协议类型、首部检验和以及源/目的IP地址等字段。当数据报过长时,会进行分片,通过标识和分片偏移重组。NAT机制解决了内网IP复用问题,但有端口限制。IPv6通过扩展地址长度至128位,有效解决了IP地址耗尽问题。
摘要由CSDN通过智能技术生成

网络层主管地址管理路由选择。而IP协议就是网络层中一个非常重要的协议。

它的作用就是在复杂的网络环境中确定一个合适的路径。

IP协议头格式

4位版本号(version)

指定IP协议的版本,目前只有两个版本:IP v4和IP v6.对于IP v4来说,这个值就是4.

4位首部长度(header length)

IP头部的长度是多少个32bit,也就是说length*4个字节数,4bit表示的最大数值是15,所以IP头部的最大长度是15*4=60字节。

8位服务类型(Type Of Service)

3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须设置为0)。

4位TOS字段分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能从中选取一个。相当于是根据需求切换形态,同一时刻只能取其中一种形态

对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。

16位总长度(total length)

IP数据报整体占了多少字节。(单个IP数据报最大长度不超过64k)

16位标识(id)

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

如果整个IP数据报太长了,IP协议就会把这个大包拆分成多个小包,保证每个包都不超过64k。

拆分成多个包,但是只有一个TCP报头。对于IP数据报来说,根本不关心载荷中是什么东西,只是单纯的对数据进行了切分处理。

如何区分多个IP包是从同一个数据拆分出来的?

使用16位标识,多个被拆分出的IP数据报的16位标识的值是相同的。然后通过13位片偏移来描述这些小包谁先谁后。

3位标志字段

第一位保留(保留的意思是现在暂时不用,但是说不定之后会用到)

第二位为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示“更多分片”,如果分片了的话,最后一个分片置为1,其他是0.类似于一个结束标志

13位分片偏移

是分片相对于原始IP报文开始处的偏移,其实就是表示当前分片在原报文中处在哪个位置。如果出现先发的包后到的情况, 也能确定目前包在原报文中的位置, 保证组包后数据的顺序不被打乱。

实际偏移的字节数是这个值*8得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。

8位生存空间

数据报到达目的地的最大报文跳数。一般是64。表示一个IP数据报还能在网络上存在多久,单位不是时间,而是转发次数。IP数据报被发送的时候,会有一个初识的TTL(常见的如128/64),IP数据报每经过了一个路由器,TTL就会-1.如果TTL减到了0还没到达,此时收到这个包的路由器就会把这个包抛弃。

这个字段主要用来防止出现路由循环(正常的IP数据报都会在既定的TTL内到达)。

8位协议

表示上层协议的类型(TCP/UDP)。

16位首部检验和

使用CRC进行校验,来鉴别头部是否损坏。只鉴别IP头部是否损坏,剩下的载荷有自己的检验和部分。

32位源IP地址和32位目的IP地址

表示发送端和接收端。

源IP表示发送人地址,目的IP表示收件人地址。

对于IP v4来说,一个IP地址本质上是32位的整数,通常会使用“点分十进制”,这样的方式来表示IP地址。点分十进制的三个点将32位整数分为4个部分,每个部分1个字节,每个部分的取值就是0~255。

给每一个设备都分配一个IP地址这个问题如何解决?

1.动态分配IP地址

让每个设备连上网的时候才有IP,不联网时就没有IP(这个IP可以给别人用啦!)

不能从根本上解决这个问题(设备未减少,IP地址未增加),治标不治本。

2.NAT机制

存在极限,端口号的极限个数为65535

让多个设备共有同一个外网IP。

NAT机制把网络分为了内网(局域网)和外网(广域网)

要求外网IP必须表示唯一的设备,同时内网中的若干设备可以共用同一个外网IP。

结论:

  • 对于一个外网IP,可以在互联网的任意位置都能访问到

  • 对于一个内网IP,只能在当前局域网内部访问到。局域网1的设备不能使用内网IP访问局域网2的设备。

  • 内网IP可以重复出现,只有在当前局域网内才是唯一的。

  • 若两个链接的IP地址来自于“同一个局域网”(源IP地址相同),此时要分别看他们的端口号。

  • NAT不光会对IP调整成外网IP,同时也会对端口进行调整,如果端口不一样就算了,如果一样,就会调整成不同的端口。同时NAT会记录这个映射关系,保证服务器返回的数据,再按照这个映射关系给还原回去。

3.IP v6

从根本解决了问题!!!

IP v6在报头中使用了一个更长的字段来表示IP地址。

IP v6:16个字节,128位。2^128.

IP v4:4个字节,32位。2^32.

真正从根本上解决了IP地址不够用的问题。

IP v6和IP v4是不兼容的。对于一个设备要支持IP v4和IP v6是两个截然不同的机制。

推荐视频:https://www.bilibili.com/video/BV1i14y157YV/?spm_id_from=333.880.my_history.page.click

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Sunlightʊə

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

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

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

打赏作者

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

抵扣说明:

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

余额充值