tcp/ip详解第一卷

所需积分/C币:46 2017-11-08 21:42:57 13.03MB PDF
收藏 收藏
举报

tcp/ip详解第一卷 tcp/ip详解第一卷 tcp/ip详解第一卷
Chinaopub.com 第l章概述 3 「下载 在80年代,网络不断增长的原因之一是大家都意识到只有一台孤立的计算机构成的“孤 岛”没有太大意义,于是就把这些孤立的系统组在一起形成网络。随着这样的发展,到了90 年代,我们又逐渐认识到这种由单个网络构成的新的更大的“岛屿”同样没有太大的意义 于是,人们又把多个网络连在一起形成一个网络的网络,或称作互连网( (internet)。一个互连 网就是一组通过相同协议族互连在一起的网络。 构造互连网最简单的方法是把两个或多个网络通过路由器进行连接。它是一种特殊的用 于网络互连的硬件盒。路由器的好处是为不同类型的物理网络提供连接:以太网、令牌环网、 点对点的链接和FDDI(光纤分布式数据接囗)等等。 这些盒子也称作IP路由器( IP Router),但我们这里使用路由器( Router)这个术语 从历史上说,这些盒子称作网关( gateway),在很多TCP/IP文献中都使用这个术语。 现在网关这个术语只用来表示应用层网关:一个连接两种不同协议族的进程(例如, TCP/IP和IBM的SNA),它为某个特定的应用程序服务(常常是电子邮件或文件传输 图1-3是一个包含两个网络的互连网:一个以太网和一个令牌环网,通过一个路由器互相 连接。尽管这里是两台主机通过路由器进行通信,实际上以太网中的任何主机都可以与令牌 环网中的任何主机进行通信。 在图1-3中,我们可以划分出端系统( End system)(两边的两台主机)和中间系统 ( Intermediate system)(中间的路由器)应用层和运输层使用端到端(End-to-end)协议。在 图中,只有端系统需要这两层协议。但是,网络层提供的却是逐跳(Hop-by-hop)协议,两 个端系统和每个中间系统都要使用它。 FTP FTP协议 FTP 客户 服务器 TCP协议 TCP TCP 路由器 IP协议 协议 IP IP 以太网区以太网协议以太网令牌不驱区令牌不协议「令牌不区 动程序 动程序动程序 动程序 以太网 令牌环 图1-3通过路由器连接的两个网络 在TCP/IP协议族中,网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快 地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面,TCP在不可 靠的I层上提供了一个可靠的运输层。为了提供这种可靠的服务,TCP采用了超时重传、发 送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能。 从定义上看,一个路由器具有两个或多个网络接口层(因为它连接了两个或多个网络) TCPP详解,卷1:协议 China-pub.com 下载 任何具有多个接口的系统,英文都称作是多接口的( multihomed)。一个主机也可以有多个接口, 但一般不称作路由器,除非它的功能只是单纯地把分组从一个接口传送到另一个接口。同样, 路由器并不一定指那种在互联网中用来转发分组的特殊硬件盒。大多数的TCP/IP实现也允许 个多接口主机来担当路由器的功能,但是主机为此必须进行特殊的配置。在这种情况下 我们既可以称该系统为主机(当它运行某一应用程序时,如FTP或 Telnet),也可以称之为路 由器(当它把分组从一个网络转发到另一个网络时)。在不同的场合下使用不同的术语。 互联网的目的之一是在应用程序中隐藏所有的物理细节。虽然这一点在图1-3由两个网络 组成的互联网中并不很明显,但是应用层不能关心(也不关心)一台主机是在以太网上,而 另一台主机是在令牌环网上,它们通过路由器进行互连。随着增加不同类型的物理网络,可 能会有20个路由器,但应用层仍然是一样的。物理细节的隐藏使得互联网功能非常强大,也 非常有用。 连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器则是 在网络层上对网络进行互连。网桥使得多个局域网(LAN)组合在一起,这样对上层来说就 好像是一个局域网。 TCPP倾向于使用路由器而不是网桥来连接网络,因此我们将着重介绍路由器。文献 Perlman1992]的第12章对路由器和网桥进行了比较。 1.3 TCP/IP的分层 在TCP/IP协议族中,有很多种协议。图1-4给出了本书将要讨论的其他协议。 1用户 用 用户 进程 进程 进程 进程 应用层 TCP UDP运输层 「1 ICMP IP IGMP 网络层 ARP 硬件 接口 RARP 链路层 媒体 图1-4TCPP协议族中不同层次的协议 Chia°de0N 第l章概述 5 「下载 TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议 虽然TCP使用不可靠的I服务,但它却提供一种可靠的运输层服务。本书第17~22章将 详细讨论TCP的内部操作细节。然后,我们将介绍一些TCP的应用,如第26章中的 Telnet和 Rlogin、第27章中的FTP以及第28章中的SMTP等。这些应用通常都是用户进程 UDP为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息 单元(例如,发送方指定的一定字节数的信息)但是与TCP不同的是,UDP是不可靠的,它 不能保证数据报能安全无误地到达最终目的。本书第11章将讨论UDP,然后在第14章(DNS: 域名系统),第15章(TFTP:简单文件传送协议),以及第16章( BOOTP:引导程序协议) 介绍使用UDP的应用程序。SNMP也使用了UDP协议,但是由于它还要处理许多其他的协议 因此本书把它留到第25章再进行讨论。 IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统 和每个中间路由器中的IP层在互联网中迸行传输。在图1-4中,我们给出了一个直接访问IP的应 用程序。这是很少见的,但也是可能的(一些较老的选路协议就是以这种方式来实现的。当然 新的运输层协议也有可能使用这种方式)第3章主要讨论I协议,但是为了使内容更加有针对 性,一些细节将留在后面的章节中进行讨论。第9章和第10章讨论I如何迸行选路。 ICMP是IP协议的附属协议。P层用它来与其他主机或路由器交换错误报文和其他重要信息。 第6章对ICMP的有关细节进行讨论。尽管CMP主要被I使用,但应用程序也有可能访问它。我 们将分析两个流行的诊断工具,Pmg和 traceroute(第7章和第8章)它们都使用了CMQ。,德中 IGMP是 Internet组管理协议。它用来把一个UDP数据报多播到多个主机。我们在第12章中 描述广播(把一个UDP数据报发送到某个指定网络上的所有主机)和多播的一般特性,然后 在第13章中对IGMP协议本身进行描述 ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环 网)使用的特殊协议,用来转换P层和网络接口层使用的地址。我们分别在第4章和第5章对 这两种协议进行分析和介绍。 1.4互联网的地址 互联网上的每个接口必须有一个唯一的 Internet地址(也称作P地址)。IP地址长32bit。 Internet地址并不采用平面形式的地址空间,如1、2、3等。IP地址具有一定的结构,五类不同 的互联网地址格式如图1-5所示。 7位 24 位 A类[0网络号上 主机号 14位 16位 B类10 网络号 主机号 21位 8位 类 网络号 主机号了 28位 D类区2o 多播组号 27位 E类[121|0 (留待后用) 图1-5五类互联网地址 6 TCPP详解,卷1:协议 Chinapub.com 下载 这些3位的地址通常写成四个十进制的数,其中类型范围 每个整数对应一个字节。这种表示方法称作“点分十 A 0000到12725525525 进制表示法( Dotted decimal notation。例如,作者 B128000到191255255255 C192000到223255255255 的系统就是一个B类地址,它表示为:140.252.13.33 224000到2392552552 区分各类地址的最简单方法是看它的第一个十进 E240.000到24725525255 制整数。图1-6列出了各类地址的起止范围,其中第 图1-6各类P地址的范围 一个十进制整数用加黑字体表示。 需要再次指出的是,多接口主机具有多个IP地址,其中每个接口都对应一个IP地址 由于互联网上的每个接口必须有一个唯一的IP地址,因此必须要有一个管理机构为接入互 联网的网络分配IP地址。这个管理机构就是互联网络信息中心( Internet network Information Centre),称作 InterNIC。 InterNIC只分配网络号。主机号的分配由系统管理员来负责 Internet注册服务(IP地址和DNS域名过去由NC来负责其网络地址是nic. ddn. mil。 1993年4月1日, InterNIc成立。现在,NIC只负责处理国防数据网的注册请求,所有其他 的 nternet用户注册请求均由 InterNIC负责处理,其网址是:rs. internic.net。 事实上 InterNIC由三部分组成:注册服务(rs. internic.net),目录和数据库服 务(ds. internic.net),以及信息服务(is. internic.net)有关 INternIC的其他 信息参见习题1.8。 有三类IP地址:单播地址(目的为单个主机入广播地址(目的端为给定网络上的所有主 机)以及多播地址(目的端为同一组内的所有主机)。第12章和第13章将分别讨论广播和多播 的更多细节 在3.4节中,我们在介绍IP选路以后将进一步介绍子网的概念。图3-9给出了几个特殊的IP 地址:主机号和网络号为全0或全1。 1.5域名系统 尽管通过P地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还 是主机名。在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供I地址和 主机名之间的映射信息。我们在第14章将详细讨论DNS。 现在,我们必须理解,任何应用程序都可以调用一个标准的库函数来查看给定名字的主机 的P地址。类似地,系统还提供一个逆函数—给定主机的IP地址,查看它所对应的主机名。 大多数使用主机名作为参数的应用程序也可以把I地址作为参数。例如,在第4章中当我 们用 Telnet进行远程登录时,既可以指定一个主机名,也可以指定一个I地址。 1.6封装 当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作 串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部 信息),该过程如图1-7所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)。PP传给网络接囗层的数据单元称作P数据报( IP datagram)。通过以太网传输的比特 流称作帧( frame)。 Chia°de0 第l章概述 7 「下载卜 图1-7中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。在后面的章节中 我们将详细讨论这些帧头的具体含义 以太网数据帧的物理特性是其长度必须在46~1500字节之间。我们将在4.5节遇到最小长 度的数据帧,在2.8节中遇到最大长度的数据帧。 所有的 IInternet标准和大多数有关TCP/IP的书都使用octe这个术语来表示字节。使 用这个过分雕琢的术语是有历史原因的,因为 TCP/IP的很多工作都是在DEC-10系统上 进行的,但是它并不使用8bit的字节。由于现在几乎所有的计算机系统都采用8bit的字 节,因此我们在本书中使用字节(byte)这个术语 更准确地说,图1-7中IP和网络接口层之间传送的数据单元应该是分组( packet) 分组既可以是一个P数据报,也可以是P数据报的一个片( fragment)我们将在11.5节 讨论ⅣP数据报分片的详细情况。 用户数据 应用程序 「部 部用户数据 TCP ICP首部 应用数据 ICP段 IP IP首部TCP首部 应用数据 IP数据报 以太网 驱动程序 以太网P首部 以太网 首部 TCP首部 应用数据 尾部 14 以太网 4 以太网帧 46~1500字节 图1-7数据进入协议栈时的封装过程 UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称作UDP数据报 ( UDP datagram),而且UDP的首部长为8字节。 回想1.3节中的图1-4,由于TCP、UDP、ICMP和GMP都要向IP传送数据,因此IP必须在 生成的ⅣP首部中加入某种标识,以表明数据属于哪一层。为此,IP在首部中存入一个长度为 8bit的数值,称作协议域。1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表 示为UDP协议 类似地,许多应用程序都可以使用TCP或UDP来传送数据。运输层协议在生成报文首部 时要存入一个应用程序的标识符。TCP和UDP都用一个16bi的端口号来表示不同的应用程序。 TCP和UDP把源端口号和目的端口号分别存入报文首部中。 网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入 TCPP详解,卷1:协议 下载 某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16bit的帧 类型域。 1.7分用 当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各 层协议加上的报文首部。每层协议盒都要去检査报文首部中的协议标识,以确定接收数据的 上层协议。这个过程称作分用( Demultiplexing),图1-8显示了该过程是如何发生的。 应用程序 应用程序 应用程序…应用程序 根据TCP或UDP首 部中的端口号进行 分用 TCP UDP ICMP IGMP 根据IP首部中的协 议值进行分用 IP ARP RARP 根据以太网首部中 的帧类型进行分用 以太网 驱动程序 进入的帧 图1-8以太网数据帧的分用过程 为协议ICMP和IGMP定位一直是一件很棘手的事情。在图1-4中,把它们与IP放在 同一层上,那是因为事实上它们是IP的附属协议。但是在这里,我们又把它们放在IP层 的上面,这是因为ICMP和GMP报文都被封装在P数据报中。 对于ARP和RARP,我们也遇到类似的难题。在这里把它们放在以太网设备驱动程 序的上方,这是因为它们和IP数据报一样,都有各自的以太网数据帧类型。但在图24 中,我们又把ARP作为以太网设备驱动程序的一部分,放在IP层的下面,其原因在逻 辑上是合理的。 这些分层协议盒并不都是完美的 当进一步描述TCP的细节时,我们将看到协议确实是通过目的端口号、源IP地址和源端口 号进行解包的。 1.8客户-服务器模型 大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服 务器为客户提供一些特定的服务。 可以将这种服务分为两种类型:重复型或并发型。重复型服务器通过以下步骤进行交互 Chinaopub.com 「下载 第l章概述 Il.等待一个客户请求的到来 I2.处理客户请求。 I3.发送响应给发送请求的客户。 I4.返回1步。 重复型服务器主要的问题发生在I2状态。在这个时候,它不能为其他客户机提供服务 相应地,并发型服务器采用以下步骤 C1.等待一个客户请求的到来。 C2.启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务 或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器 对客户的全部请求进行处理。处理结束后,终止这个新服务器。 C3.返回C1步 并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说 每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户 服务。 对服务器,而不是对客户进行分类的原因是因为对于一个客户来说,它通常并不能够辨 别自己是与一个重复型服务器或并发型服务器进行对话。 一般来说,TCP服务器是并发的,而UDP服务器是重复的,但也存在一些例外。我们将 在11.12节对UDP对其服务器产生的影响进行详细讨论,并在18.11节对TCP对其服务器的影响 进行讨论 1.9端口号 面已经指出过,TCP和UDP采用16bit的端口号来识别应用程序。那么这些端口号是如 何选择的呢? 服务器一般都是通过知名端口号来识别的。例如,对于每个TCPP实现来说,FTP服务 器的TCP端口号都是21,每个 Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协 议)服务器的UDP端口号都是69。任何TCP/P实现所提供的服务都用知名的1~1023之间的端 口号。这些知名端口号由 nternet-号分配机构( Internet Assigned Numbers Authority,IANA) 来管理。 到1992年为止,知名端口号介于1~255之间。256~1023之间的端口号通常都是由 Unⅸx系统占用,以提供一些特定的Unⅸx服务—也就是说,提供一些只有Unⅸx系统才 有的、而其他操作系统可能不提供的服务。现在IANA管理1~1023之间所有的端口号。 nternet扩展服务与Unⅸ特定服务之间的一个差别就是Tene和 Rlogin。它们二者都 允许通过计算机网络登录到其他主机上。 Telnet是采用端口号为23的TCPP标准且几乎 可以在所有操作系统上进行实现。相反,Rogi最开始时只是为Uniⅸx系统设计的(尽管 许多非Unⅸx系统现在也提供该服务),因此在80年代初,它的有名端口号为513 客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以 了。客户端口号又称作临时端口号(即存在时间很短暂)。这是因为它通常只是在用户运行该 客户程序时才存在,而服务器则只要主机开着的,其服务就运行 大多数 TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其 10CP解,卷:协议 下载 他服务器预留的( Internet上并不常用的服务)。我们可以在后面看见许多这样的给临时端口分 配端口号的例子。 Solaris2.2是一个很有名的例外。通常TCP和UDP的缺省临时端口号从32768开始。 在E.4节中,我们将详细描述系统管理员如何对配置选项进行修改以改变这些缺省项。 大多数Unⅸx系统的文件/etc/ servlces都包含了人们熟知的端口号。为了找到 Telnet服 务器和域名系统的端口号,可以运行以下语句 sun grep telnet /etc/services telnet23/tcp称它使用TCP端口号23 sun grep domain /etc/services domain53/udp称它使用UDP端口号53和TCP端口号53 domain 53/tcp 保留端口号 Unⅸx系统有保留端口号的概念。只有具有超级用户特权的进程才允许给它自己分配一个 保留端口号。 这些端口号介于1~1023之间,一些应用程序(如有名的 Rlogin,26.2节)将它作为客户 与服务器之间身份认证的一部分。 1.10标准化过程 究竟是谁控制着TCP/IP协议族,又是谁在定义新的标准以及其他类似的事情?事实上 有四个小组在负责 Internet技术。 l) Internet协会(ISOC, Internet societ!y)是一个推动、支持和促进 Internet不断增长和发 展的专业组织,它把 , Internet作为全球研究通信的基础设施。 2) Internet体系结构委员会(IAB, Internet Architecture Board)是一个技术监督和协调的 机构。它由国际上来自不同专业的15个志愿者组成,其职能是负责 Internet标准的最后编辑和 技术审核。IAB隶属于ISOC。 3) Internet工程专门小组(IETF, Internet Engineering Task Force)是一个面向近期标准的组 织,它分为9个领域(应用、寻径和寻址、安全等等)ETF开发成为 nternet标准的规范。为帮 助TF主席,又成立了 terne工程指导小组(ISG, Internet Engineering Steering Group 4) Internet研究专门小组(IRIF, Internet research task Force)主要对长远的项目进行研究。 IRTF和IETF都隶属于IAB。文献[ Crocker1993]提供了关于 Internet内部标准化进程更为详 细的信息,同时还介绍了它的早期历史。 1.11 RFC 所有关于 Internet的正式标准都以RFC( Request for Comment)文档出版。另外,大量的 RFC并不是正式的标准,出版的目的只是为了提供信息。RFC的篇幅从1页到200页不等。每 项都用一个数字来标识,如RFC1122,数字越大说明RFC的内容越新。 所有的RFC都可以通过电子邮件或用FTP从 Internet上免费获取。如果发送下面这份电子 邮件,就会收到一份获取RFC的方法清单

...展开详情
试读 127P tcp/ip详解第一卷
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    • 签到新秀

      累计签到获取,不积跬步,无以至千里,继续坚持!
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    tcp/ip详解第一卷 46积分/C币 立即下载
    1/127
    tcp/ip详解第一卷第1页
    tcp/ip详解第一卷第2页
    tcp/ip详解第一卷第3页
    tcp/ip详解第一卷第4页
    tcp/ip详解第一卷第5页
    tcp/ip详解第一卷第6页
    tcp/ip详解第一卷第7页
    tcp/ip详解第一卷第8页
    tcp/ip详解第一卷第9页
    tcp/ip详解第一卷第10页
    tcp/ip详解第一卷第11页
    tcp/ip详解第一卷第12页
    tcp/ip详解第一卷第13页
    tcp/ip详解第一卷第14页
    tcp/ip详解第一卷第15页
    tcp/ip详解第一卷第16页
    tcp/ip详解第一卷第17页
    tcp/ip详解第一卷第18页
    tcp/ip详解第一卷第19页
    tcp/ip详解第一卷第20页

    试读已结束,剩余107页未读...

    46积分/C币 立即下载 >