TCP/IP协议之 IP:网际协议

引言

IP是TCP/IP协议族中最为核心的协议、所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。

不可靠:意思是它不能保证IP数据报能成功的到达目的地。IP仅是提供最好的传输服务。

无连接:IP并不维护任何关于后续数据报的状态信息。每个数据报是相互独立的。

IP首部

IP数据报格式及首部中的各字段

TCP/IP协议之 IP:网际协议

版本号4位(目前协议版本号为4)。

首部长度是指首部占用32bit字的数目(最大为60字节 15个32bit)。

服务类型(TOS)字段包括一个3为的优先权子字段(现已被忽略),4bit的TOS字段和1bit未用位但必须置为0。

4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就是一般服务。

总长度字段(16字节):是整个IP数据的长度,以字节为单位。最大长度可达65535字节。

尽管可以传送一个长达 65535字节的I P数据报,但是大多数的链路层都会对它进行分片。而且,主机也要求不能接收超过 576字节的数据报。

标识字段(16位)唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加 1。

3位标志。

13位片位偏移

TTL(time-to-live)(8位):生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。

协议字段(8位):称为协议域。1表示ICMP协议、2表示IGMP协议、6表示TCP协议。

首部检验和字段(16位):根据I P首部计算的检验和码。它不对首部后面的数据进行计算。

源IP地址(32 bit):本地IP地址。

目的IIP地址(32 bit): 目的地IP地址

选项:是数据报中的一个可变长的可选信息。目前,这些任选项定义如下:
• 安全和处理限制(用于军事领域)
• 记录路径(让每个路由器都记下它的 I P地址)
• 时间戳(让每个路由器都记下它的 I P地址和时间)
• 宽松的源站选路(为数据报指定一系列必须经过的 I P地址)
• 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址)。

IP路由选择

在当今大都数系统都可以配置成一个路由器

在一般的*中,IP可以从TCP、UDP、ICMP和IGMP接收数据报(即在本地生成的数据报)并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。

IP层在内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。

当数据报来自某个网络接口时,IP首先会检查IP地址是否为本机的IP地址之一或者IP广播地址。

如果是,数据报就送到IP首部协议字段所指定的协议模块进行处理。

如果数据报目的地址, 如果IP层被设置为路由器的功能,那么对数据进行转发,否则数据报文被丢失。

路由表中的每一项都包含下面这些信息:
• 目的I P地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定。主机地址有一个非0的主机号,以指定某一特定的主机,而网络地

址中的主机号为0,以指定网络中的所有主机。

• 下一站(或下一跳)路由器( next-hop router)的IP地址,或者有直接连接的网络 I P地址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。

下一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。
• 标志。其中一个标志指明目的 I P地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口。
• 为数据报的传输指定一个网络接口。

IP路由选择是逐跳地进行的。IP并不知道到达任何目的的完整路径(除了那些与主机直接相连的目的)。所有的IP路由选择只为数据报传输提供下一站路由器的 IP地址。

IP路由选择主要完成以下功能:
1) 搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口。

2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口。目的网络上的所有主机都可以通过这个表目

来处置。这种搜索网络的匹配方法必须考虑可能的子网掩码。

3) 搜索路由表,寻找标为“默认”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。

完整主机地址匹配在网络号匹配之前执行。只有当它们都失败后才选择默认路由。默认路由,以及下一站路由器发送的 ICMP间接报文是I P路由选择机制中功能强大的特性。

为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是 IP路由选择机制的另一个基本特性。

子网寻址

所有的主机都要求支持子网寻址。不是把IP地址看成单纯的网络号和主机号,而是把主机号分成一个子网号和一个主机号。

B类地址的一种子网编址 16位网络号 8位子网号 8位主机号。

子网对于子网内部的路由器是不透明的。

子网掩码

给定IP地址和子网掩码,主机就可以确定IP数据报的目的是:

本子网上的主机

本网络中其它子网的主机

其它网络上的主机

如果知道本机的 I P地址,那么就知道它是否为A类、B类或C类地址,也就知道网络号和子网号之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。

ifconfig命令

当拨号接口接通或挂断时,ifconfig命令都必须运行。这个过程取决于SLIP

环路接口被认为是一个网络接口。它是一个A类地址,没有运行子网划分。

SLIP接口的标志是LINK0是一个允许压缩slip的数据的配置选项。其它的选项有LINK1和LINK2。

ifconfig命令一般支持TCP/IP及以外的其他协议族,而且有很多参数。

netstat命令

netstat命令提供了系统接口上的信息。-i参数将打印出接口信息,-n 参数则打印出IP地址,而不是主机名字。

-in参数打印出接口的MTU、输入分组数、输入错误、输出分组数、输出错误、冲突以及当前输出队列的长度。