29、Internet网络层——IPv4协议&IP地址(网络层)

引言

  • Internet网络层今天成功的原则在RFC 1958中有描述。这里简单总结一下10大原则(从最重要的到最不重要的)(RFC中应该不止10个,寒注):(1)保证工作(可以工作)(2)保持简单(3)明确选择(在完成同样事情中的多种方法中坚定一种方法)(4)模块开发(协议栈思想)(5)期望异构性(6)避免静态选项和参数(7)寻找好的设计而不是完美设计(8)严格发送,宽容接收(9)考虑可扩展性(10)考虑性能和成本。
  • 在网络层可以把Internet看做是一种相互关联的网络或自治域集合。没有真正的结构,但存在几个主要骨干网。这些都是由高带宽线路和快速路由器组成。这些骨干网络中最大的一个称为一级网络,每个骨干网都与它连接,进而到达其他骨干网。连接到骨干网上的是Internet服务提供商(ISP),它为家庭和企业、数据中心和服务器托管设施,以及区域(中级)网络提供Internet接入服务。数据中心提供了许多通过Internet发送的内容。连接到区域网络的是更多的ISP、许多大学和公司的局域网和其他边缘网络。图中给出了一个准分层组织的轮廓图。在这里插入图片描述
  • 将整个Internet粘合在一起的正是网络层协议,即Internet协议(IP)。与大多数老式网络层协议不同的是,IP协议在设计之初就把网络互联作为目标。应该这样看待网络层:IP的任务是提供一种尽力而为地把数据包从源端传输到接收方的方法(即不提供任何保证),无须考虑这些机器是否在同一个网络,也不必关心它们之间是否还有其他网络。
  • Internet中的通信过程是这样的。传输层获得数据流,并且将数据流拆分成段,以便作为IP数据包发送。理论上,每个数据包最多可以容纳64KB,但实际上数据包通常不超过1500字节(因而它们可以被放到一个以太网帧中)。IP路由器转发每个数据包穿过Internet,沿着一条路径把数据包从一个路由器转发到下一个路由器,直到数据包到达目的地。在接收方,网络层将数据传输层,再由传输层交给接收进程。当所有的数据段都到达目标机器,它们被网络层重新组装还原成最初的数据报;然后该数据包被网络层传给传输层。(TCP/IP协议定义了一个在因特网上传输的包,称为IP数据包,而IP数据报(IP Datagram)是个比较抽象的内容,是对数据包的结构进行分析。也可根据协议层次理解,网络层的称为包,传输层的就是报文了)
  • 在图示例子中,家庭网络上的一个主机要穿越4个网络和大量IP路由器,才能到达位于公司网络上的目标主机。这种情况在实际中并不罕见,而且还有很多更长的路径。在Internet上存在许多冗余连接,骨干网和ISP在多个位置相互连接。这意味着两个主机之间存在着许多可能的路径。决定使用哪些路径正是IP路由协议的任务。
1、IPv4协议
  • 每个IP数据报包含两部分,一个头一个正文,正文部分也称之为有效净荷。头由一个20字节的定长部分和一个可选的变长部分组成。图中显示了IP数据报的头格式。IP数据报头的传输从左到右并从上到下,Version字段的高序字节最先被传送出去(这是big-endian网络字节序,在little-endian字节序机器上,比如Intel x86计算机,在传输和接收时需要进行字节顺序的软件转换)。现在回想起来,little-endian(小端模式)字节序是更好的选择,但在设计IP协议时没有人能预测到今天小端模式流行计算机世界。在这里插入图片描述
  • 版本字段记录了数据报属于协议的那个版本。版本4主宰者今天的Internet。在每个数据报开始包含版本信息,使得版本之间的迁移过程可以持续很长一段时间。事实上,IPv6已经定义了十多年,但它的部署却还刚刚开始不久(2010著作)。IPv5是一个试验性的实时流协议,它一直没有被广泛使用。由于头的长度不固定,所以头的IHL字段指明了头到底有多长(以32bit为单位)。IHL的最小值为5,这表明头没有可选项(即20字节)。该4位字段的最大值为15,把头的限制为最大60字节,因此选项字段最多为40字节。对于某些选项,比如记录一个数据包路径的选项,40字节往往太小,这使得这样的选项其实没有什么用处。
  • 区分服务字段是少数几个在意义上随岁月轻微改变的字段之一。该字段最初称为服务类型。它曾经是用来区分不同的服务种类。可靠性和速度的各种组合都是可能的选择。对于数字化的话音数据,加速传递优先于精确传递;对于文件传输,正确传输比加速传输更重要。最初时,服务类型字段包含6位,其中3位表示优先级,3位表示主机最关心的是延迟、吞吐量或可靠性中的哪一个。然而,没人真正知道路由器用这些位做什么,因此这些位空着许多年没人用。在设计区分服务时,IETF承认自己的失败,并重新启用这个字段。现在,前6位用来标记数据包的服务类别,我们在本章描述过的加速服务和确保服务;后2位用来携带显式拥塞通知信息,比如数据包是否经历了拥塞,我们在本章的拥塞控制部分描述了显式拥塞通知。
  • 总长度字段包含了该数据报中的所有内容,即头和数据。最大长度是65535个字节。目前情况下,这样的上界还是可以容忍的,但在未来网络中,可能需要更大的数据报。标识字段的用途是让主机确定一个新到达的分段属于哪一个数据报。同一个数据报的所有段包含相同的标识值。接下来是一个未使用的位,这令人惊讶,因为IP头中可供使用的地方实在珍贵。接下来的两个1位字段与分段有关。DF代表“不分段”(don`t fragment)标志位,这是针对路由器的一个命令,它不允许路由器分割该数据报。最初该字段用来支持没有能力组装还原数据包的主机。现在该字段可用在发现路径MTU过程中,路径MTU是能经过路径而无须分段的最大数据包。通过在发出的数据包中设置DF位,发送方知道这个数据包要么完整到达目的地,要么有个错误信息返回。MF代表更多的段标志位。除了最后一个段以外,其他所有的段必须设置这一位。它的用途是接收方可以知道什么时候一个数据报的所有分段都已经达到了。
  • 分段偏移量字段指明了该段在当前数据报中的位置。除了数据报的最后一个段外,其他所有段的长度必须是8字节的倍数。由于该字段有13位,所以每个数据报最多有8192个段,由此支持总长度字段限制的最大数据报。标识字段(identification)、MF和字段偏移量(Fragment offset)这3个字段协同工作,可用来实现分段操作。生存期(time to live)字段是一个用于限制数据包生存期的计数器。这里的计数单位最初设置为妙,因此最大的生存期为255秒。在每一跳上该计数器必须被递减。实际上,它只是跳计数器,当它递减到0时,数据报就被丢弃,并且路由器给
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值