所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输。IP提供不可靠,无连接的数据报传送服务。
不可靠:不能保证IP数据报能成功地到达目的地。如若路由器没有缓冲区了,那么IP就会丢弃数据报。
无连接:IP不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的进行路由选择,如两个连续的数据报AB可能在到达时为BA。
IP首部
普通IP首部的长度为20字节。
![](https://img.haomeiwen.com/i2671109/14de3801af2f3ffc.png)
- 版本号为4或者6
- 总长度字段是指整个IP数据报的长度。利用首部长度字段和总长度字段就可以知道IP数据报中数据内容的起始位置和长度。
- 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文,它的值就会加1。
- TTL生存时间字段设置了数据报可以经过的最多路由器数。一旦经过一个处理它的路由器,它的值就会减1。当该字段的值为0时,数据报就会被抛弃,然后发送ICMP报文通知原主机。
- 首部检验和字段是只根据IP首部计算的检验和码。ICMP,IGMP,UDP,TCP,在各自的首部中均含有同时覆盖首部和数据检验和码。
IP路由选择
IP层在内存中有一个路由表,当收到一份数据报并进行发送时,都要对该表搜索一次。
路由表中的每一项都包含以下信息:
-
目的IP地址,可以是一个完整的主机地址也可以是一个网络地址。
-
下一站路由器的IP地址,或者有直接连接的网络IP地址。
-
标志。指明目的IP地址是网络地址还是主机地址,和下一站路由器是真的下一站路由器还是一个直接连接的接口。
-
为数据报的传输指定一个网络接口。
IP路由选择是逐跳进行的。IP不知道到目的地的完整路径(除非直接和目的地相连),IP路由选择只是在假定下一站路由器更加接近目的地,为数据报传输提供下一站路由器的IP地址。
IP路由选择完成的功能:
-
搜索路由表,寻找能与目的IP地址完全匹配的条目(网络号和主机号都要匹配)。如果找到,则把报文发给该表目指定的下一站路由器或直接连接的网络接口。
-
搜索路由表。寻找能与目的网络号相匹配的条目。目的网络上的所有主机都可通过这个表目处理。如果找到,则把报文发给该表目指定的下一站路由器或直接连接的网络接口。
-
搜索路由表,寻找“默认”条目,把报文发给该条目指定的下一站路由器。
若上诉步骤不成功,那么会向生成数据报的应用程序返回一个“主机/网络不可达”的错误。
为一个网络指定一个路由器,而不为每个主机指定一个路由器,这极大的缩小了路由表的规模。
子网寻址
把主机号再分为一个字网号和主机号
![](https://img.haomeiwen.com/i2671109/0c18d4b7b69c0b8b.png)
子网掩码
除了IP地址以外,主机还需要知道有多少比特是用于子网号以及多少比特用于主机号。
当给定了IP地址和子网掩码后,主机就可以确定IP数据报的目的是:本子网上的主机,本网络中其他子网中的主机,其他网络上的主机。
网友评论