1.27k likes | 1.57k Views
第 6 章 Internet 网络基础 6.1 Internet 简介 Internet 是一种全球性的网际网,九五年美国联邦网络理事会对其定义为: Internet 是全球性的信息系统: 1. 它是基于 Internet 协议( IP )及其补充部分的全球唯一的地址空间逻辑连接网络。 2. 它通过使用 TCP/IP 协议及其补充部分或其他 IP 兼容协议支持通信。 3. 它公开或非公开地提供、使用或允许访问存放于通信和相关基础结构的高级别服务。. 6.1.1 Internet 的产生和发展历史
E N D
第6章 Internet 网络基础 6.1 Internet简介 Internet是一种全球性的网际网,九五年美国联邦网络理事会对其定义为: Internet是全球性的信息系统: 1.它是基于Internet协议(IP)及其补充部分的全球唯一的地址空间逻辑连接网络。 2.它通过使用TCP/IP协议及其补充部分或其他IP兼容协议支持通信。 3.它公开或非公开地提供、使用或允许访问存放于通信和相关基础结构的高级别服务。
6.1.1 Internet的产生和发展历史 Internet的前身是美国国防部高级计划署(RAPA)于69年研究开发的一个实验性计算机网络ARPAnet。初始时ARPAnet使用网络控制程序NCP(Network Control Program)作为主要通信协议,至80年代初,新一代通用协议TCP/IP取代了NCP。RAPAnet的分组交换技术、多路由技术和两级子网概念,为网络的发展作出了重要贡献,其使用的TCP/IP协议已成为Internet普遍使用的协议标准。 84年,美国威斯康辛大学成功开发了用于域名解析的域名服务器DNS。 86年,美国国家科学基金会NSF(National Science Foundation)在RAPAnet的基础上建成了NSFnet初级主干网络,带宽为56kb,称为T1级;90年主干带宽升级为1.544Mb,称为T2级,取代了RAPAnet;92年再次升级为45Mb,称为T3级。NSFnet的建成标志着Internet的出现,成为Internet的主干网络。
89年,核物理学家Tim Berncre Lee提出WWW(World Wide Web—环球网)的概念。 91年美国三大区域网联合成立了商用Internet交换协会。 93年瑞士科学家CERH宣布免费提供WWW服务,该技术的注入决定性地改变了Internet。 6.1.2 Internet的特点 1.开放性。Internet是一个无中心网,它具有将不同的网络互联起来的功能;再生能力强,一个局部网络的破坏不会影响整个网络系统的运行。 2.便捷性。可以提供移动通信、多媒体通信等多种服务; 3.个性化。因特网以个人化通信作为数据通信的主体,本身没有强加给用户必须接受的管理机构的管理,即因特网是属于用户自己的网络。 4.高新技术密集、增长迅速、覆盖面广,经济规模巨大。
信息源 第一层 主干网 … … 第二层 区域网 区域网 区域网 … 用户驱动网 用户驱动网 第三层 6.1.3 Internet的构造形式 Internet分为三层结构:底层为大学、企业网,是连接各类用户的驱动网,中间层为地区网络,最高层为骨干网,最有名的是NSFnet,目前传输速率达到了T3级,计划近期将以超高速同步光纤网SONET作为基础,速率提高到51M~12.5Gb,成为Internet的基底。
6.2 因特网协议 6.2.1 TCP/IP概述 因特网是在TCP/IP(Transmission Control Protocol/Internet Protocol)协议的支持下工作的。TCP/IP是一个协议族,利用它可以方便地实现多个网络的无缝连接,包括异型网络的互连,以及对多种传输介质和拓扑结构的支持,目前已成为事实上的网际互连标准。TCP和IP是协议族中的两个核心协议, TCP/IP体系结构如图6-1所示。其中: 应用层:提供面向应用的高层协议。常见的有:文件传输协议FTP、虚拟终端协议VTP、远程登录协议TELNET、电子邮件协议SMTP、域名系统DNS、网管协议SNMP、访问WWW站点的HTTP协议等。 图6-1 TCP/IP体系结构
传输层:为不同端点的应用进程间提供透明的无差错数据传输及复用服务。传输层主要定义了两个传输协议:一个是面向连接的传输控制协议TCP(Transmission Control Protocol),另一个是可选择的无连接用户数据报协议UDP(User Datagram Protocol)。 网络互连层:本层是TCP/IP的核心,负责将分组独立地从信源机传送到信宿机,提供的是一种不可靠的无连接服务,主要解决路由选择、拥塞控制和网络互连等问题。本层协议称为网际互连协议IP(Internet Protocol)。为了实现数据的跨网交换,IP分组格式具有较强的兼容性,对分组尺寸无要求,采用IP地址表示。 网络接口层:实现IP分组的物理传输/将物理帧封装成IP分组,这一层与各物理网络的实现无关,无专用协议,只要能够传输IP分组,可以是任何协议,所以,TCP/IP可运行于几乎所有的物理网络上。但若采用串行通信线路连接主机与网络(如拨号上网),则需运行专门的协议SLIP(Serial Line IP)或PPP(Point-to Point Protocol)协议,其中:
HTTP SMTP FTP TELNET DNS SNMP IP话音业务 应用层 TCP DUP 传输层 IP和ICMP 网络互连层 网络接口层 低层协议 图6-2 因特网协议族构成 SLIP提供在串行线路上封装IP分组的简单方法,使远程用户通过电话线和高速MODEM可方便地接入TCP/IP网络。SLIP协议的缺点是不支持动态IP地址;SLIP无协议类型域,只能支持IP协议,兼容性差;传输差错只能由上层进行处理,或选择具有纠错能力的MODEM来解决。 PPP是一种点到点通信协议,可支持多种网络层协议,如IP、IPX、OSI、CLNP、XNS等;支持动态分配的IP地址;为通信双方提供协商手段;具有差错检测能力。PPP正取代SLIP。 TCP/IP协议族的构成如图6-2所示。
A运行TCP/IP B运行TCP/IP TCP提供不同应用进程间的逻辑通信 TCP段 数据 数据 TCP段 路由器运行IP TCP段 TCP段 IP分组 IP分组 令牌帧 以太帧 IP分组 IP分组 IP分组 令牌帧 以太帧 IP分组 IP分组 令牌环网 广域网 以太网 图6-3 TCP与IP协同工作原理 通常,TCP和IP是一起使用的,图6-3描述了它们的工作原理。 从图中可以看出,TCP为不同的应用进程间提供逻辑通信,而IP是为不同的主机间提供逻辑通信。事实上,TCP通过端口号实现不同进程的逻辑连接,而IP通过IP地址实现不同主机的逻辑连接。
比特 0 4 8 16 19 24 31 版本 服务类型 总长度 首部长度 20个字节固定长度 片偏移 标识 标志 生存时间 协议 首部校验和 首 部 源IP地址 目的IP地址 长度可变的选项 填充 可变长度 数据部分 6.2.2 网际协议IP 在TCP/IP体系中,网络层被称为网际层或IP层,IP协议是网际层的核心协议,它是一种不可靠、无连接的数据报传输服务协议,它不提供差错校验和跟踪。对于错误(如报文段缺损、重序、失序等),IP协议将丢弃该数据报,然后根据网际控制报文协议ICMP发送信息报文给源主机。IP协议向传输层提供统一的IP数据报,屏蔽了下层物理网络在帧结构和地址上的表示差异,从而使得各种异构物理网络的互联变得容易了。 一、IP数据报的格式
0 1 2 3 4 5 6 7 优先级 D T R C 未用 1.版本:IP协议版本号,占4bit 2.首部长度:4bit,表示首部所占单位数(一个单位为4字节),由此知首部最大长度为15×4=60字节(24可表示0~15,其中0不用)。当IP分组的首部长度不是4的整数倍时,必须利用填充字段加以填充。若不选用任何选项,则首部固定长度为20字节。 3.服务类型:占8bit,用于指示路由器以获得更好的服务。其构成如图6-4所示。 图6-4 服务类型域结构 ⑴ 优先级:IP数据报支持000~111八级优先级服务策略。 ⑵ 延迟比特D:D=1表示要求低延迟,D=0表示正常。 ⑶通信量比特T:T=1表示要求高吞吐量,T=0表示正常。 ⑷ 可靠性比特R:R=1表示要求更高的可靠性(减少数据报被路由器丢弃的概率),R=0表示正常。 ⑸ 成本比特C:C=1表示要求低成本传输,C=0表示正常。
在服务类型TOS字段中,服务类型参数(第3~6bit)的运用规则是:每一个组合,最多只能有一个参数位为1,其余3位参数为0。默认值为0000。在服务类型TOS字段中,服务类型参数(第3~6bit)的运用规则是:每一个组合,最多只能有一个参数位为1,其余3位参数为0。默认值为0000。 4.总长度:占16bit,该长度为首部与数据长度之和。最大长度不超过64kB。 5.标识:占16bit,用以对同一数据报的不同分片进行标识,以便重新组装。 6.标志:占3bit,目前只使用前2个bit。其中: • 最低位记为MF(More Fragment),MF=1表示“后面还有数据报分片”;MF=0表示这是最后一个分片。 • 中间位记为DF(Don’t Fragment),DF=1表示“不能分片”;仅当DF=0才允许分片。 7.片偏移:占22bit,记录当前分片在原数据报中的相对位置。片偏移以8个字节为单位,所以每个分片的长度必为8个字节的整数倍。
数据部分共3800字节 20字节 首部 字节0 1400 2800 3799 首部 首部 首部 分片2:偏移=1400/8=175 分片2:偏移=2800/8=350 分片1:偏移=0/8=0 图6-4 数据报的分片 表6-2 IP数据报首部中与分片有关的字段设置 总长度 (字节) 标识 标志 片偏移 MF DF 原数据报 4000 12345 0 0 0 数据报片1 1420 12345 1 0 0 数据报片2 1420 12345 1 0 175 数据报片3 1020 12345 0 0 350 例如,某数据报总长为4000B,子网中帧格式要求的最大传送单元MUT(Maximum Transfer Unit)为1420字节,除去首部长度20字节,需要将该数据报划分为3个分片。如图6-4所示。
8.生存时间TTL(Time To Live):TTL为一个路径长度计数器,其值为任意两个主机间的路由器数的2倍。数据报在传输过程中,每经过一个路由器,TTL便减1。若TTL的值为0,则路由器丢弃该数据报。 9.协议:占8bit,指示该数据报使用何种协议,以便使目的主机的IP层知道应将本数据报上交给哪个进程。 10.首部校验和:占16bit,用于对数据报首部进行检验。检验方法是:初始时发送端将校验和字段置为0,并将首部划分为若干16bit组,然后按1的补码运算计算出这些16bit组的和,最后将和的反码写入校验和字段。检验方法是由接收端对收到的数据报首部也按相同的方法进行二进制反码加运算,所得结果的反码即为校验结果。若结果为0,表示传输正确,否则出错,接收端丢弃该数据报。由于IP数据报每转发一次,TTL等字段都会发生改变,所以,转发路径上的每一个路由器都需要重新计算检验和。 11.源地址:占4个字节。 12.目的地址:占4个字节。源地址和目的地址均采用IP地址表示,且不会因为不同的路由算法和数据报分片而改变。
各种应用层协议 (TELNET,FTP,SMTP等) 应用层 传输层 TCP,UDP IP ICMP IGMP 网际层 ARP RARP 与各种网络的接口 网络接口层 图6-4 TCP/IP体系结构中各协议的关系 二、与IP协议相关的其它协议 网际协议IP是该层的核心协议,与其配套使用的还有下述四个协议: •地址解析协议ARP(Address Resolution Protocol) •逆地址解析协议RARP(Reverse Address Resolution Protocol) •网际控制报文协议ICMP(Internet Control Message Protocol) •网际组管理协议IGMP(Internet Group Management Protocol) 图6-4为TCP/IP体系结构中各协议的关系。
1、地址解析协议ARP和逆地址解析协议RARP IP地址是网络层使用的逻辑地址,不能直接用来通信。因此,当一个IP数据报要交给网络接口层处理时,需要通过ARP协议将该数据报的IP地址转换成MAC帧可以识别的物理地址。这种转换通过地址映射表实现。为了适应网络的拓扑变化,ARP还需要具有对地址映射表的动态更新能力。实现方法是由源主机发出一个ARP请求报文,在网络中广播源IP地址、源MAC地址以及目的IP地址,查找目的MAC地址。网络中与目的IP地址相同的主机向源主机回送一个应答报文,告知对应的MAC地址,再由源主机更改ARP缓存中的地址映射表。 与ARP配对使用的是逆地址解析协议RARP,用于MAC地址到IP地址的逆转换。其实现方法与ARP相同。
2、网际控制报文协议ICMP (Internet Control Message Protocol) IP协议提供了一种无连接的不可靠服务,主机对于发送出去的数据报没有任何控制手段,因此,必须通过一种查询、控制机制来了解和报告差错。网际控制报文协议ICMP就是为解决上述问题而设计的。 ICMP报文包括两种类型:差错报告报文和询问报文。 ① ICMP差错控制报文:出现下列五种差错之一时,向源主机报告 •目的站不可达:当路由器或主机不能交付数据报时。 •源站抑制:当路由器或主机由于拥塞而丢弃数据报时。 •超时:包括两种情况:当路由器收到生存时间TTL为零的数据报而将其丢弃时;当目的站不能在预定时间内收到全部数据报片而丢弃已收到的数据报片时。 •参数问题:当路由器或主机收到的数据报的首部中含有错误时。 •改变路由:当需要更新路由表时。
② ICMP询问报文:当出现下列四种情况之一时,路由器或主机应向某个特定的主机发送询问报文: •回送请求和回答:当路由器或主机需要对某个特定站点进行测试时,收到询问报文的目的主机应向源主机予以应答。如PING测试。 •时间戳请求和回答:源主机向某个路由器或主机询问时间时,目的主机应予以应答。常见的应用如时钟同步和测量时间。 •掩码地址请求和回答:主机向子网掩码服务器询问某个接口的地址掩码时,子网掩码服务器应予以应答。 •路由器询问和通告:主机使用路由器询问和通告报文了解连接在本网络上的路由器的工作状况,路由器应答路由选择信息。
图6-5(a) 一对多单播 图6-5(b) 应用级多播 图6-5(c) 显式多播 3、网际组管理协议IGMP(Internet Group Managemet Protocol) IGMP协议是专为IP多播(multicast)设计的。多播是一种一对多的通信方式,有3种解决方案:一对多单播、应用级多播和显式多播,如图6-5所示。 显然,第三种方法最有效地利用了网络带宽,它通过多播路由器来实现,同时也需要更多的网络层支持。
128.59.16.20 IGMP 128.34.108.63 128.119.40.186 IGMP IGMP 多播组 226.17.30.197 128.34.108.60 IGMP 图6-6 多播组中一个地址表示实现一个数据报向同一多播组中所有成员交付的示意图 IGMP协议运行于一台主机及与其直接相连的多播路由器之间,通过多播地址(间接地址)帮助多播路由器识别多播组的成员主机,实现成员主机的加入、退出,以及成员主机间的信息传输。图6-6中,有4台主机与多播地址226.17.30.197关联,其单播地址完全独立于它们所参与的多播组的地址。
表6-3 IGMP三种报文类型 IGMP报文类型 发送方 目的 成员资格查询(通用) 路由器 查询相连主机加入的多播组 成员资格查询(特定) 路由器 查询相连主机加入的特定多播组 成员资格报告 主机 报告希望加入或已加入指定多播组的主机 离开组 主机 报告希望离开指定多播组 当一个应用程序首次加入某个多播组时,主机通过成员资格报告向与其相连的多播路由器发送报告报文。多播路由器将该主机加入到多播组中,并通知所有与其相连的路由器及主机。 一台成员主机也可通过报告报文向多播路由器发送离开报文,路由器从指定多播组中将该主机删除。 另一方面,多播路由器也可定时(默认值为10s)主动向与其相连的各主机或路由器发送成员资格查询报文,以确定当前哪些多播组仍在活动。主机通过应答成员资格报告报文予以确认。
当多个相连主机属于同一多播组时,为了避免不必要的成员资格报告报文在网络上传输,优化网络性能,IGMP提供了一种反馈抑制机制:每台主机在收到查询报文后,并不是立即应答报告报文,而是各自随机等待一段时间。在等待期内,若主机监听到来自其他某个同一多播组成员主机的应答,便放弃(抑制)待发送的报告报文,因为该主机知道相连路由器已经知道了指定的多播组仍处于活跃期。当多个相连主机属于同一多播组时,为了避免不必要的成员资格报告报文在网络上传输,优化网络性能,IGMP提供了一种反馈抑制机制:每台主机在收到查询报文后,并不是立即应答报告报文,而是各自随机等待一段时间。在等待期内,若主机监听到来自其他某个同一多播组成员主机的应答,便放弃(抑制)待发送的报告报文,因为该主机知道相连路由器已经知道了指定的多播组仍处于活跃期。 若路由器多次重发查询报文均未收到任何应答报告报文,则认为该多播组已经结束活动,便将其从多播表中删除。
6.2.3 传输控制协议TCP TCP是TCP/IP体系中面向连接的传输层协议,它提供全双工的、无差错、无丢失和无重复的可靠交付服务。它不支持广播或多播服务。 一、TCP报文段的结构 一个TCP报文段分为首部和数据两部分,如图6-7所示。 0 16 31 源 端 口 目 的 端 口 序 号 确 认 号 20字节的固定首部 数据 偏移 保 留 URG ACK PSH RST SYN F IN 窗 口 校 验 和 紧 急 指 针 选 项(长 度 可 变) 填 充 TCP首部 TCP数据部分 图6-7 TCP报文段的结构
其中TCP首部各字段的意义为: 1、源端口和目的端口:各占2个字节。端口号与32 bit的IP地址合起来称为插口(socket),是传输层与应用层的服务接口。 2、序号:占4个字节。TCP报文是一个连续的数据流,其中的每一个字节都对应一个序号。为控制报文段的有序传输,每个报文段有唯一的一个序号,即本报文段数据中第一个字节的序号。 3、确认号:占4个字节,是期望收到对方的下一个报文段首部的序号字段的值,即确认序号=本段序号+本段字节数。例如,接收方收到一个报文段,其序号字段为501,而数据长度是200字节,确认号就应为701。如果接收方正确收到该报文段,则应答报文段的确认号应置为701,表示501~700之间的数据均已正确收到。 4、数据偏移:占4个bit,指明TCP报文段首部的长度,即本报文段起始处到数据开始处的长度。数据偏移以32 bit(即4个字节)为单位,4 bit可以表示的最大值为15×4=60个字节,也就是说,报文段首部的最大长度不超过60字节。
5、保留:占6 bit,预留为今后使用,缺省值为全0。 6、紧急比特URG(URGent):当URG=1时,表明本报文段是紧急数据,应优先传送。紧急比特与紧急指针配合使用,紧急指针指出本报文段中的紧急数据的最后一个字节的序号,以通知对方紧急数据的长度。 7、确认比特ACK:只有当ACK=1时确认序号字段才有效,当ACK=0时确认序号无效。 8、推送比特PSH(PuSH):对于需要对方迅速响应的应用请求,发送TCP可以使用PUSH操作,将推送比特PSH置为1,并立即创建一个报文段发送出去。接收TCP收到该报文段后,迅速将其交付给接收应用进程,而无须参与缓冲区排队。 该比特也称为急迫比特,为可选操作。 9、复位比特RST(ReSeT):当RST=1时,表明TCP连接中出现不可恢复的错误,必须释放连接,然后重新建立传输连接。 复位比特又称为重建比特或重置比特,有时也用于拒绝一个非法报文段操作。
10、同步比特SYN:用以在建立连接时同步序号。当SYN=1且ACK=0时,表明这是一个连接请求报文段。若对方同意建立连接,则应答报文段中SYN=1,且 ACK=1。 11、终止比特FIN(FINal):当FIN=1时,表明数据发送完毕,请求释放传输连接。 12、窗口:占2个字节,用于流量控制,以字节为单位。发送方依据自身缓冲区容量确定发送窗口的大小,并通知对方;接收方则据此设置接收窗口的尺寸。 13、校验和:占2个字节,可以对报文段首部和数据部分进行正误检验。 14、选项:长度可变,用以通知对方TCP本机缓存所能接收的报文段的数据部分的最大长度,称为最大报文段长度MSS(Maximum Segment Size)。如果MSS选取过小,网络利用率较低,而如果MSS选取过大,则因为网际层需对其进行分装使开销增大。MSS的默认值为536字节,因此,所有因特网上的主机都能接收的报文段长度是536+20=556字节。
二、TCP的流量控制与拥塞控制 TCP采用尺寸可变的滑动窗口进行流量控制,由接收端依据自己的缓冲能力及时动态地调整对方发送窗口的尺寸。即由接收窗口决定发送窗口。为了提高ARQ的执行效率,接收端往往采用对接收窗口中的若干帧顺序进行校验,并向发送方给予一次性应答,在释放接收缓冲区的同时将调整后的接收窗口尺寸通知发送方。 发送窗口除了进行流量控制,还具有拥塞控制的功能,其控制原理为:发送端设置一个拥塞窗口,记录当前可以连续发送的数据段个数。拥塞窗口尺寸初始值为1,若发送端按时收到接收端的确认应答,就按线性规律或指数规律增加拥塞窗口尺寸。如果出现超时,则按相反的方法逐步减小拥塞窗口尺寸。 可以看出,TCP的流量控制和拥塞控制是通过发送窗口实现的。因此发送窗口尺寸应按下式确定: 发送窗口尺寸=Min{接收窗口尺寸,拥塞窗口尺寸}
三、TCP差错控制 TCP是一个传输层协议,它提供的是一种无差错、无丢失、无失序、无重序的面向连接的可靠服务,它是建立在无连接、不可靠的IP协议基础上,因此TCP需要通过差错控制来提供可靠性。TCP的可靠性问题包括:数据传输的损伤检验、报文段丢失、失序、重序的恢复,以及连接的维护等检测和纠正的机制。 TCP的差错控制的3种基本手段是:检验和、确认和超时。 每一个TCP报文段的抗损伤检验可以通过检验和字段实现,对于有损报文段将被TCP丢弃。发送端TCP通过检查接收端的确认来判断发送的报文段是否已经正确到达目的TCP。如果在超时规定的时间内没有收到确认,发送端将判断该报文段丢失或传输出错。
接收端 发送端 报文段1 序号:1201,200B 报文段2 序号:1401,200B 报文段3 确认:1601 序号:1601,200B 超 时 报文段3受损伤 报文段3:重传 序号:1601,200B 确认:1801 图6-8 受损报文段的处理过程 1.传输出错报文段的处理 图6-8 为利用检验和、确认和超时处理受损报文段的过程。
接收端 发送端 报文段1 序号:1201,200B 报文段2 序号:1401,200B 报文段3 确认:1601 序号:1601,200B 超 时 报文段3:丢失 报文段3:重传 序号:1601,200B 确认:1801 图6-9 报文段丢失的处理过程 2.报文段丢失的处理 图6-9 给出了报文段丢失后的处理过程。
3.报文段重序的处理 报文段重序通常由发送端TCP因超时重传引起,此时,接收端TCP只需对收到报文段的序号进行简单的判断,丢弃具有相同序号的报文段即可。 4.报文段失序的处理 TCP传输是建立在IP数据报基础之上的。IP协议是一种无连接的网络传输协议,具有对IP包的接收顺序未必与发送顺序一致的特点。对于失序的报文段,接收端TCP将不予确认,由发送端TCP对未能按序到达的报文段通过超时重传机制,实现报文段的顺序接收。
接收端 发送端 报文段1 序号:1201,200B 报文段2 序号:1401,200B 超 时3 超 时2 超 时1 确认丢失 报文段3 确认:1601 序号:1601,200B 确认:1801 图6-10 累计确认的处理过程 5.确认丢失的处理 TCP解决确认丢失采用的是累计确认的机制,即只要收到一次有效确认,便认为此前的报文段均已被确认。图6-10 给出了确认丢失后的处理过程。
四、TCP的计时器 1.重传计时器 重传机制是发送端确定一个报文段是否需要超时重发的判断及控制方法。通常TCP每发送一个报文段就需要设置一次计时器,以往返时延作为重传的依据。然而,TCP作为传输层协议,其下层可能跨越多个传输时延不确定的子网,造成伪超时。为此,TCP采用了一种自适应算法来确定平均往返时延的值:以各报文段的往返时延的加权平均值作为平均往返时延的当前值T,即: 平均往返时延T=α(旧的往返时延T0)+(1-α)(新的往返时延T1) 在上式中,0≤α<1。当α充分接近0时,表示平均往返时延T受到新的往返时延T1的影响较大,反之则受到旧的往返时延T0影响较大。
第一次发送报文段 第二次超时重发报文段 收到ACK确认应答 往返时延=? 时间 往返时延=? 但是,如果T1是在超时重传后获得的新的往返时延,则很难判断该时延的归属。例如 收到的ACK确认应答是对哪一个报文段的确认? 如果ACK是对第一次的应答而被误认为是对第二次重发的确认,则据此计算出的往返时延偏小;相反,若将对重发后的报文段ACK确认看作是对于第一次发送的应答,那么所计算出的往返时延则将偏大。一种解决方案是在计算平均往返时延时,如果发生了报文重传,则不采用其往返时延样本。即取α充分靠近1,否则选取α值逼近0。
显然,计时器设置的重传时间应不小于平均往返时延,即有:显然,计时器设置的重传时间应不小于平均往返时延,即有: 重传时间=β(平均往返时延) 其中β是一个大于1的系数。β的选取是关键,若β很接近1,则可具有较高的传输效率,但对于伪超时反而增加了网络负担。 一种解决的方案是:报文段每重传一次,就将重传时间增大一些。 新的重传时间=γ(旧的重传时间) 系数γ的典型值是2。只要重传报文段,就不对旧的平均往返时延进行更新,只有当不再发生报文段的重传时,才根据报文段的往返时延修改平均往返时延和重传时间的值。
2.坚持计时器 坚持计时器是TCP在进行流量控制时为防止死锁而采用的一种预防措施。 TCP的流量控制是通过接收端向发送端回送一个接收窗口尺寸的确认信息实现的。当一个非零窗口的确认报文在回传过程中丢失时,由于接收端不知其已经丢失处于等待发送端发送更多报文段的状态,而发送端则处于等待对方回送窗口尺寸通知的状态,这样,双方都处于等待状态,形成死锁。 防止死锁的方式是为每一个TCP连接使用一个坚持计时器:当发送端收到一个窗口尺寸为零的确认时,便启动坚持计时器,如果规定时间内仍未收到接收端的窗口尺寸确认,发送端就发出一个探测报文段,通知接收端重传窗口确认;另一方面,接收端在发出非零窗口确认后,启动坚持计时器,若规定时间内未收到报文段,则重传确认。 坚持计时器的值一般与重传计时器的值相同。根据探测报文段的超时重传次数调整坚持计时器的值:加倍或复位。
3.激活计时器 激活计时器是用来防止在两个TCP之间处于长时间空闲状态而采用的一种预防措施。 当客户建立了到服务器的TCP连接,而因为故障中断了数据传送时,这个连接将永远处于打开状态。为了避免这一类问题的出现,服务器需要设置一个激活计时器。每当服务器收到客户的信息,就将计时器复位。如果计时器超时未收到来自客户的信息,便发送一个探测报文段,并重新启动激活计时器。如果发送了10个探测报文段仍不能收到客户的应答,则判断客户端出现故障,由服务器自动终止该连接,释放系统资源。
6.2.4 用户数据报协议UDP 用户数据报协议UDP与传输控制协议TCP一样,也是传输层协议。所不同的是,TCP是一种面向连接的可靠协议,而UDP提供的是一种无连接的不可靠交付服务。事实上UDP只是在IP数据报服务的基础上增加少量功能形成的,新增功能包括:报文的复用/分解、简单的差错检测以及端口功能。尽管UDP只能提供低质量的服务,但许多对可靠性要求不高的应用,它却具有如下特殊的优势: ⑴ 发送数据前不需建立连接(当然发送结束也无需释放连接),因而减少了开销和发送前的准备时延。 ⑵ 无连接状态,不需要跟踪状态参数,也无须维护状态连接表,可以支持更多的活动客户进程。 ⑶ 分组首部开销小,只占8个字节(而TCP最少需要20个字节)。 ⑷ 不提供拥塞控制,因此网络拥塞不会降低源主机的发送速率(但可能造成数据丢失,故它适用于对实时性要求较高而可靠性要求较低的应用)。
表6-4 常见的因特网应用及其采用的传输协议 由于UDP协议不提供拥塞控制,有可能引发严重的网络拥塞。因此,自适应拥控的UDP机制是当前较热门的一个课题。
2 2 2 2 数据 源端口 目的端口 长 度 检验和 首部 图6-8 UDP用户数据报格式 UDP数据报格式如图6-8所示。 UDP首部包括4个字段,每个字段占2个字节。其中端口号用于不同端进程间的通信和复用;长度字段记录UDP用户数据报的长度;检验和是目的主机检验是否存在传输出错的依据,检验内容包括数据部分和数据报首部(也包括首部中12个字节的过渡伪首部,其参数主要有:源IP地址、目的IP地址、协议类型值、报文长度等,伪首部仅用于计算检验和)。检验和的计算方法同IP协议和TCP协议中所采用的方法。
6.2 IP地址 在因特网中,每一个节点都有唯一的一个协议地址——IP地址,它是一个32bit的标识符,由4段、每段8位二进制数组成。通常以4个不大于255的十进制数表示,各段之间以“”分割,称为点分十进制记法(dotted decimal notation),如202.203.208.33等。IP地址由用户向因特网管理机构申请获得,可有静态地址和动态地址两类。一般,固定用户分配静态地址,而拨号上网的用户分配动态地址。对于采用多条物理线路连接的多宿主机(multihomed host)则需要分配多个IP地址。
IP地址的编址方法经历了三个阶段: •分类IP地址。这是最基本的编址方法,81年通过相应标准。 •子网划分。是分类地址的改进,于85年通过相应标准。 •构造超网。这是一种无分类编址方法,93年提出并得以推广。 6.2.1 分类IP地址 IP地址由两个部分组成:网络号NN(Network Number)和主机号HN(Host Number)。即这种两级表示的IP地址可以定义为: IP地址{<网络号NN>+<主机号HN>}
0 1 7 8 31 A类地址 0 1 2 15 16 31 0 B类地址 HN 1 0 NN NN HN 0 1 2 3 23 24 31 C类地址 1 1 0 HN NN 0 1 2 3 4 31 D类地址 1 1 1 0 组 播 地 址 0 1 2 3 4 5 31 E类地址 1 1 1 1 0 预 留 地 址 图6-11 四类IP地址的组成示意图 IP地址可以分为A、B、C、D、E五类。其中D类地址作为组播地址用于多目传输,E类地址为保留地址,最常用的是A、B、C三类。各类地址分割如图6-11所示。
A、B、C三类地址具有如下重要特点: 1. A类地址中最多可有27-2=126个NN号(1~126)。减2的原因是:NN号等于0(二进制全0)或127(二进制01111111)为保留地址,全0表示“本网络” ,而127作为本地软件环回测试本主机之用。任意一个A类网络最多可有224-2=16777214台主机。这里减2是因为:主机号HN等于全0表示“本主机”所连接到的单个网络地址,而HN等于全1表示“所有的” 。A类地址占整个IP地址空间的50%,适用于特大型网络。 2. B类网络最多有214=16384个,每个B类网络最多可有65534 (216-2)台主机 ,同理,减2是因为要扣除HN为全0和全1两种情况。B类地址占整个IP地址空间的25%,适用于大型网络。 3. C类地址最多可有221=2097152个不同的网络,而每个C类网络中的节点数不超过28-2=254个。C类地址占整个IP地址空间的12.5 %,适用于小型网络。
综上可知: A类地址取值范围为:1.0.0.1~126.255.255.254 B类地址取值范围为:128.0.0.1~191.255.255.254 C类地址取值范围为:192.0.0.1~223.255.255.254 据此,对任意一个给定的IP地址,根据第一个字节的取值,即可知道该主机所属的网络类型。如地址202.203.208.33属C类网络。
201.1.16.2 分组的目的地址: 201.1.16.255 201.1.16.0 Internet 201.1.16.56 图6-12 直接广播地址 特殊IP地址形式 •直接广播地址 在A、B、C三类IP地址中,如果主机号HN为全1,则这个地址为直接广播地址,它使路由器将一个分组以广播方式发送给特定网络上的所有主机。直接广播地址只能作为分组中的目标地址。例如,当路由器接收到一个地址为201.1.16.255的分组时,路由器判断出这是一个HN为全1的C类地址,于是它将该分组广播到201.1.16.0网络的所有主机上。如图6-12所示。
分组的目的地址: 255.255.255.255 201.1.16.2 201.1.16.0 201.1.16.5 Internet 201.1.16.56 图6-13 受限广播地址 •受限广播地址 网络号NN和主机号HN为全1的IP地址(255.255.255.255)称为受限广播地址。它是用来将一个分组以广播方式发送给本物理网络中的所有主机,而路由器则阻止该分组通过,将其广播功能限制在本网络内部,其工作过程如图6-13所示。
分组的目的地址: 0.0.0.5 201.1.16.2 Internet 201.1.16.0 201.1.16.5 201.1.16.56 图6-14 “本地网络”地址 • “本地网络”地址 “本地网络地址”是指IP地址的网络号NN为全0的一种特殊IP地址表示,它将一个分组向本物理网络中的特定主机进行发送。这样的分组被限制在本网络内部,由IP地址中确定的HN值对应的主机接收该分组,而本网络中的其他节点则放弃接收。图6-14给出了“本地网络地址”的工作过程。
分组的目的地址: 127.0.0.1 进程1 进程2 201.1.16.2 201.1.16.5 Internet 201.1.16.0 图6-15 环回测试地址 • 环回测试(lookback test)地址 A类IP地址中127.0.0.1被作为环回测试地址,也称回送地址,作为网络软件测试本地进程间的通信之用。一个进程通过回送地址向另一个进程发送测试数据,协议软件不会将数据向网上发送,而是立即将它回送。例如“ping”应用程序可以发送一个环回测试分组,以检测IP软件能否接收或发送一个分组。图6-15给出了“回送地址”的工作过程。
说明: (1)在同一个LAN中,所有主机或路由器IP地址的NN号必须一致。 (2)采用网桥互连的网段只能有一个NN号。 (3)路由器总是有两个或两个以上的IP地址。 (4)当两个路由器直接相连时,连接端口可以指明也可以不指明接口的IP地址。如果指明则连接线路就构成了一种特殊网络,如图6-16中的N1、N2、N3。通常不需要指明IP地址,以节省IP地址资源。
222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.3. 222.1.5.1 222.1.6.1 222.1.2.1 LAN2 222.1.2. 222.1.3.0 N3 222.1.6. N2 222.1.5. 222.1.6.0 222.1.5.2 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.1 222.1.4.1 222.1.4.0 R3 222.1.3.2 网桥 互联网 222.1.2.4 222.1.2.3 图6-16 由3个LAN构成一个互联网的IP地址