特权同学

IP协议详解

0
阅读(2250)

IP协议简介:

IP,全称Internet Protocol(因特网协议),它工作在OSI的网络层,它负责将数据传输到正确 的目的地,同时也负责路由。无论传输层使用何种协议,都要依赖IP来发送和接受数据。

IP提供一种无连接的传输机制,这就意味着在网络传输的每个数据报都作为独立的 单元来对待。IP并不维护服务器和客户端之间的连接细节。

IP不能保证数据传输的可靠性。然而,这些并不意味着分组将被毫无规则的忽略, 而是仅在网络出现故障时才会发生数据丢失。

IP的报头结构:

版本号(Version):长度为4bit。标识目前采用的IP协议的版本号。一般的值为0100(IPv4),IPv6的值为0110。

IP包头长度(Header Length):长度为4bit。这个字段的作用是为了描述IP包头的长度, 因为在IP包头中有变长的可选部分。IP包 头最小长度为20 Byte,由于变长的可选部分最大长度可能会变成24 Byte。

服务类型(Type of Service):长度为8bit。这 个子段可以拆分成两个部分:Precedence和TOS。TOS目前不太使用。而Precedence则用于QOS应用。(TOS字段的详细描述RFC 1340 1349)。

IP包总长(Total Length):长度为16bit。IP包最大长度65535 Byte。

标识符(Identifier):长度为16 bit。该字段和Flags和Fragment Offest字段联合使用,对大的上层数据包进行分段(fragment)操作。

标记(Flags):长度为3bit。该字段第一位不使用。第 二位是DF位,DF位设为1时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上 层数据包并返回一个错误信息。第三位是MF位,当路由器对一个上层数据包分段,则路由器会在除了最 后一个分段的IP包的包头中将MF位设为1。

分段序号(Fragment Offset):长度为13bit。 该字段对包含分段的上层数据包的IP包赋予序号。由于IP包 在网络上传送的时候不一定能按顺序到达,这个字段保证了目标路由器在接收到IP包之后能够还原分段 的上层数据包。如果某个包含分段的上层数据包的IP包在传送中丢失,则整个一系列包含分段的上层数 据包的IP包都会被要求重传。

生存时间(TTL):长度为8 bit。当IP包进行传送时,会先对该字段赋予某个特定的值。当IP包 经过每一个沿途的路由器的时候,每个沿途的路由器会将IP包的TTL值减少1。如果TTL减少为0,则该IP包会被丢弃。这个字段可以防止由于故障而导致IP包 在网络中不停的被转发。

协议(Protocol):长度为8bit。标识了上层所使用 的协议。

头部校验(Header Checksum):长度为16bit, 由于IP包头是变长的,所以提供一个头部校验来保证IP包 头中信息的正确性。

源地址和目标地址(Source and Destination Addresses ):这两个段都是32bit。标识了这个IP包的源地址和目标地址。

可选项(Options):这是一个可变长的字段。该字段由起源设备根据需要改写。可选项目包含以下内容:

松散源路由(Loose source routing):给出一连串路由器接口的IP地 址。IP包必须沿着这些IP地址传送,但是 允许在相继的两个IP地址之间跳过多个路由器。

严格源路由(Strict source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,如果下一跳不在IP地址表中则表示发生错 误。

路由记录(Record route):当IP包离开每个路由器的 时候记录路由器的出站接口的IP地址。

时间戳(Timestamps):当IP包离开每个路由器的时候 记录时间。

Baidu
map