3.ip介绍
ip是tcp/ip协议族最核心的协议。所有tcp、udp、icmp以及igmp数据都以ip数据报格式传输
ip提供不可靠、无连接的数据报传输服务
不可靠(unreliable)的意思是它不能保证ip数据报能成功地到达目的地。ip仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,ip有一个简单的错误处理算法,丢弃该数据报,然后发送icmp消息给信源端。任何要求的可靠性必须由上层来提供(如tcop)。
无连接(connectionless)这个术语的意思是ip并不维护任何关于后续数据报的状态信息。每个数据报处理是相互独立的。ip数据报卡可以不按发送顺序接收。如果一信息、源向相同的信宿发送两个连续的数据报(先是a,然后是b),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此b可能在a到达之前先到达。
介绍两个有用的命令:ifconfig和netsta
ip首部
ip包包含数据最大长度可以到65535.
最小20字节最大60字节
首部字段份详细
4个字节的32bit值以下面的次序传输,首先是0~7bit,其次8~15bit,然后16~23bit,最后24~31bit.这种传输次序称作big endian字节序。由tcp/ip首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。
目前的协议版本号是4,因此ip有时也称作ipv4.
首部长度指的是首部占32bit字的数目,包括任何选项,由于它是一个4比特字段,因此首部最长为60个字节。
服务类型(tos)字段包括一个3bit的优先权字段(现在已被忽略),4bit的tos子字段和1bit未用位但必须置0.
4bit的tos分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit.如果所有4bit均为0,那么就意味着是一股服务。
总长度字段是指整个ip数据报的长度,以字节为单位。利用首部长度字段和总长度uan,就可以知道ip数据报中数据内容的起始位置和长度。由于该字段长16比特,所以ip数据报最长可达65535字节,当数据报被分片时,该字段的值也随着变化
标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1
ttl(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。
协议字段被ip用来对数据报进行分用。根据它可以识别是那个协议向ip传送数据。
首部检验和字段是根据ip首部计算的检验和码。
如果结果不是全1(即检验和错误),那么ip就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
由于路由器经常只修改ttl字段(减1),因此当路由器转发一份报文时可以增加它的检验和,而不需要对ip整个首部进行重新计算。
ip首部选项
最后一个字段是任选项,是数据报中的一个可变长的可选信息。目前,这些任选项定义如下:
安全和处理闲置(用于军事领域,详细内容参见rfc1108[kent 1991])
记录路径(让每个路由器都记下它的ip地址,见7.3节)
宽松的源站选路(为数据报指定一系列必须经过的ip地址,见85节)
严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址)。
这些选项很少被使用,并非所有的主机和路由器都支持这些选项。选项字段一直都是以32bit作为界限,在必要的时候插入值为0的填充字节。这样就保证ip首部始终是32bit的数倍(这是首部长度字段所要求的)。
ip路由选择
对于这个例子需要指出一些关键点:
1.该例子中的所有主机和路由器都使用了默认路由。事实上,大多数主机和一些路由器可以用默认路由来处理任何目的,除了非它在本地局域网上。
2.数据报中的目的ip地址始终不发生任何变化(在8.5节中,我们将看到,只有使用源路由选项时,目的ip地址才有可能被修改,但这种情况很少出现)。所有的路由器选择决策都是基于这个目的ip地址。
3.每个链路层可能具有不同的数据帧首部,而且链路层的目的地址(如果有的话)始终的是下一站的链路层地址。在例子中,两个以太网封装了含有下一站以太网地址的链路层首部,但是slip链路没有这样做,以太网地址一般通过arp获得。
1.策略明细路由
2.明细路由
3.策略默认路由
4.默认路由
特殊情况的ip地址
0白哦是所有的比特位为0;-1标示所有的比特位全为1;netid、subnetid和hostid分别表示不为全0或全1的对应字段,子网号栏为空表示该地址没有进行子网划分。
表的头两项是特殊的源地址,中间项是特殊的换回地址,最后四项是广播地址。
表中的头两项,网络号为0,如主机使用bootp协议确定本机ip地址时只能作为初始化过程中的源地址出现。
ip的未来
ip主要存在三个方面的问题,这是internet在过去几年快速增长造成的结果
1.超过半数的b类地址已被分配。根据估计,他们大约1995年耗尽。
2.32bit的ip地址从长期的internet增长角度来看,一般是不够用的。
3.当前的路由结构没有层次结构,属于平面型(flat)结构,每个网络都需要一个路由表目,随着网络数目的增长,一个具有多个网络的网站就必须分配多个c类地址,而不是一个b类地址,因此路由表的规模会不断增长。
无类别的域间路由选择cidr(class interdomain routing)提出一个可以解决第三个问题的建议,对当前版本的ip(ip版本4)进行扩充