查看: 3272|回复: 1

在Linux下配置TCP/IP

[复制链接]
  • TA的每日心情

    2013-2-8 09:34
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2007-8-2 17:45:28 | 显示全部楼层 |阅读模式
    分享到:
    TCP/IP 简史
      近年来,随着"传输控制协议/网际协议(TCP/IP)"套件的广泛使用,它已经成为网络通信中事实上的标准。这绝大部分要归功于因特网的迅猛发展以及对在不同平台、设备和操作系统中以它们都理解的"语言"来共享数据的需要。让我们首先了解 TCP/IP 的历史。
      在 20 世纪 60 年代后期,美国国防部(DOD)意识到其内部日渐突出的通信问题。在 DOD 工作人员、研究实验室、大学以及承包商之间日益增长的电子信息通信量遇到了严重的障碍。组成 DOD 的不同实体和组织拥有来自不同计算机制造商的计算机系统,这些计算机系统运行不同的操作系统并使用不同网络拓扑结构和协议。
      高级研究项目局(Advanced Research Projects Agency,ARPA)被授命提出一种解决这个问题的方案。ARPA 与各大学和计算机制造商结盟来开发一组通信标准。该联盟确定并构建了 4 节点的网络,这就成为当今因特网的基础。在 20 世纪 70 年代,该网络移植到一个新的、核心的协议设计中,这个协议就成为 TCP/IP 的基础。
      开放系统互连(Open System Interconnection,OSI)模型
      现在,我们使用许多不同类型的计算机,它们有着不同的操作系统、CPU 和网络接口等等。这些不同使得计算机系统间的通信出现问题。在 1997 年,国际标准化组织(ISO)创建了一个小组委员会来开发数据通信标准以促进多供应商的互操作性。其结果就是开放系统互连(OSI)模型。
      OSI 模型并未确定任何通信标准或协议;相反,它只是提供了通信任务应该遵循的一些指导性建议。
      注:OSI 模型只是一种模型或框架,它确定了要执行的功能,理解这一点很重要。它并未详细说明如何执行这些功能。但是,对于部分 OSI 模型,ISO 也确实接纳了某些符合 OSI 标准的具体协议。例如,ISO 接受 CCITT X.25 协议,该协议作为一种实现提供了 OSI 模型中网络层的大部分服务。
      7 个 OSI 层
      为简单起见,ISO 小组委员会采用分而治之的方法。将复杂的通信过程分为较小的子任务,问题就变得更容易处理,每个子任务可以分别优化。OSI 模型由 7 层组成:
      • 应用层
      • 表示层
      • 会话层
      • 传输层
      • 网络层
      • 数据链路层
      • 物理层
      给每一层都分配了一组特定的功能。每一层都使用下层的服务并为其上层提供服务。例如,网络层使用数据链路层的服务并为传输层提供与网络相关的服务。
      OSI 层
      利用相邻层的服务和为其相邻层提供服务,这种层的概念很简单。考虑公司是如何运做的:秘书写备忘录来向总裁(相邻的上一层)提供秘书服务。秘书使用信使的服务(相邻的下一层)来发送消息。通过将这些服务分开,秘书(应用程序)就不必知道消息实际上是如何传递到接收者手中。秘书只需要求信使(网络)发送消息即可。正如许多秘书通过使用这种标准的信使服务来发送备忘录一样,分层的网络可以通过将信息包交给网络层来发送这些信息包。
      注:不要将应用层与在计算机上执行的应用程序混淆(在英文中都是一个词 - application)。请记住,应用层是 OSI 模型的一部分,它并未具体指定用户和通信路径之间的接口是如何工作的,应用程序是这个接口的具体实现。实际的应用程序通常执行应用层、会话层和表示层的服务,而将传输层、网络层、数据链接层和物理层服务留给网络操作系统来处理。
    跨层通信
      每一层都与其它计算机中的同一层通信。例如,一个系统中的第 3 层与另一个计算机系统的第 3 层通信。
     
      当信息从一层传到下一层时,会在数据前面加一个头,以指出该信息的来源和目的地。来自某一层的由数据和头所组成的信息块又成为下一层的数据。例如,当第 4 层将数据传递到第 3 层时,它会添加自己的头。当第 3 层将该信息传递到第 2 层时,第 3 层会将来自第 4 层的头加数据作为它的数据,并在该数据前添加第 3 层的头,然后才将这个"头 + 数据"组合传给下一层。
      每一层信息单元的名称都不同:
      应用层 -->; 消息
      传输层-->; 段
      网络层 -->; 数据报
      数据链路层 -->; 帧(也称做信息包)
      物理层 -->; 位
      在 OSI 模型出现前,美国国防部定义了它自己的网络模型,即 DOD 模型。DOD 模型与 TCP/IP 协议套件有紧密的联系,这将在下一节说明。
      TCP/IP 协议栈(TCP)
      TCP/IP 协议栈表示了与 OSI 模型类似的网络体系结构。
      但 TCP/IP 不象 OSI 模型那样详细区分协议栈的上面几层。OSI 最上面的 3 层大致与 TCP/IP 的网际处理协议相当。处理协议的一些示例有 Telnet、FTP、SMTP、NFS、SNMP 和 DNS。
      OSI 模型的传输层负责可靠数据的发送。在网际协议栈中,这对应于主机到主机协议。这方面的示例 TCP 和 UDP。TCP 用来转换来自上层协议的不定长消息以及提供远程系统间必要的确认和面向连接的流控制。
      UDP 与 TCP 相似,但它不是面向连接的,而且不对数据接收进行确认。UDP 仅接收消息并将其传递给上层协议。因为 UDP 没有与 TCP 有关的那些开销,所以它为如远程磁盘服务等操作提供更高效的接口。
      TCP/IP 协议栈(IP)
      
      网际协议(IP)负责系统间无连接方式的通信。它相当于 OSI 模型中网络层的一部分,它负责网络间的信息移动。通过检查网络层地址来完成这种通信,该地址确定了发送消息的系统和路径。
      IP 提供与网络层相同的功能并帮助获取系统间的消息,但是它不保证这些消息能够成功传送。IP 还可以将这些消息分成多个段,然后在目的地重组这些段。另外,每一段可以采用不同的网络路径在系统间传送。如果这些段到达时乱了次序,IP 则会在目的地将这些信息包重组成正确的序列。
      IP 地址
      网际协议要求为网络上的每个设备分配一个地址。这个地址就是 IP 地址,它由 4 个八位元组成。这些八位元每个都定义唯一的地址,这个地址的一部分表示网络(有时也可以表示子网),而另一部分则表示网络上特定的节点。
      在 TCP/IP 网络中有几个地址具有特殊含义:
      • 以零开头的地址表示当前网络中的本地节点。例如,0.0.0.23 指当前网络中的 23 号工作站。地址 0.0.0.0 指当前工作站。
      • 在进行故障排除和网络诊断时,以 127 开头的地址非常重要。形式上将网络地址块 127.x.x.x 定义为 A 类地址,保留了该地址块以用于内部回送(loopback)。
      • 将地址上所有位全置为 1(也就是值 255)代表"所有"地址。所以,192.18.255.255 意味着将消息发送给 192.18. 网络上的所有节点;类似的,255.255.255.255 意味着将消息发送给因特网上的每个节点。这些地址用于多点广播消息和服务公告。
      注意:给系统分配节点号时,不要使用 0 或 255,它们都是保留数字,具有特殊含义。
      IP 地址类型
      将 IP 地址按一定范围分配,称为将 IP 地址分类,这取决于应用和组织的规模。三种最常见的类型地址是 A 类地址,B 类地址和 C 类地址。这三种分类表示了可为本地网络分配的 IP 地址中位的数目。
      A 类地址用于非常大的网络或相关网络的集合。B 类地址用于超过 256 个节点(但少于 65536 个节点)的大型网络。而大多数组织采用 C 类地址。一个组织采用几个 C 类地址的做法是一个好主意,因为 B 类地址的数量是有限的。 D 类地址被保留用于网络上消息的多点广播,E 类地址则被保留用于实验和开发。
      类 地址
      A 从 0.x.x.x 到 126.x.x.x
      B 从 128.0.x.x 到 191.255.x.x
      C 从 192.0.0.x 到 223.255.255.x
      D 从 224.0.0.1 到 239.255.255.255
      E 从 240.x.x.x 到 255.255.255.255
      "专用"IP 地址
      如果您的网络没有连接到因特网而且最近也不会连接的话,则可以自由选择任何合法的网络地址。只是要确保您内部网络信息包不会跑到实际的因特网中即可。要确保即便信息包确实跑出也不会有任何危害,应该使用为专用而保留的那些网络地址的某个号码。因特网赋号管理局(Internet Assigned Numbers Authorit,IANA) 已经在 A、B 和 C 类地址中保留了一些网络号,您无需注册就可以使用这些地址。这些地址只有在专用网络中才有效,而且(理论上)不会路由到实际的因特网站点中。
      A 10.0.0.0
      B 172.16.0.0 - 172.31.0.0
      C 192.168.0.0 - 192.168.255.0
      请注意第二块和第三块分别包含 16 个和 256 个网络。
      从这些网络号码中选择一个地址对于那些完全没有连接到因特网的网络是十分有用的。通过将单个主机用做网关,仍然可以实现访问另一个网络(如因特网)。对于本地网络而言,可以通过内部专用 IP 地址来访问该网关,而外部世界则通过正式注册的地址(由带宽供应商分配)知道该网关。
      子网和子网掩码
      划分子网是将大型的、实际的网络分成较小的逻辑网络的过程。划分网络的原因有以下几点:联网技术的电气(物理层)限制;为简便起见,希望在建筑物的每一层(或每个部门或针对每个应用)放置一个独立的网络而划分网络;减少网络段负载;或需要用高速线路连接远程位置。
      
      划分网段的结果是使整个网络变成由一些小型子网块组成的网络,从而易于管理。这些较小的子网之间的通信通过网关和路由器进行。同样,一个组织可以有几个物理上在同一个网络中的子网,以便将网络功能逻辑地分成多个工作组。
    单独的子网是整个网络的分支。假使将一个 B 类网络分成 64 个单独的子网。要完成这种子网划分,需要将 IP 地址视为两部分:网络和主机。网络部分由所分配的 IP 地址和子网信息位组成。实际上,这些位是借用主机的地址部分。分配给 B 类网络来表示网络部分的位数是 16,再加上子网部分的 6 位,共有 22 位来区分子网。这种划分的结果是有 64 个网络,每个网络 1024 个节点。IP 地址中的网络部分可大可小,这取决于所希望的网络数目或每个网络的节点数。
      子网,第二部分
      设置子网掩码实际上就是确定网络地址在何处结束以及主机地址在何处开始。子网掩码是由全为 1 的网络部分和全为零的主机部信息包成。
      假使一个 C 类网由下列部信息包成:
      N = 网络
      H = 主机
      NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
      每一位置表示 32 位地址空间中的一位。如果将这个 C 类网分成四个 C 类网络,其表示形式如下:
      NNNNNNNN.NNNNNNNN.NNNNNNNN.NNHHHHHH
      子网掩码如下:
      11111111.11111111.11111111.11000000
      如果用十进制数和点符号表示(即点分四组(dotted quad))这个地址,则子网掩码是 255.255.255.192。该掩码用于这个特定网络中所有子网上的节点之间的通信。
      相反,如果从 IP 地址的主机部分取出三位,则可以形成八个网络,其网络掩码如下:
      11111111.11111111.11111111.11100000
      该子网掩码是 255.255.255.224。这八个网络中的每一个可有 30 个节点,因为有 5 个地址位可以使用。(本应该是 32 个,但由于全为 1 和全为 0 是不合法的主机地址,所以不能使用)。
      网络 主机地址范围 广播
      192.168.1.0 192.168.1.0 to 192.168.1.30 192.168.1.30
      192.168.1.32 192.168.1.32 to 192.168.1.63 192.168.1.63
      192.168.1.64 192.168.1.64 to 192.168.1.95 192.168.1.95
      192.168.1.96 192.168.1.96 to 192.168.1.127 192.168.1.127
      192.168.1.128 192.168.1.128 to 192.168.1.159 192.168.1.159
      192.168.1.160 192.168.1.160 to 192.168.1.191 192.168.1.191
      192.168.1.192 192.168.1.192 to 192.168.1.223 192.168.1.223
      192.168.1.224 192.168.1.224 to 192.168.1.254 192.168.1.254

      提示:如果需要一些计算子网方面的帮助,可以在 www.cotse.com/networkcalculator.html 上查找在线子网计算器。
      跨网络通信:网关和路由
      由于 IP 寻址具有这种结构,所以主机只能与同一网络上的其它主机通信。为克服这种限制,我们给网络添加了路由和网关。路由是确定信息包从源到目的地所采用的路径的机制。通过在路由表中查找目的地的 IP 地址来建立路径或路由。如果找到该地址,则将信息包发送到那个网络;如没有找到,则将信息包转发到称为缺省路由的项,这就是所有"未知"地址的信息包转发到的机器或设备的 IP 地址。
      执行路由和/或转发功能的机器或设备称做网关或路由器。有时这两个术语也可以互换使用。从技术角度讲,网关描述这样的系统或设备,它在不同类型网络之间发送消息;而路由器在相同类型网络之间发送消息。因为我们只讨论使用 TCP/IP 协议的联网,所以不考虑这点细微差别,但是要意识到二者之间是有区别的。
      还值得注意的是,通过定义,我们知道网关装配了不止一个网络接口(即 A 和 B),每一个网络接口都配置了不同的 IP 或 IP/子网。这就是"网络桥接"得以实现的原因。信息包到达接口 A,然后根据充当网关的这台设备上路由表中的各项,执行下列四个操作之一。可以将信息包:
      • 发送到网络 A 上的主机
      • 传递到网络 A 上的"上游"缺省路由设备
      • 发送到网络 B 上的主机
      • 传递到网络 B 上的"上游"缺省路由设备
      路由配置
      有四种常见的路由配置:
      • 最小 - 完全与其它所有网络隔离开的网络仅需要最小的路由。通常在初始化网络接口时,建立最小的路由表。如果不需要与其它的 TCP/IP 网络通信,而且不用划分子网,则这就是系统所需的所有路由信息。
      • 静态 - 网络有一个或两个网关时,通常使用静态路由来配置网络。静态路由表由网络配置脚本(使用用户提供的 IP)自动地创建或者由系统管理员手工创建(使用第五节中讨论的 /sbin/route 命令)。该表正如其名称所指的那样 - 是静态的。它不随网络的变化而做调整。当网络变化时,必须手工重新配置该路由表。
      • 动态 - 大型网络通常都安装了多个路由器和/或网关,出于冗余/故障恢复的目的,它们可能指向同一远程网络。这就是动态路由的用武之地。动态路由允许使用一种协议 - 是的,您猜对了 - 称作路由协议,根据路由设备之间所交换的信息动态地构造(并不断地更新)路由表。这种持续不断的信息交换提供了一种机制,利用这种机制可以自动调节路由来适应不断变化的网络条件 - 譬如,通信量过大或运行中断。动态路由的最大缺点是设备间的路由信息交换会消耗相当大的带宽。
      • 第四个选项是使用静态和动态路由的组合。每个子网上的机器都使用静态路由以到达紧邻它们的机器。缺省路由 - 那些没有由路由表分配特定路由的信息包所使用的路由 - 被设置通向一台网关机器,该机器被配置成可以提供动态路由,因此也就了解其子网以外的网络。
      动态路由是基于这几个路由协议(内部协议,如 RIP、Hello 和 OSPF 等等;外部协议,如 EGP 和 BGP)之一,通过网关路由守护程序 gated 来启用动态路由。动态路由不是本教程所讨论的范围。想要了解有关这方面的更多信息,请参阅本教程结束部分的"结束语,参考资料和反馈意见"中所列出的 Craig Hunt 的 TCP/IP Network Administration 一书。   结束语
      在本教程中,我们已经讨论了 TCP/IP 的历史、OSI 模型和它与 TCP/IP 设计的关系、IP 寻址、子网划分和路由 - 所有这些都是从理论角度来阐述的。然后我们着手研究了如何在 Red Hat 7.0 下初始化 TCP/IP 网络,以及讲述了 Red Hat 下的一些文件是做什么用的。接下来,我们探讨了如何配置网络接口以及如何指定本地局域网和"外部世界"间的路由。最后,本教程探讨了 netstat 程序以及如何使用该程序来检查网络是否正常。
      确实,需要汲取许多知识,但是 TCP/IP 是一个很大的主题,有数百条的分支,一个人不可能在两三天内完全掌握它。事实仍然是:TCP/IP 是因特网的主干,路由是将所有主机和网络"粘"在一起的"粘合剂",而 IP 地址代表我们在这个世界里"冲浪"时所要访问的地方。当您想到这一点,并考虑到过去三、四年人们对计算机领域,特别是因特网的需求飞速增长时,您会觉得这些基础设施确实在非常好地支撑这些。
     
    回复

    使用道具 举报

  • TA的每日心情

    2013-2-8 09:34
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2007-8-2 17:45:53 | 显示全部楼层

    RE:在Linux下配置TCP/IP

    自己先顶一下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 09:04 , Processed in 0.132374 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.