1、第一章 TCP/IP 概述 .3TCP/IP的特点 .3数据通信模型 .3TCP/IP协议结构 .4网络访问层(NETWORK ACCESS LAYER) .5网间层(INTERNET LAYER) .5传输层(TRANSPORT LAYER) .7应用层(APPLICATION LAYER) .10第二章 数据传输 .10寻址、路由选择和多路复用 .11INTERNET的路由结构 .13路由器 .14路由表(ROUTING TABLE) .14地址转换 .15协议、端口和软插口 .15第一章 TCP/IP 概述TCP/IP 是指一整套数据通信协议, 其名字是由这些协议中的两个协议组成的,即传
2、输控制协议(Transmission Control Protocol TCP)和网间协议(Internet ProtocolIP)。虽然还有很多其他协议,但是 TCP 和 IP 显然是两个最重要的协议。TCP/IP的特点TCP/IP 协议有一些重要的特点,以确保在特定的时刻能满足一种重要的需求,即世界范围的数据通信。其特点包括:开放式协议标准。可免费使用,且与具体的计算机硬件或操作系统无关。由于它受到如此广泛的支持,因而即使不通过 Internet 通信,利用 TCP/IP 来统一不同的硬件和软件也是很理想的。与物理网络硬件无关。这就允许 TCP/IP可以将很多不同类型的网络集成在一起,它可
3、以适用于以太网、令牌环网、拨号线、X.25 网络以及任何其它类型的物理传输介质。通用的寻址方案。该方案允许任何 TCP/IP设备唯一的寻址整个网络中的任何其他设备,该网络甚至可以象全球 Internet那样大。各种标准化的高级协议。可广泛而持续地提供多种用户服务。数据通信模型虽然 OSI 模型非常有用,但 TCP/IP 协议并不完全与它的结构相匹配。因此,在讨论TCP/IP 时,我们按下列方法使用该模型中的各层:应用层 应用层是网络中与用户访问有关的协议层。本教材中所说的 TCP/IP 应用程序是在传输层以上发生的任何网络进程。表示层 在 OSI 中,这一层可提供标准的数据表示例程,而在 TC
4、P/IP 中,这种功能是在应用层内处理的。会话层 OSI 的会话层管理协作应用程序间的会话(连接),在 TCP/IP 中,这一功能基本上是在传输层中实现的,是使用软插口(socket)和端口(port)来说明协作应用程序间通信的路径。传输层 在 OSI 参考模型中,传输层可以确保接收方正确的接收到所发出的数据。在 TCP/IP 中,这一功能是由传输控制协议(TCP)完成的。然而,TCP/IP 还提供了第二种传输层服务,即用户的数据报协议(UDP),它并不执行端对端的可靠性检查。网络层 网间协议(IP)通常可看作是 TCP/IP 的网络层,它可以将上层与基本网络隔离开,并处理寻址和数据传输功能。
5、数据链路层 在基本的物理网络上可靠的传输数据是由数据链路层完成的。TCP/IP很少创建数据链路层中的协议,与数据链路层有关的大多数 RFC 只讨论 IP 如何使用现有的数据链路协议。物理层 TCP/IP 不定义各种物理标准,它只使用现有的标准。TCP/IP协议结构在描述 TCP/IP 时,一般只定义如图所示的 4 层模型:应用层、主机对主机传输层、网络层和网络访问层。TCP/IP 协议结构中的各层在 TCP 的应用层中,将数据称为“数据流(stream )”;而在用户数据报协议(UDP)的应用层中,则将数据称为 “报文(message)”。TCP 将它的数据结构称作“段(segment)”,而
6、 UDP 将它的数据结构称作“分组(packet )”;网间层则将所有数据看作是一个块,称为“数据报(datagram)”。TCP/IP 使用很多种不同类型的底层网络,每一种都用不同的术语定义它传输的数据,大多数网络将传输的数据称为“分组”或“帧(frame)”.4 应 用 层 由 使 用 网 络 的 应 用 程 序 和 进 程 组 成3 主 机 对 主 机 传 输 层 提 供 端 对 端 数 据 传 输 服 务2 网 间 层 定 义 数 据 报 和 处 理 数 据 路 由 选 择1 网 络 访 问 层由 访 问 物 理 网 络 的 例 程 组 成数据结构网络访问层(Network Acces
7、s Layer)网络访问层(Network Access Layer)是 TCP/IP 协议结构的最低层,该层中的协议提供了一种数据传送的方法,使得系统可以通过直接连接的网络将数据传送到其它设备,并定义了如何利用网络来传送数据报。网络访问层协议与较高层协议不一样,它必须知道底层网络的各种细节(如它的分组结构、寻址方式等),以便准确的格式化传输的数据,使其遵守网络规定。TCP/IP 网络访问层可以包括 OSI 参考模型中下三层(网络层、数据链路层和物理层)的全部功能。网络访问协议种类繁多,每一个协议都对应一种物理网络标准。该层执行的功能包括将 IP 报文封装成被网络传输的帧,并将 IP 地址映射
8、为网络使用的物理地址。在 UNIX 中实施时,这一层的协议通常以设备驱动程序和有关程序的组合形式出现。这种用网络设备名称标识的模块,通常用来封装数据并传送给网络,而其它程序则执行相关功能,如地址映射。网间层(Internet Layer)网间协议 IP 是 TCP/IP 的核心,也是网间层中最重要的协议。IP 可提供基本的分组传输服务,这是构建 TCP/IP 网络的基础。所有的 TCP/IP 数据都流经 IP,(不管是出去的还是进来的)与它的最终目的地无关。网间协议(Internet ProtocolIP)网间协议的功能包括:1定义数据报,它是在 Internet 上的基本传输单元。2定义网间
9、寻址方案。3在网络访问层和主机对主机传输层之间传输数据。4为数据报选择至远程主机的路由。TCP UDP5执行数据报的分解和重组。IP 是一个“无连接协议”,是要依靠其它层的协议提供错误检测和错误恢复。有时将该网间协议称为“不可行协议”,因为它并不包含错误检测和恢复的程序代码。这并不是说IP 协议是不能信赖的,恰恰相反,它可以正确地将数据传送到已连接的网络,不过它并不检验数据是否被正确地接收。必要是,TCPIP 结构中其它层的协议可以提供这一检验功能。数据报(Datagram)数据报(datagram)是网间协议定义的一种分组格式。如图表示一个 IP 数据报,数据报中前 5 个或 6 个 32
10、位字为控制信息,称为报头。在缺省形式下,报头的长度是 5 个字,第 6 个字是可选的。由于报头的长度是可变的,因而它包含一个称为“Internet 报头长度(IHL )”的字段,以字为单位指出报头的长度。报头包含着传输该分组所需的全部信息。31 16 15 报头IP 数据报的格式网间协议通过检查报头第 5 个字中的目的地址(Destinaation Address)传送数据报,该目的地址是一个标准的 32 位 IP 地址,它可以标识目的网络和在该网络上的特定主机。如果目的地址是本地网络中一个主机的地址,该分组就直接伟送给目的地;如果目的地址不在本地网络中,该分组就被传送到网关(gateway)
11、再进行传送。网关是在不同的物理网络之间交换分组报文的设备。确定使用哪个网关称为路由选择(routing),IP 为每个单独的分组作出路由选择决定。数据报的路由选择Internet 网关通常(或许更精确地说)是指 IP 路由器(router),因为它使用网间协议在网络之间选择分组的路由。在传统的 TCP/IP 术语中,只有两种类型的网络设备,即网关(gatway)和主机(host)。网关可以在网络之间转发分组报文,主机却不能。然而,如版本号 服务类型 总长度 识别码 标志 片偏置量寿命 协议 报头校验和源地址目的地址选项 填空数据区果一台主机连接多个网络(称为多地址主机),则就可以在网络间转发分
12、组报文。当一个多地址主机转发分组报文时,它的作用与其它任何网关一样,可以看成是一个网关。目前的数据通信术语有时将网关与路由器区别开,术语“网关”和“IP 路由器”是可以互换的。数据报的拆分每一种类型的网络都有一个“最大传输单元(MTU )”,即网络上可以传输的最大分组。如果从一个网络上接收到的数据报大于另一个网络的最大传输单元,就必须将它分成较小的“块”才能传输,这一过程称为“拆分(fragmentation)”。如以太网与 X.25 网络在物理上也是不同的。当一个较大的以太网分组在 X.25 网络上传输之前,IP 必须将它分割成较小的分组。传送数据报到传输层当 IP 接收到一个寻址本地主机的
13、数据报时,它必须将该数据报中的数据部分传送给合适的传输层协议,这是利用数据报报头中第 3 个字内的“协议号(Protocol Number)”完成的。每个传输层协议都有一个唯一的协议号,用来在 IP 中标识它自己。网间控制报文协议网间控制报文协议(Internet Control Message Protocol TCMP)是 IP 的一个不可分割的部分。该协议是网间层的一部分,它使用 IP 数据报传输设施去发送报文。它发送的报文可以为 TCP/IP 执行下列控制、错误报告、信息等功能:流控制 当数据报到达的速度太快而无法处理时,目的主机或中间网关 就会发送一个“ICMP 源站抑制报文(ICM
14、P Source Quench Message)”块给发送者,以通知源站暂时停止发送报评议文。检测不可达的目地 当目的地不可到达时,检测到该问题的系统就发送一个“目的 地不可达报文(Destination Unreachable Message)”给数据报的源站。如果不可达的目的地是一个网络或主机,就由中间网关发送该报文;如果是一个不可达的端口,则由目的地主机发送该报文。重定向路由 网关发送“ICMP 重定向报文(ICMP Redirect Message)”通知主机使用另一个网关,这大概是因为另一个网关更合适。 只有当源主机与这二个网关都在同一个网络上时才能使用这一报文。检查远程主机 一台主
15、机可以发送“ICMP 回送报文(ICMP Echo Message)” 以了解远程系统的网间协议是否正在工作。当系统接收到该回 送报文时,便将同样的分组报文发送回源主机。UNIX 的 ping命令就使用这一报文。 传输层(Transport Layer)传输层中两个最重要的协议是传输控制协议(TCP)和用户数据报协议( UDP)。TCP 利用端对端错误检测与纠正功能提供可靠的数据传输服务;而 UDP 提供低开销的无连接数据报传输服务,二者都可以在应用层和网间层之间传输数据。对于特定的应用程序,程序设计者可以选择最适合的服务。用户数据报协议用户数据报协议(User Datagram Protoc
16、olUDP)是一个不可靠的无链接数据报协议,其格式如图:0 15 16 31UDP 的报文格式选用 UDP 作为一种数据传输服务的原因有好几个,如果传输的数据量很少,那末为建立连接和确保可靠传输而花费的开销可能比重新传输全部数据的开销还高。在此情况下,UDP 就是传输层协议最好的选择。使用“查询响应”方式的应用程序也非常适宜使用 UDP,其响应可以用作对查询的肯定确认,如果在一定的时间内没有收到响应,应用程序便发出另一个查询。有些应用程序可提供自己的技术去确保可靠的数据传输,而不需要传输层协议的服务。传输控制协议(TCP)TCP 是一种可靠的、面向连接的、字节流协议。TCP 提供的可靠性是利用
17、一种称为“重传肯定确认(Positive Acknowledgment With RetranmissionPAR)”机制来实现的。换句话说,除非一个利用 PAR 的系统接收到从远端系统发来的肯定确认,否则就重发原数据。在相互协作的 TCP 模块之间交换的数据单元称为“段(Segment )”如图:31 16 15 报头源站端口 目的站端口长度 校验和数据区原端口 目的端口序列号确认号偏移 保留 标志 窗口校验和 紧急指针任选 填空数据区TCP 的段格式每一段包含一个校验值,接收方用它来验证数据是否遭到破坏。如果接受到的数据段没有遭到破坏,接收者就发送一个肯定确认应答给发送者;如果遭到破坏,接
18、收者就废弃该段。过了一段时间后,发送端 TCP 就重新发送没有受到肯定确认的任何段。TCP 是面向连接的,它在两个通信主机之间建立一个逻辑的端对端连接。在传输数据之前,建立对话的两个端点之间交换称为握手的控制信息。TCP 通过在段头第 4 个字的标志字段中设置相应的位来表示一个段的控制功能。TCP 有三个段要交换,故称为“三段试握手”。如图:主机 A 主机 B三段试握手主机 A 通过将一个具有“同步序列号( SYN)”的段发送给主机 B 而开始连接,该段告诉主机 B:主机 A 希望建立连接并且使用哪个序列号作为主机 A 的段的起始号(序列号可用来保持数据的正确顺序);主机 B 用一个带有“确认
19、应答(ACK)”和“同步序列号(SYN) ”位的段响应主机 A,以确认收到了 A 的段,并通知 A 它将从哪个序列号开始;最后,A 发送一个段,确认收到了 B 的段,并开始传送第一个实际数据。当协作双方的模块结束数据传输时,它们就利用包含“无数据发送(FIN)”位的段来交换三段试握手信息,以关闭连接。TCP 发送的是连续的字节流而不是单独的分组。因此要确保发送和接受的顺序,即用 TCP 的段头中的 “序列号”和“确认号”字段来保持这个顺序。 每个系统可选择任意“号”作为起点。但通常情况下 ISN总是 0。 数据中的每个字节是从 ISN开始顺序编号的,因而被发送数据的第一个实际字节的顺序号为 I
20、SN+1(通常为 1)。 确认段(ACK)执行两种功能:肯定确认和流控制。确认:是告诉发送者已经接收了多少数据和接收方还可以接收多少数据。确认号是远端接收到的最后一个字节的顺序号。该标准并不要求每个分组都要单独确认,确认号就是对在该号之前的所有字节的肯定确认。SYNACK, 数 据 SYN, ACK开 始 传 输 数据 窗口字段:含有远端有能力接收的字节数。如图:窗口 6000已接收的数据当前段1 1001 2001 3001 4001 5001 6001 7001起始序号 确认号 序列号 40010 2000TCP 数据流TCP 还负责将从 IP 接收到的数据传送给合适的应用程序。接收该数据
21、的应用程序是用一个 16 位的“端口号”标识的。源端口和目的端口是包含在段头的第一个字节中,使数据正确地传进和传出应用层,这是传输层的一个重要服务。应用层(Application Layer)该层中包含了使用传输层协议去传输数据的所有协议,应用层协议很多,一些著名的应用层协议有:TELNET 这是网络终端协议,可通过网络提供远程登陆。FTP 这是文件传输协议,可用于交互式文件传输。SMTP 这是简单邮件传输协议,可用于传送电子邮件。此外还有:域名服务(Domain Name ServiceDNS):可以将 IP地址映射成赋予网络设备的名字。路由信息协议(Routing Information
22、ProtocolRIP):路由选择是 TCP/IP的工作核心,网络设备使用 RIP去交换路由选择信息。网络文件系统(Network File SystemNFS):该协议允许文件被网络上的各种主机共享。综上所述,FTP、TELNET、和 SMTP基本上是依赖于 TCP的,而 NFS、DNS 和 RIP则基本上依赖于 UDP。一些应用程序型协议,如外部网关协议(Exterior Gateway ProtocolEGP),它是另一个路由协议,它们不使用传输层服务,而直接使用 IP服务。第二章 数据传输我们已经了解到 TCP/IP 是一个四层结构。本章将更详细地探讨数据是如何在网络的协议之间和系统之
23、间传送的,以及如何利用地址路由将数据送到它的目的地、如何为了构建子网而在本地重定义寻址规则。寻址、路由选择和多路复用为了在二个 Internet 主机之间传送数据,就必须通过网络将数据传送给相应的主机,并在该主机内传送给相应的用户或进程。TCP/IP 利用三种方法来完成这些任务:寻址(Addressing ) IP 地址可以唯一地标识 Internet 中的每一台主机,它可以将数据传送到相应的主机。路由选择(Routing) 网关可以将数据传送到相应的网络。多路复用(Multiplexing) 协议和端口号可以将数据传送到主机内相应的软件模块。其中的每一个功能(在主机之间寻址、在网络之间选择路
24、由和在层间多路复用)对于通过 Internet 在两个协作应用程序间传送数据都是必需的。IP 地址网间协议(IP)以数据报的形式在主机之间传输数据,每个数据报传送到一个地址,该地址包含在该数据报报头的目的地址(第个字)中。目的地址是一个位的 IP 地址,它包含着足够的信息以唯一地标识一个网络和该网络中的特定主机。一个 IP 地址由一个网络部分和一个主机部分组成,但在每个 IP 地址中它们的格式是不同的。用来标识网络和主机的地址位数将根据地址的“类型”而变,类、类和类是三个主要的地址类型。通过检查一个地址的前几位,IP 软件很快就可以确定地址的类别及其结构。IP 遵循以下规则确定地址的类别:如果
25、 IP 地址的第一位是,它就是类网络的地址。类地址的第位标识其地址类别,接着的位标识其网络。最后的位标识主机。类网络的编号小于128,但每个类网络可以包含数百万台主机。如果该地址的前位是,它就是类网络地址。在类地址中,前位标识类,接着的位标识网络,最后位标识主机。可以有数千个类网络编号,每个类网络可以包含数千台主机。如果该地址的前位是,它就是类网络地址。在类地址中,前位是类标识符,接着的位是网络地址,最后位标识主机。有数百万个类网络编号,而每个类网络包括的主机数量少于台。如果该地址的前位是,它就是一个专门保留的地址。这类地址有时称为类地址,实际上它并不指向特定的网络,目前这一范围内的编号是赋予广播地址。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。