第3章 IP:网际协议

来源:互联网 发布:c语言的玫瑰花数是多少 编辑:程序博客网 时间:2024/06/02 23:39

一 IP提供不可靠、无连接的数据报传送服务
不可靠的意思是不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务,如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(TCP)。

无连接(connetionless)这个术语的意思是 IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此 B可能在A到达之前先到达。

IP 提供不可靠、无连接服务,为什么还要使用它呢?下面慢慢来解释
一IP数据报
IP数据报的格式如图所示
这里写图片描述
普通的IP首部长为20个字节,除非含有选项字段。
目前的协议版本号是4,因此称为IPv4.

首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。

服务类型(TOS)字段包括一个3bit的优先权子字段(现在已被忽略), 4bit的TOS子字段和1 bit未用位但必须置 0。 4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。

总长度字段是指整个IP数据报的长度,以字节为单位。由于该字段长16比特,所以IP数据报最长可达 65535字节。
TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去 1。当该字段的值为 0时,数据报就被丢弃,并发送ICMP报文通知源主机。

首部检验和字段是根据 I P首部计算的检验和码。
ICMP、IGMP、UDP和TCP都采用相同的检验和算法,
检验方法:为了计算一份数据报的 I P检验和,首先把检验和字段置为 0。然后,对首部中每个 16 bit进行二进制反码求反和(整个首部看成是由一串 16 bit的字组成),结果存在检验和字段中。当收到一份 I P数据报后,同样对首部中每个 16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全 1。如果结果不是全 1(即检验和错误),那么IP就丢弃收到的数据报。

最后一个字段是任选项,是数据报中的一个可变长的可选信息。

二IP路由选择
路由表中的每一项都包含下面这些信息:
• 目的IP地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定(如下所述)。主机地址有一个非0的主机号(见图1 - 5),以指定某一特定的主机,而网络地址中的主机号为0,以指定网络中的所有主机(如以太网,令牌环网)。
• 下一站(或下一跳)路由器(next-hop router)的I P地址,或者有直接连接的网络 IP地址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。
• 标志。其中一个标志指明目的 I P地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口。
• 为数据报的传输指定一个网络接口。

I P路由选择主要完成以下这些功能:
1) 搜索路由表,寻找能与目的 I P地址完全匹配的表目(网络号和主机号都要匹配)。如果
找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标
志字段的值)。
2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行讨论。
3) 搜索路由表,寻找标为“默认(default)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。

0 0