博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
毕业设计之路(4)——IP协议
阅读量:2226 次
发布时间:2019-05-09

本文共 2343 字,大约阅读时间需要 7 分钟。

继续看概念有关的东西。

IP协议

IP协议是TCP/IP协议栈的核心。它提供的服务有:数据传输;封装多种上层协议;提供路由及传输信息;信息报交换技术等等。

下面具体说明这几种服务。

  • 数据传输:IP协议提供一种无连接的、不可靠的数据传输。它不能保证对方能够成功接收,也不维护数据前、后之间的连续性,也就是说数据报不排序。IP协议与底层的链路层协议或物理层无关。在传送过程中,IP协议还支持分段和重新汇编,如在一些IP报长度大于MTU的情况下,可以通过对IP报分段的方法进行跨媒体传输。
  • 封装多种上层协议:IP协议是上层协议的载体,TCP、UDP、ICMP、IGMP等协议都是以IP报的形式进行传输的。每一个IP报只能包含一个上层协议,IP报的报头有一条信息就是上层协议的类型。连个节点之间对具体的数据交换始终使用相同的协议,所以不必指出源协议和目标协议。
  • 提供路由及传输信息:IP协议是一种路由选择协议,IP报头包含传送信息的资料,如目标IP、源IP等,因为IP地址包含了网络地址网络地址和节点地址等信息,所以它可以很方面地实现数据传送和路由,另外它还有路由次数的信息——生存时间,用于限制路由次数。
  • 信息报交换技术:在IP报路由的过程中可能会发生,从节点1到节点2可能有几个路径,从1发送到2的数据很可能到达的时间不一,次序却乱了。这种情况下,IP路由器结合ICMP协议可以减少这种问题。IP的MTU与底层的协议有关,如以太网协议下是1500字节,FDDI时使4352字节,帧中继时是1600字节。IP在进行跨媒体传输时可以进行分段传输,就是由大MTU到小MTU网络传输时把大MTU的IP报分成几个小MTU的IP报来传输。因为分段传输非常占资源,所以在嵌入式应用中基本不会用到,一般的方法是把MTU的值设小,使其在任何网络接口协议中都能用。
  • IP数据报:IP报是由报头和负载组成的。报头的长度范围为20~60字节,有效负载范围为8~65515字节。
  • IP报头:现在分为第4版和第6版,第6版还没有完全推广,所以介绍第4版的IP协议。
IP报结构如下:

  • 版本:长度为4位,表示该IP报的版本号。目前使用的基本都是标准IP版本的第4版。即IPv4。
  • IP报头长度:长度为4位,表示IP报头的大小。数值范围是0x5~0xF,它是表示4的倍数的值。如最小的IP报头长度是20,它可以表示为0x5。最大的IP报头长是60,它可以表示为0xF。IP报头的大小始终是4的倍数。
  • 服务类型:长度为1字节,表示路由器传递数据报时所使用的服务质量。服务类型也称为TOS,第5~7位表示优先权,不同的值表示不同的优先权。默认情况下设为000;第4位是延时,为0是普通模式,为1是低延时模式(就是延时少),一般用于声音图形的传播和一些交互性数据传播;第3位是吞吐量,为0是正常模式,为1是高吞吐量模式(就是数据量大),这时路由器会选择带宽高的路径来传输;第2位是可靠性,为0是正常模式,为1是高可靠性,在数据堵塞时,路由器先把为0的数据丢掉,最后把为1的数据丢掉;第一位是费用性,为0是正常模式,为1是低费用,如果是1,路由器就不会选择卫星线路等昂贵的方式进行传输;第0位是保留位,为0,一般默认情况下该字段为0x00.
  • 总长度:长度为2字节,表示该IP报的总长度(IP报头+有效负载)。它最大可以表示为65535字节,这与IP的MTU有关,如以太网写一下最大是1500字节,FDDI时最大是4352字节。
  • 标示符:长度为2字节,表示IP报的号码,它是一个随机数,但连续的IP数据报标识符是递增的,它还可以用于标识IP数据报的分段。
  • 标识:长度为3位,它们都与分段有关,所以也叫分段标志。最高位是保留位,为0,第2位是分段标志位,也称为DF为,为0是分段,为1是不分段。最低位是更多段标志位,也称为MF位,为1表示该分段还没有结束,后面的一个IP数据报还是属于本分段的一个报,在接收到为0的IP数据报时表示该分段结束。其实,分段是一个非常耗费资源的过程,应该尽量避免分段,可以通过ICMP协议获取网络IP的MTU,这样就可以限制包发送的大小从而避免分段。
  • 分段偏移量:长度是13位,也是与分段有关,它的值等于分段的数据相对该完整数据帧的起始位置。如一个长的IP数据帧,有效负载是1500字节,但是要分段,分3段,第一段长度是500,它的偏移量为0,DF=0,MF=1,;第二段长度也是500,它的偏移量就变成了500,DF=0,MF=1;第三段长度还是500,它的偏移量就变成了1000,DF=0,MF=0.注意这3个分段的标识符是相等的。
  • 生存周期:长度是1字节。也叫TTL,表示IP数据报被丢弃前可以经过多少个IP路由器,即被转发的次数。该值没转发一次减1,在TTL=0时,IP数据报就会被丢掉。被丢掉后IP路由器会返回一个ICMP的时间超时报。要使IP数据报在internet上传输不被丢掉,必须保证TTL大于经过IP路由器的数目。
  • 协议:长度是1字节,表示有效负载内包含上层协议的类型,如TCP是6,UDP是7,ICMP是1,IGMP是2等等。
  • 信息头校验和:长度2字节,它仅检查IP报头。它把整个IP报头看作是由多个16位的数据组成(如IP报头是28字节,等于由14个16的数据组成),并把它们进行二进制反码求和,结果就是信息头校验和。在校验前先把信息头校验和清0,在经过每个IP路由器时TTL都要减1,所以信息头检验和都要重新计算。
  • 源IP地址:长度4字节,指本节点的IP地址。
  • 目标IP地址:长度4字节,指目标节点的IP地址。
  • IP选项和填充字符。长度是4字节的增加,具体长度不定,一般长度是0.

转载地址:http://khofb.baihongyu.com/

你可能感兴趣的文章
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>