1:版本:IP协议版本,如果一个设备不支持此版本分组,则数据报会被丢弃而不是进行错误的解读
2:首部长度:IP数据报首部长度,20~60字节
3:服务类型:可以定义优先级,当网络拥塞的时候,优先丢弃优先级低的数据报,该字段还可以定义区分服务(具体神马玩意儿我也不晓得),以前的协议此字段还可定义延时,吞吐量等,但现在IETF已经重新解读了该字段
4:总长度:首部加数据总长度,此字段是16位,所以IP数据报最大长度为65535字节,以太网帧里面数据的长度为46~1500字节,如果IP数据报太短,必须填充到46字节,这也是这个字段存在的意义,因为通过帧首部和尾部,其实可以计算出封装在里面数据的大小
5:标识,标志,分片偏移:分片相关的3个字段,后面解释
6:生存时间:现在定义为数据报的最大跳数,当分组到达路由器,首先将此字段-1,如果减后为零,则丢弃此数据报,此字段是为了防止数据报在网络中的死循环,此数值约为网络中任意两台主机最大跳数*2,如果想限制一个分组只能在局域网中流动,则可设此字段为1
7:协议:定义此IP数据报封装了什么协议的数据,如TCP,UDP,ICMP等
8:首部校验和:后面解释
9:源IP地址
10:目的Ip地址
11:选项+填充(0~40个字节)
1:MTU:可封装在帧中的最大数据长度,以太网局域网1500字节,PPP296字节
2:不同的数据链路层会有不同的帧格式和长度,一个分组到达一个路由器前采用一种帧格式,在路由器中取出IP数据报,然后被打包成发送接口所在数据链路层的帧格式,如果MTU变小,数据报就会被分片,
3:源点通常不会对IP数据报进行分片,因为运输层会把数据划分成与源点数据链路层相适应的大小,只有目的主机才会进行分片的重装,分片可能会经过不同的路由到达目的主机
4:只有数据报中的数据会被分片,而首部会被复制,但有些字段值会被改变,标志,分片偏移,总长度一定会被改变,校验和会被重新计算
1:标识(ID):16位,数据报离开源主机时,会被分配一个正整数标识,然后标识递增1,当数据报被分片时,标识会被复制,这样相同的分片也就有相同的标识,这有利于目的主机的重装
2:标志(FLAG):3位,第一位保留,第二位"不可分片位",为1则此数据报不能被分片,如果MTU不支持此数据报通过,则数据报被丢弃,并向源主机发送ICMP差错报文,第三位"还有分片位",为1则表示还有分片,为0表示此分片是最后一个分片
3:分片偏移:13位,假设一个4000个字节的数据报被分成3个分片,分别携带数据段为0~1399,1400~2799,2800~3999,每个分片此标志值为A=0/8=0,B=1400/8=175,C=2800/8=350,之所以要除以8,是因为此字段13位太短了,路由器分片时,会选择能被8整除的起始地址,从这里也可以看出,每个数据报在自己内部起始数据索引都是0,如果被分片的数据再次分片,则会继承原始数据报的分片索引
1:标识相同的情况下,找到偏移为0的分片,此为第一个分片
2:用第一个分片的大小/8,就是下一个分片的偏移,
3:把第一个和第二个分片大小之和/8,就是下下个分片的偏移,以此类推
4:直到找到标志位"还有分片位"为0的分片
选项最长40字节,定义了一些可选功能,选项由TLV(type-length-value)构成
1:记录路由:数据报每经过一个路由器,路由器负责将其出口IP地址填入选项,最多可记录9个
2:严格的源路由:最多填充9个IP,数据报必须按照此IP流动,如果到达未被记录的路由,则数据报被丢弃,并发送差错报文,如果数据报到达终点但填充的IP没经过完,同样丢弃此报文并发送差错报文
3:不严格的源路由:在2的基础上,数据报可以经过未列出的路由,但所有列出的路由同样必须经过
4:时间戳:有三种选择
(1):经过每个路由器时,路由器必须填写自己的本地时间
(2):经过每个路由器时,路由器填写本地时间和IP
(3):填充给出IP,当经过此IP路由器时,路由器填充自己的时间
(1):把分组划分为k段,每段长度都是n位
(2):将每个段相加,和取反,得到的值即为检验和
(1):将目的数据划分为相同的k段,每段长n位
(2):相加,并且加上检验和,取反,如果为0,则检验正确
原理同上,计算过程中把首部用于计算,计算时去除检验和,检验时不去除
1:基础:
1: ATM是交换广域网,它与局域网,点对点广域网传输IP数据报情况不同
2:IP数据报使用的是ATM中的AAL5层,此层最大能接受65535个字节数据报,并封装为48字节信元
3:整个过程是:IP数据报进入路由器(进入点路由器),通过进入点路由器进入ATM网,在进入点路由器中,IP数据报被封装为48字节的信元,信元会将IP数据报封装在其首部和尾部中,一直到达离去点路由器,然后信元将被组装成IP数据报
4:在进入点路由器,解析IP数据报,得到目的IP地址,通过ATMARP(类似于ARP)获得物理地址,然后建立虚连接并传送信元
1:分组窃取:复制IP数据报
2:分组篡改:获取分组,改变其中的内容,然后发送出去,此攻击可以被数据完整性机制检测到
3:IP伪装:伪装为一IP向被攻击者发包,此攻击可以被起源鉴别机制检测到
IPSec能检测6提到的3种攻击,此协议是与IP协议结合在一起使用的,它在两个实体间创建了一种面向连接的服务,提供以下四种服务
1:定义算法和密钥
2:分组加密
3:数据完整性:如果接受到的分组不能通过数据完整性测试,则此分组会被丢弃
4:起源鉴别