《网络协议》IP 网际协议

概述

IP 是 TCP/IP 协议族中最为核心的协议。所有的 TCP、UDP、ICMP 和 IGMP 数据都是以 IP 数据报格式传输。IP 协议处于网络层,网络层主要是实现点对点的通信。IP 协议是一种不可靠、无连接的协议。不可靠即不能保证 IP 数据报能够成功到达目的端,在传输过程中发生某种错误时,IP 协议会丢弃数据报,然后发送 ICMP 消息给信源端,其他任何要求的可靠性必须由上层来提供。无连接即 IP 协议并不维护任何关于后续数据报的状态信息,每个数据报都是相互独立的。因此,IP 数据报可以不按顺序接收。

IP 地址

在计算机通信中,为了识别通信对端,必须有一个类似于地址的识别码进行标识。数据链路层中使用 MAC 地址进行标识同一个链路中不同计算机的一种识别码。相同,在网络层的 IP 中,使用 IP 地址来识别通信的主机。IP 地址由 32 位整数来表示,每 8 位为一组,分成 4 组,每组以”.“隔开,再将每组数转换为十进制。有关《IP
地址
》具体讲解可以参考前面博文。

IP 首部

IP 数据报的格式如下图所示,普通的 IP 首部长为 20 字节,除非含有选项字段。

前 20 字节和紧接其后的选项部分是 IP 数据报的首部,其中选项是可选的。首部的每一行是一个 32 位字的单位,最高位在左边,为 0 bit,最低位在右边,为 31 bit。4 个字节的 32 bit 值以下面的次序传输:首先是 0~7 bit,其次是 8~15 bit,然后 16~23 bit,最后是 24~31 bit。这种传输次序称为 big endian 字节序。由于 TCP/IP 首部中所有二进制整数在网络中传输时都要求以这种次序,因此它又称为网络字节序(即大端字节序,可参考博文《字节序》)。其他形式存储的二进制数据,如
little endian 格式,则必须在传输数据之前把首部转化成网络字节序。

版本号由 4 bit 来确认 IP 首部属于哪个版本,例如为 IPv4 时,则其值为 4。

首部长度是指首部占 32 bit 字的数目,包括任何选项。因为 4 位的最大值为 15(即从 0 开始计算),且由于是一个 4 比特段,因此首部最长为 60 字节,也即是说选项部分的最大值为 40 字节,不够 4 的倍数,要用 0 填充,使数据部分的起始地址为 4 的倍数。

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

总长度字段是指整个 IP 数据报的长度(即包括 IP 首部和数据),以字节为单位。利用首部长度字段和总长度字段就可以确定 IP 数据报中数据内容的起始位置和长度。由于该字段是 16 比特,所有 IP 数据报总长度可达 65535 字节,但是大多数的链路层都会对其进行分片,而且,实际上还要考虑网络的最大承载能力等因素,主机并不要求接收超过 576 字节的数据报。

IP 路由选择

发送数据报时使用网络地址(即 IP 地址),但是仅仅只有 IP 地址也不能够把数据报成功发送到达目的端地址,还需要一种类似于路由器或主机的信息,以便真正发往目的地址,这种信息存储在路由控制表中。路由控制表有两种形式:一种是管理员手动设置(即静态路由控制表);另一种是路由器与其他路由器交换信息时自动刷新(即动态路由控制表),为使动态路由控制表正常工作,必须设置好路由协议。

路由控制表记录着目的 IP 地址(网路地址)、下一步应该发送至路由器的 IP 地址和标志(该标志确认目的 IP 地址是网络地址还是主机地址或下一个路由器是否为路由器接口卡)。在发送 IP 数据报时,首先要确认 IP 数据报中首部的目的地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 数据报转发给相应的下一个路由器。若路由控制表存在多个相同的网络地址记录,就选择一个相同位数最多的网络地址。若路由控制表中下一个路由器的位置记录着某个主机或路由器网卡的
IP 地址,则意味着发送端和目的端属于同一条链路。

IP 路由选择是逐跳地进行,在路由控制表中,IP 并不知道到达任何目的的完整路劲。所有的 IP 路由选择只为数据报传输提供下一个路由器的 IP 地址。IP 路由选择主要按以下步骤:

  1. 搜索路由表,优先搜索匹配主机,如果能找到和 IP 地址完全一致的目标主机,则将该包发向目标主机;
  2. 搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要子网掩码的协助。如果找到路由器,则将该包发向路由器;
  3. 搜索路由表,如果匹配同子网路由器失败,则匹配同网号路由器,如果找到路由器,则将该包发向路由器;
  4. 搜索路由表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包;
  5. 如果以上都失败了,就丢掉这个包;

子网掩码

IP 地址在子网网络中不再是简单的由网络号和主机号组成,而是把主机号再分成子网号和主机号。因此,在子网网络中,IP 地址有两种识别码:一种是 IP 地址本身;另一种是表示网络部的子网掩码;子网由子网掩码与该子网中的 IP 地址相"与"得到。

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

---本子网上的主机;

---本网络中其他子网中的主机;

---其他网络上的主机;

参考资料:

《TCP/IP 详解》

《图解 TCP/IP》

IP 协议http://blog.csdn.net/ns_code/article/details/29894111

时间: 2024-10-12 07:17:05

《网络协议》IP 网际协议的相关文章

IP网际协议

IP 网际协议 IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP.UDP.ICMP 及 IGMP 数据都以 IP 数据报格式传输.IP 协议提供的是 不可靠 . 无连接 的数据报传送服务. 不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务.当发生某种错误时,IP 协议会丢弃该数据报.传输的可靠性全由上层协议来提供. 无连接(connectionless):IP 协议对每个数据报的处理是相互独立的.这也说明, IP 数据报

IP:网际协议

IP首部:最高位在0bit处,最低位在31bit处,传输时候每8bit传输一次,成为网络字节序 4bit协议版本:一般为4 4bit的首部长度:IP首部长度是首部占用32bit的数目,最长为15*4=60个字节,一般值为5,所以前面8bit的值通常情况下为0x45 8bit的服务类型:3bit的优先权子字段+4bit的TOS子字段和1bit的0.4bit的子字段代表:最小时延,最大吞吐量,最高可靠性,最小费用 16bit的总长度:是1byte的数目,IP数据报长度最大可达65535个字节,但一般

TCP/IP (2)IP网际协议

IP是TCP /IP协议族中最为核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输 IP提供不可靠,无连接的数据传送服务 不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务.如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端.任何要求的可靠性必须由上层来提供(如TCP). 无连接(connectionless)这个术语的意思是IP并不维护任何关

IP网际协议 - IP首部,IP路由选择,子网掩码

IP首部 4个字节的32 bit值以下面的次序传输:首先是0-7 bit,其次8-15 bit,然后1 6-23 bit,最后是24~31 bit.这种传输次序称作big endian字节序.由于T C P / I P首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序.以其他形式存储二进制整数的机器,如little endian格式,则必须在传输数据之前把首部转换成网络字节序. 首部长度指的是首部占32 bit字的数目,包括任何选项.由于它是一个4比特字段,因此首部最长

柯南君:看TCP/IP 之 二 (IP:网际协议)

柯南君上一章讲了<TIP/IP之协议分层>,本章主要讲一下IP协议,这个是大家最关注的   一.概念:       IP是TCP / IP协议族中最为核心的协议.所有的TCP.UDP.ICM P及IGMP数据都以IP数据报格式传输.许多刚开始接触TCP/IP的人对IP提供不可靠.无连接的数据报传送服务感到很奇怪,特别是那些具有X.25或SNA背景知识的人.      不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务.如果发生某种错误时,如某

TCPIP详解卷1第3章IP网际协议3.2IP首部

TCP/IP 笔记 1.3 IP:网际协议

---恢复内容开始--- I P是T C P / I P协议族中最为核心的协议.所有的 T C P.U D P.I C M P及I G M P数据都以I P数据报格式传输. 不可靠( u n r e l i a b l e)的意思是它不能保证 I P数据报能成功地到达目的地. I P仅提供最好的传输服务.如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单的错误处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端.任何要求的可靠性必须由上层来提供(如T C P). 无连

TCP/IP协议简介(三) 之 网络层

IP 网际协议 IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP.UDP.ICMP 及 IGMP 数据都以 IP 数据报格式传输.IP 协议提供的是 不可靠 . 无连接 的数据报传送服务. 不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务.当发生某种错误时,IP 协议会丢弃该数据报.传输的可靠性全由上层协议来提供. 无连接(connectionless):IP 协议对每个数据报的处理是相互独立的.这也说明, IP 数据报

Android TCP/IP 扫盲教程

TCP/IP 是因特网的通信协议. 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 浏览器和服务器都在使用 TCP/IP 因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网.浏览器使用 TCP/IP 来访问因特网服务器,服务器使用 TCP/IP 向浏览器传回 HTML. 电子邮件也使用 TCP/IP 电子邮件程序使用 TCP/IP 来连接因特网,这样才能收发邮件. 因特网地址也是 TCP/IP 你的因特网地址 211.161.247.1 也是标准的