TCP/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 )。

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

介绍内容:讨论IP路由选择、子网的有关内容、 两个命令:ifconfig 和netstat

3.2 IP首部


最 高 位 在 左 边 , 记 为 0 bit ; 最 低 位 在 右 边 , 记 为 3 1 b i t

大端:4个字节的32bit值一下传输次序: 首 先 是 0 ~ 7 b i t ,其次 8 ~ 1 5 b i t ,然后 1 6 ~ 2 3bit , 最后是 2 4 ~ 3 1 b i t 。 这 种 传 输 次 序 称 作 big endian 字 节 序 ,反之小端。
小端:必须在传输数据之前把首部转换成网络字节序。

由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序 —— 网络字节序。

目前协议版本号是4, —— IPv4

首部长度指的是首部占 32 bit字的数目,包括任何选项。由于它是一个 4比特字段,因此,首部最长为 6 0 个字节。
普通 I P 数据报(没有任何选择项)字段的值是 5 。

不同应用建议的 T O S值

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

Telnet 和Rlogin 这两个应用要求最小的传输时延,因为人们主要用它们来传输少量的交互数据。
FTP 文件传输则要求最大吞吐量。
最高可靠性被指明给网络管理(SNMP)和路由选择协议
用户网络新闻(Usenet news, NNTP) 是唯一要求最小费用的应用

现在大多数的TCP/IP 实现都不支持TOS特性,但是新系统都对它进行了设置。 新的路由协议如OSPF和IS-IS都能根据这些字段的值进行路由决策。
大多数实现都不允许 应用程序设置TOS字段。
(对TOS的内容略过)

 上面的内容需要进一步详细阅读 (需要更加的了解IP 的协议)

3.3 IP路由选择
(1)如果目的主机与源主机直接相连(eg:点对点链路)或者在一个共享网络上(以太网或令牌环网),那么IP数据包就直接送到目的主机上。
(2)否则, 主机吧数据包发往已默认的路由器上,由路由器转发改数据包,——大部分的主机都是采用这种简单机制。
(3)IP层可以配置成路由器的功能,也可以配置成主机的功能。为它指定主机和路由器都可以使用的简单路由算法。(本质上的区别在 于主机从不把数据报从一个接口转发到另一个接口,而路由器则要转发数据报。内含路由器 功能的主机应该从不转发数据报,除非它被设置成那样。)

I P 可以从 T C P 、 U D P 、 I C M P 和 I G M P 接 收 数 据 报 ( 即 在 本 地 生 成 的 数 据 报)并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。I P 层在 内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。当数据报 来自某个网络接口时, I P 首先检查目的 I P 地址是否为本机的 I P 地址之一或者 I P 广 播 地 址 。 如 果 确实是这样,数据报就被送到由 I P 首 部 协 议 字 段 所 指 定 的 协 议 模 块 进 行 处 理 。 如 果 数 据 报 的目的不是这些地址,那么( 1 )如果 I P 层 被 设 置 为 路 由 器 的 功 能 , 那 么 就 对 数 据 报 进 行 转 发 (也就是说,像下面对待发出的数据报一样处理);否则( 2)数据报被丢弃。

路由表每一项包含的信息:
1)目的IP地址:(可以是一个完整的IP地址也可以是一个网络地址)由改表中的标志字段来指定。主机地址有一个非 0的主机号,以指定某一特定的 主机,而网络地址中的主机号为0,以指定网络中的所有主机(如以太网,令牌环网)。
2)下一站(下一跳)路由器( n e x t - h o p r o u t e r )的 I P 地址,或者有直接连接的网络 I P 地:下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下 一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。
3)标志:其中一个标志指明目的 I P 地 址 是 网 络 地 址 还 是 主 机 地 址 , 另 一 个 标 志 指 明 下 一 站 路 由 器 是 否 为 真 正 的 下 一 站 路 由 器 , 还 是 一 个 直 接 相 连 的 接 口

  1. 为数据报的传输指定一个网络接口。

I P 路 由 选 择 是 逐 跳 地 ( h o p - b y - h o p ) 进 行 的 。 从 这 个 路 由 表 信 息 可 以 看 出 , I P 并不知道到 达 任 何 目 的 的 完 整 路 径 ( 除 了 那 些 与 主 机 直 接 相 连 的 目 的 )。所有的 I P 路 由 选 择 只 为 数 据报传输提供下一站路由器的 I P 地 址 。 它 假 定 下 一 站 路 由 器 比 发 送 数 据 报 的 主 机 更 接 近 目 的 , 而且下一站路由器与该主机是直接相连的。

I P 路由选择主要完成以下这些功能:

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

如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。

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

为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是 I P 路 由 选 择 机 制 的另一个基本特性。这样做可以极大地缩小路由表的规模,比如 I n t e r n e t 上 的 路 由 器 有 只 有 几 千个表目,而不会是超过 1 0 0 万个表目。

寻址的过程,还是有点不太明白这个过程, 每个细节,这个需要进一步理解


3.4 子网寻址
不是把 I P 地址 看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。原因是因为 A类和B类地址为主机号分配了太多的空间,可分别容纳的主机数为 2 2 4 - 2 和 2 1 6- 2 。

3.5 子网掩码



子网掩码+ 主机ip地址类型:——> 网络号、子网好、网络号

—— 我们常常使用的都是B类和C类的网络地址;

这些地址的过程需要去更加深入理解

下面的例子有时间再看看了


3.8 ifconfig命令 —— 对网络接口进行配置和查询的命令

需 要 注 意 的 是 以 太 网 没 有 采 用 尾 部 封 装 ( 2 . 3 节), 而 且 可 以 进 行 广 播 , 而 S L I P 链 路 是 一 个点对点的链接。


3.9 netstat命令 —— 提 供 系 统 上 的 接 口 信 息 。

  • i 参 数 将 打 印 出 接 口 信 息 , - n 参数则打印出
    I P 地址,而不是主机名字。

PS:
本 章 开 始 描 述 了 I P 首 部 的 格 式 , 并 简 要 讨 论 了 首 部 中 的 各 个 字 段 。 我 们 还 介 绍 了 I P 路由 选择,并指出主机的路由选择可以非常简单:如果目的主机在直接相连的网络上,那么就把 数据报直接传给目的主机,否则传给默认路由器。
在进行路由选择决策时,主机和路由器都使用路由表。在表中有三种类型的路由:特定 主机型、特定网络型和默认路由型。路由表中的表目具有一定的优先级。在选择路由时,主 机路由优先于网络路由,最后在没有其他可选路由存在时才选择默认路由。
I P 路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的 I P 地 址 始 终 不 变 , 但 是封装和目的链路层地址在每一站都可以改变。大多数的主机和许多路由器对于非本地网络 的数据报都使用默认的下一站路由器。
A类和B类地址一般都要进行子网划分。用于子网号的比特数通过子网掩码来指定。我们 为此举了一个实例来详细说明,即作者所在的子网,并介绍了变长子网的概念。子网的划分 缩小了 I n t e r n e t 路 由 表 的 规 模 , 因 为 许 多 网 络 经 常 可 以 通 过 单 个 表 目 就 可 以 访 问 了 。 接 口 和 网 络的有关信息通过 i f c o n f i g 和 n e t s t a t 命令可以获得,包括接口的 I P 地 址 、 子 网 掩 码 、 广 播地址以及 M T U 等。

IP 的内容还是需要慢慢消化一下才行

你可能感兴趣的:(TCP/IP详解—— 网际协议)