一、引言
IP提供不可靠、无连接的数据报传送。
不可靠:不能保证IP数据报能成功到达目的地。如果发生了某个错误,IP有一个简单的错误处理算法:丢弃改数
据报,然后发送ICMP消息报给信源端。可靠性由上层来提供(TCP)。
无连接:IP并不维护任何关于后续数据报的状态信息。每个数据报处理相互独立。IP数据报
可以不按发送顺序接收。每个数据报都是独立地进行路由选择,可能选择不同的路线。
二、IP首部
IP首部长为20字节。
![这里写图片描述](https://img-blog.csdn.net/20170901213424761?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbm9fd2E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
首部长度是首部占32bit字的数目,4位所以最长是60个字节,普通字段值为5。服务类型(TOS)
字段包括三个3bit的优先权子字段(现在已被忽略),4bit的TOS子字段和1bit未用位但必须
置0。4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。
![这里写图片描述](https://img-blog.csdn.net/20170901214024680?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbm9fd2E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
总长度字段是指整个IP数据报的长度,以字节为单位。
该字段长16比特,所以IP数据报最长可达65535字节。当数据报被分片时,该字段也发生变
化。标识字段唯一地标识主机发送的每一份数据报,通常每发送一份报文它的值就会加1。
TTL生存时间字段,每经过一个路由器它的值就减去1,当该字段的值为0时,数据就被丢弃并
发送ICMP报文通知主机。
首部检验和字段是根据IP首部计算的检验和码。首先检验和置0再对首部中每个16bit进行二
进制反码求和保存在检验和字段中。
路由选择
简单机制:
(1)目的主机和源主机或在一个共享网络上则直接送到目的主机。
(2)其他情况发往一默认路由器,由路由器转发数据报。
一般体制:IP层在内存中有一个路由表,收到一份数据报时则搜索该表。(1)检查目的IP是
否为本机的IP地址之一或者是IP广播地址是就发送到指定协议模块处理;(2)如果不是,那
么IP层是否被设置成路由器的功能是就转发否则就丢弃。
路由表信息:
(1)目的IP地址
(2)下一站路由器的IP地址
(3)标志。指明目的IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为
真的下一站路由器还是直接相连的接口。
(4)为数据报的传输指定网络接口。
IP数据报路由选择是逐跳进行的。
IP路由选择:
(1)搜索路由表,寻找目的IP地址完全匹配的。
(2)寻找能与目的网络号相匹配的。
(3)寻找默认目标。
如果上述都没有成功则go die,返回“主机不可达”或“网络不可达”的错误。