重庆邮电大学通信复试常识常见问题:物联网与计算机网络(下)
第六章
6.1网络互连
1.网络互联的概念:一般来说,对计算机网络的定义是:使用网络协议通过网络传输介质互相共享资源的计算机系统及其他设备的集合。正如计算机系统(或其他设备)能够互相连接起来一样,计算机网络也可以互连,称之为网络互连。
2.所谓异构性是指网络和通信协议、计算机硬件和操作系统的差异性。这种差异性主要表现在一下几个方面:1)网络的类型不同,如广域网、城域网和局域网。2)所使用的数据链路层的协议不同,如E t h e r n e t、T o k e n R i n g以及X.25等。3)计算机系统的类型不同,如微型机、小型机、大型机。4)使用不同操作系统的计算机,如Windows、OS/2 、UNIX 以及Linux等。
3.将利用路由器将两个或两个以上的网络相互连接起来构成的网络系统称为互联网。
4.组成互联网的单个网络常被称为子网(S u b n e t w o r k),连接到子网的设备称为端结点(E n d N o d e)(或端系统),连接不同子网的设备称为中间结点(I n t e r m e d i a t e N o d e)(或中间系统)。互联网最常见形式是将多个局域网通过广域网连接起来形成的网络。
5.网络互连的方式:1)网络之间至少提供一条物理上连接的链路及对这条链路的控制协议。2)不同网络进程之间提供合适的路由,以便交换数据。3)选定一个相应的协议层,使得从该层开始,被交换连接的网络设备中的高层协议都是相同的,其低层协议和硬件差异可通过该层屏蔽,从而使得不同网络中的用户可以相互通信。
6.i n t e r n e t,是i n t e r n e t w o r k的简略形式。一般来说,一个.i n t e r n e t就是互连起来的网络集合。而当i大写之后,即使用.Internet时,则特指当今世界上最大的互联网——.Internet,常译为因特网。
7.常用的互连设备有以下几类:1)物理层互连设备,即转发器(Repeater)。2)数据链路层互连设备,即桥接器(Bridge)。3)网络层互连设备,即路由器(Router)。4)网络层以上的互连设备,统称网关(Gateway)。但目前的路由器通常已可实现网关的功能。
8.网络层的主要功能:1)封装数据报 在.Internet中,IP层向上层(主要是TCP层)提供统一格式的IP分组,即IP数据报,使得各种网络的数据帧或报文格式的差异性对高层协议不再存在。2)转发或称为交换 当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组传送到适当的输出链路。即在路由器的输入、输出端口传递分组,例如,来自主机A到路由器R1的一个分组,必须向在主机B路径上的下一个路由器转发。3)路由或称为寻由、路径决策 当分组从发送端流向接收端时,网络层必须决定这些分组所采用的最佳路由或路径。计算这些路径的算法称为路由选择算法,简称路由算法。4)建立连接 转发和路由是网络层的两个重要功能,但在某些计算机网络中实际上还有第三个重要的网络层功能,即建立连接。
6.2网络连接建立
1.虚电路的概念:虚电路是面向连接的数据传输,工作过程类似于电路交换,具有虚电路性能的网络包括X.25连接、帧中继以及ATM网络。虚电路分为两种:一种为永久虚电路(PVC);
另一种为交换虚电路(SVC)。
1) 永久虚电路(PVC) 在两个站点之间事先建立固定的链接,类似于存在一条专用电路,任何时候,站点之间都可以进行通信。PVC使用于通过路由器维持恒定连接,从而便于在动态网络环境下传输路由选择信息的路由。
2) 交换虚电路(SVC) SVC是指通信双方的用户应用程序根据需要,动态建立和释放的虚电路。一旦通信会话完成,便取消虚电路。
2.虚电路操作方式分3个阶段:虚电路建立、数据传输、虚电路释放
3.数据报方式
采用数据报(Datagram)方式传输时,所传输的分组称为数据报
(1).报文交换方式
报文交换(Message Switching)方式是指,将报文从一个结点转发到另一个结点,直至到达目的结点的一种数据传输过程。
报文交换机通常以存储转发方式操作,一个报文必须完全被交换结点接收后(因此被存储)才能被转发到下一个交换结点。数据报的头部包含地址信息字段,网络中的各个中间结点根据地址信息和一定的路由规则,选择输出端口,储存和排队数据报,并在传输介质空闲时,发往介质空闲时,发往介质乃至目的结点。当一对结点之间需要传输多个数据报时,由于每个数据报均被独立地传输和路由,因此在网络中可能会走不同的路径,具有不同的时间延迟,按序发送的多个数据报可能以不同的顺序到达终点。因此,为了支持数据报的传输,结点必须具有存储和重新排序的能力。
(2).无连接的分组交换
(3).无连接分组交换中的分组转发
6.3 IPv4协议
1、IPv4协议是TCP/IP协议体系中的核心协议,它向传输层提供了一种无连接的尽力而为的数据传输服务。IPv4定义了互联网在处理数据时可以应用的简单规则、帮助处理数据的报文头以及寻址机制,成为当前使用IP协议的标准。
2、IP数据报是IP协议的基本处理单元,它由IP数据报头和数据两部分组成
3、数据报的分段和重组
所谓分段就是将一个大型IP数据报分解成几个较小IP数据报段的过程。
在IP报头中,用标识符、标志域和分段偏移值三个字段来实现数据报的分段和重组。
A、 标识符 P234
B、 标志域 占用3个比特,但只有低两位有效 第一位(MF位):最终分段标志 第二位(DF位):禁止分段标志
C、 分段偏移值 占用13位,以8B为单位表示当前数据报相对于初始数据报的开头 位置
4、数据报生存时间(TTL)占用8位,指明数据报在进入Internet后能够存留在网络中的时间,以秒为单位。其初始化设置最大值是255,当TTL达到0时,数据报将被网络丢弃。设定TTL的本意是让每个路由器计算出处理每个数据报所需的时间,然后从TTL中把这段时间减去。
5、IPv4地址的层次结构
每个32位的IPv4地址有前缀和后缀两部分组成。地址前缀部分标志计算机所属的物理网络,后缀部分标志该网络上的某一台计算机。
IPv4地址基本组成
地址类型 网络ID 主机ID
这种层次化的IPv4地址结构保证了两个重要性质1、每个网络接口只分配一个唯一地址(即一个地址从不分配给多个网络接口)2、虽然网络号分配必须全球一致,但后缀可由本地分配,不需全球一致。
6、IP地址两种表示方式:一是二进制格式表示00000000 00000000 00000000 00000000
二是点分十进制表示XXX .XXX .XXX .XXX(XXX取值范围:0~255)
7、IPv4地址分类及格式 1)A类地址 第一位(最高位)为0,网络ID由后续的7位定义(0到127间均是) 2)B类地址 前两位为10,网络由后续14位定义(128到191间)
3)C类地址 前三位110,网络地址由后面的21位定义 (192到223间) 4)D类地址 前四位1110(224到239间),用于组播 5)E类地址 前五位11110(240到247间)
8、特殊地址(不分配给实际的网络)1)、第一个8位域是127的地址(如127.0.0.1)被定义为回送地址,即主机将IP数据报回传自身的地址。2)IPv4地址中的主机号部分为全1的地址是广播地址,用于由网络ID指定网络上的所有主机间通信。3)全0的主机ID指的是由网络ID规定的网络,而不是一个主机。
9、所谓子网就是将一个大的网络进一步划分为几个较小的网络,而每一个小网络都是自己的地址。 超网就是将一个组织所属的几个C类网络合并成一个更大地址范围的逻辑网络。
包含子网地址的B类IP地址
10 网络ID 子网ID 主机ID
10、子网掩码有时也称地址掩码,定义是,将网络中某站点IP地址中的网络ID位全改为1,主机ID位全改为0,即是该站点所在网络的子网掩码。 凡是以缺省子网掩码来计算网络地址和主机地址的方法,称为规定长度子网掩码(DLSM)方法
子网掩码一共分为两类。一类是缺省(自动生成)子网掩码,一类是自定义子网掩码。缺省子网掩码即未划分子网,对应的网络号都置1,主机号都置0。
A类网络缺省子网掩码:255.0.0.0 B类网络缺省子网掩码:255.255.0.0
C类网络缺省子网掩码:255.255.255.0
书上P250例子略
无分类域间路由选择(CIDR)协议:实质是取消了A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间,缓解地址紧张问题。
优点:可以更加有效地分配IPv4的地址空间。
TCP/IP协议体系用地址解析协议ARP来实现将IP地址映射(或转换)为MAC地址。ARP可以通过发送网络广播信息的方式,确定与某个网络层IP地址相对应的MAC地址。
反向地址解析协议RARP可以实现MAC地址到IP地址的映射。其工作机制是:一个新启动的工作站向所在的网络广播一个包含其MAC地址的RARP请求报文。RARP服务器发现接受请求报文后,在其配置文件中找到该工作站的IP地址并回送给它。
6.4差错报告和控制机制
Internet报文控制协议(ICMP)是一种专门处理差错报文和控制的机制。ICMP协议与IP协议同属网络层协议。ICMP报文封装格式:IP数据报报头-ICMP报头—ICMP数据 几种ICMP差错报告报文:目标不可达、源端控制、重定向、超时、报文参数出错。4种ICMP查询报文:回应请求/应答报文、时间戳请求/应答报文、子网掩码请求/应答报文、路由查询/通告报文
6.5 IP数据报转发
6.5.1 主要特点:1)每个IP数据报都应包含目的IP地址和源IP地址。
2)IP地址中的网络地址唯一地标志一个连入internet的子网。
3)所有连接到相同子网上的主机和路由器共享其地址中的网络地址部分。所以它们能在这个网络上通过帧来通信。
4)每个连接到internet的子网只有一个,并且至少有一个路由器与其他子网的主机或路由器相连,这个路由器可在被连接的子网之间交换IP数据报。
6.5.2 IP数据报转发算法
若在同一个子网上使用IP协议通信,利用地址解析协议ARP就可得到对方的MAC地址,然后利用MAC地址把要传输的IP数据报进行封装,交给数据链路层发送。
若在不同子网上,IP数据报沿着从源地址到最终目的地址的一条路径通过互联网传输,中间可能会经过多个路由器,而路由器的作用就是存储转发IP数据报,为这个IP报文寻找最优路径。
6.5.3 掩码域与数据报转发
P268例题
6.61、IPV6
1.IPv6地址标示形式:
IPV6地址长度为128位,4倍于IPV4,表达的复杂程度也是IPV4地址的4倍。IPV6的128位地址以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,成为冒号分十六进制格式。
6.6.2、
1、IPV6数据报格式:
IPV6是对Internet协议IPV4的改进,最主要的变化是IP地址从32位变为128位。IPV6数据报格式由IPV6数据报头、扩展(下一个头)和高层数据三部分组成。
2、IPV6的基本报头(首部)结构
与IPV4不同,在IPV6中,报头以64位为单位,且报头的总长度是40B。即IPV6数据报有一个40B的基本包头(Base Header)(也称基本首部),其后面允许有零个或多个扩展头(Extension Header)(也称扩展首部)再往后是数据部分。IPV6数据报的一般格式如下图1,基本报头格式如下图2.

3、IPV6协议基本报头各字段的含义:
1)版本 长度为4位,对于IPV6,该字段必须为6。
2)业务流类别 长度为8位,指明为该报文提供某种区分服务,目前暂未定义类别值。该字段的默认值是全0。
3)流标签 长度为20位,用于标识属于同一业务流的报文。
4)净荷长度 长度为16位,其中包括报文净荷的字节长度,即IPV6头后的报文中包含的字节数。
5)下一个头(首部) 长度为8位,这个字段指出IPV6头后所跟的头字段中的协议类型。写一个头字段值知名是否有下一个扩展头及下一个扩展头是什么。
6)跳数限制 长度为8位,用于限制报文在网络中的转发次数。
7)源IP地址 长度为128位,指出了IPV6报文的发送端地址。
8)目的IP地址 长度为128位,指出了IPV6报文的接收端地址。
4、IPV6的扩展头(扩展首部)
1)逐跳选项头
2)选路头
3)分段头
4)目的地选项头
5)身份验证头(AH)
6)封装安全性净荷(ESP)头
6.7、路由选择技术
1、路由选择的概念:
路由选择协议(Routing Protocol)是路由器交换路由选择信息的语言。
被路由的协议(Routing Protocols)是指提供了网路层地址的协议。
2、什么是路由:
路由是把IP分组从源节点穿过通信子网传递到目的节点的传输路径。在传输路径上,应至少有一个中间节点。路由发生在网络层。桥接发生在数据链路层。
3、路由选择协议(Routing Protocol):是网络协议的一个功能。大多数网络协议可以封装在TCP/IP里,并使用基于TCP/IP的路由选择协议进行选路。
4、协议封装(Protocol Encapsulation)也称隧道,是指将一种网络协议的数据分组以另一种网络协议的形式来包裹(Wrap)。这个包裹的分组就可以利用包裹网络协议(Wrapper Network Protocol)所支持的路由选择协议穿过网络。
5、路由表的类型:
IP路由技术可以分为静态路由(Static Routing)和动态路由(Dynamic Routing)两大类。若路径不变,就称之为静态路由;相反,若系统的连路由信息随时间变化则是动态路由。路由表可以由系统管理员固定设置,也可以由系统动态修改、自动调整,也可以由主机控制。
1) 静态路由表:由网络管理员决定,管理员实现设置好的固定路由表。
2) 动态路由表:路由器根据网络系统的运行情况而自动调整的路由表。
6、路由表的格式及内容:
路由表是保存子网标识信息、网上路由器的个数和下一个路由器的名字等内容的表。一般有目的地址、掩码、网关、标识以及接口的表项。
7、路由算法:
路由选择协议的核心是路由算法(Routing Algorithms),即需要用何种算法来获得路由表中的各个项目。按照路由表建立的方式,可将路由算法分为静态路由器算法和动态路由器算法。
距离向量路由算法(Distance Vector Routing)算法的核心思想是路由器根据距离选择使用那条路由。
链路状态路由算法(Link State Routing)最短路径优先算法。
8、路由器
1.路由器(Routing)是一种典型的网络层设备,对经过的分组进行处理,同时它还要运行路由协议,生成路由表,对每一个分组进行寻路,并转发到相应的输出端口。
2.路由器的功能
a) 协议转换 能对网络层及其以下各层的协议进行转换。
b) 路由选择 当分组从互联的网络达到路由器时,路由器能根据分组的目的地址按某种路由策略,选择最佳路由,将分组转发出去,并能随网络拓扑的变化,自动调整路由表。
c) 能支持多种协议的路由选择 路由器与协议有关,不同的路由器有不同的路由协议,支持不同的网络层协议。
d) 流量控制 路由器不仅具有缓冲区,而且还能够控制收发双方数据流量使二者更佳匹配。
e) 分段和组装 当多个网络通过路由器互联时,个网络传输的数据分组大小可能不同,这就需要路由器对分组进行分段或组装。
f) 网络管理 路由器是连接多种网络的汇聚点,网间分组都要通过它,在这里对网络中的分组、设备进行监视和管理是比较方便的,因此,高档路由配置了网络管理功能,以便提高网络的运行效率、可靠性和可维护性。
3、路由器的体系结构
一个通用的路由器体系结构可划分为输入端口、交换结构、输出端口和选路出拉力器4个大的组成部分。
1)、输入端口:
a) 线路端接(Line Termination) 工作在物理层,负责比特流的接收。
b) 数据链路处理(协议、拆封)工作在数据链路层。
c) 查找、转发、排队(Lookup、Forwarding、Queuing)查找是一种分散化的交换,按照给出的分组信宿,使用输入端口内存中存储的路由表,查找输出端口;转发是以线路速度完成输入端口的处理;排队是指假如分组到达的速度快于转发到交换网络(Switch Fabric)的速度时,要进行排队。
2)、交换结构
a) 内存交换(Switching Via Memory);
b) 总线交换(Switching Via Bus);
c) 交叉开关型交换;
3)、输出端口
4)、选路处理器
4、路由器的工作流程
a) 网络接口接收分组
b) 根据网络的物理接口,路由器调用相应的数据链路层功能模块以解释处理此分组的数据链路层协议报头。
c) 在数据链路层完成对数据帧的完成性验证后,路由器开始处理此数据帧的IP层。
d) 根据在路由表中所查到的下一跳IP地址,IP分组送往相应的输出数据链路层,并封装上相应的数据链路层帧头,最后经网络物理接口发送出去。
6.8、Internet 路由协议
1、Internet 路由选择协议划分成两大类
i. 内部网关协议IGP
ii. 外部网关协议EGP
2、路由信息协议RIP
i. 路由信息协议RIP是最早的AS内部Internet路由协议之一,切目前仍在广泛使用。
ii. RIP报文格式

A:命令(请求或响应) B:版本号 C:零
D:地址类标识符 E:IP地址 F:量度
3、开放式最短路径优先OSPF
1、开放式最短路径优先OSPF是一种链路状态路由算法(RFC 1131/1147)的内部网关 协议,它由IETF的内部网关协议(IGP)工作组与1989年推出。OSPF有两种主要特 性:一个是它的开放性,OSPF协议是面向大众的;二是基于SPF(Shortest Path First) 算法的协议。SPF算法有时也根据其发明人的姓名命名,被称为Dijkstra算法。
2、OSPF报文头格式:
1)版本号;2)类型;3)报文长度;4)路由器ID ;5)区域ID ;
6)校验和;7)认证(Authentication)类型; 8)认证 ;9)数据;
4、边界网关协议BGP
(1)、BGP是Internet中极为重要的协议,从本质上讲,是这个协议把所有的知识融合在一起了
(2)BGP主要特征:
(3)路径属性:
(4)BGP报文:
1.标记(Marker);
2.长度(Length);
3.类型(Type) 1)Open 报文,2)Update报文,
3)Keepalive报文,4)Notification报文
6.9、IP多播和IGMP
1、实现IP多播的要素
i. 侦听特定IP多播地址的哪一组主机成为一个主机组;
ii. 主机组成的成员数量没有限制;
iii. 主机可以跨越多个网段;
iv. 主机可以向不属于对应的主机组的某个IP多播地址发送流量;
v. IP多播地址(也称为组地址)在224.0.0.0到239.255.255.255的D类地址范围内,这是通过将前四个高序位置设置为1110来定义的。
2、主机的IP多播支持
a) 为了是主机能够发送IP多播报文
i. 确定要使用的IP多播地址
ii. 该IP多播地址可由应用程序硬编码,或者通过一种分配唯一多播地址的机制来获得。
iii. 将IP多播数据报放到传输介质上。
iv. 发送主机必须构造一个包含预期目标IP多播地址的IP数据报,并将它放到传输介质上。
b) 为了主机能够接收IP多播数据报
i. 通知IP接收多播流量
ii. 为了确定要使用的IP多播地址,应用程序必须首先确定是创建一个新的主机组,还是使用某个现有的主机组。
iii. 在确定组地址后,应用程序必须通知IP在某个指定的目标IP多播地址接收多播流量。
iv. 将多播MAC地址注册到网络适配器
v. 通知本地路由器
3、Internet组管理协议IGMP
i. IGMP让一个物理网络上所有系统指导主机当前所在的多播组。多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。
ii. IGMP报文
1. 版本 该字段标识版本号;
2. 类型 该字段标志报文类型;
a) 类型1:说明是由多播路由器发出的查询报文;
b) 类型2:说明是主机发出的报告报文;
3. 未用 该字段必须设为0 ;
4. 校验和 该字段包含一个用于IGMP报文的所有8的校验和;
5. 组地址 该地址是D类IPV4地址,在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。
iii. 加入一个多播组
iv. IGMP报告何 查询
1. 当第一个进程加入一个组时,主机就发送一个IGMP报告,如果一个主机的多个进程加入同一组,只发送一个IGMP报告,这个报告将发送到进程加入组所在的同一接口上。
2. 进程离开一个组时,主机不发送IGMP报告,即便是组中的最后一个进程离开。主机知道在确定的组中已不再有组成员后,在随后受到的IGMP查询中就不再发送报告报文。
3. 多播路由器定时发送IGMP查询来了解是否还有任何主机包含属于多播组的进程。
4. 主机通过噶送IGMP报告来响应一个IGMP查询,对每个至少还包含一个进程的组均要发回IGMP报告。
第七章、端到端的传输服务
7.1 传输层的概念
传输层位于应用层和网络层之间,是分层网络体系结构的核心部分。
传输层的作用:监管数据从一个应用进程传输到另一个进程,在高层(会话层、表示层、应用层)协议和低层(网络层、数据链路层、物理层)提供的服务之间担当联络工作。
7.1.1 传输层的功能
通信子网:由物理层、数据链路层、网络层组成,为网络环境中的主机提供了点对点的通信服务。
传输层的功能:为网络环境中主机的应用进程提供从源端到目的端(端到端)的进程通信服务。传输层负责整个报文端到端的传输过程,保证整个报文按顺序到达目的端,并可进行差错控制和流量控制。主要作用:为高层协议屏蔽下层操作的细节。主要任务:把网络层的数据交付给正确的应用程序。
设计传输层的目的:弥补通信子网服务的不足,提高传输服务的可靠性与保证服务质量。
7.1.2 传输层提供的服务
传输层提供的服务由在两个传输实体之间使用的传输协议实现,在互联网上提供服务。传输协议向应用层提供的服务可包括端到端的传输、服务点寻址、可靠传输、流量控制等。此外,为提高传输效率,传输层的所有协议都为应用进程提供多路复用、多路分解服务,以及带宽保证和传输延时保证等其他服务。
1、端到端的传输:在协议体系中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议为不同主机提供逻辑通信。传输层协议是在端系统中实现的。传输层监管整个报文端到端的传输,确保整个报文段完整的到达。
2、服务点寻址:传输层和会话层的功能相互作用。(应用程序:许多协议将会话层、表示层、应用层的协议组合在一起。)传递到会话层的功能实际上是传递给应用程序,传输层中两个对等传输实体之间的通信遵循传输层协议,传输层提供的服务也使用了网络层向上提供的服务。层与层之间交换信息的抽象接口分别是传输层服务访问点(Transport Service Access Point,TSAP)和网络层服务访问点(Network Service Access Point,NSAP)。为了保证从服务访问点到服务访问点的正确传输,除了数据链路层和网络层的寻址方式外,还有一个方案是将服务与TSAP地址关联编址。
3、可靠数据传输:包括以下4个方面:
①差错控制:传输数据可靠性的主要目标。差错处理的机制是基于差错检测和重传。差错处理通常用到由软件实现的算法(如校验和)来实现。传输层必须进行端到端检查,以保证报文段正确到达。
②顺序控制:在发送端传输层负责保证从高层接收到的数据单元可被低层使用。在接收端,传输层负责保证传输的不同片段正确的重新组装(通过分段和连接,在段尾增加序列号)。
③丢失控制:确保传输的所有片段都会到达目的端。
④重复控制:保证没有重复的数据段到达接收端系统。
4、流量控制:是端到端的,而不是像数据链路层那样作用在单条链路上。使用滑动窗口协议,窗口的大小可变化以适应缓冲区的占用,窗口实际可容纳的数据量可协商。滑动窗口用来是数据传输更加有效,同时也控制数据的流量,使接收端不会变的过分拥挤。
7.1.3 传输层的协议
1、面向连接的传输协议
1)连接的建立。作用:确认通信双方的存在,分配通信所需系统资源,协商通信所需参数。
空闲状态:服务器没有启动相应的应用进程,此时即使有客户机发出连接请求也不响应。
侦听状态:服务器进程启动,分配好系统资源,等待客户机的连接请求。
连接状态:客户机与服务器已经建立连接,正在进行数据传输。
采用三次握手方案建立连接:
①请求连接的主机A发送连接请求报文到预期的接收端主机B。连接请求报文中有请求序列号。②响应的主机B回送一个连接应答报文到主机A。连接应答报文中包含请求的序列号以及主机B指定的连接序号。③主机A收到报文后给主机B回送一个连接确认报文,建立连接。
2)连接的释放:非对称式释放和对称式释放。通常用三次握手+定时器的方法释放连接。
3)网络故障的恢复。网络本身的故障:网络的物理连接或网络设备出现故障。系统故障:发送端或接收端的主机系统发生故障,应用程序在没有发送释放连接请求时突然中断。网络故障的判断采用超时发现机制。故障的恢复是指当网络或系统故障消除后,发送端和接收端自动恢复到故障前的连接状态。
2、无连接的传输协议
不保证数据报可靠、按序提交,当发送端发送数据后,就失去了对数据报的控制。由于没有流量控制、差错控制和连接管理,所以协议实现相对比较简单,可用于对服务质量要求不太高的网络应用。它是利用网络层提供的服务来实现的,而网络层提供的服务比较可靠,所以无连接的传输协议出差错的概率非常低。
7.2 TCP/IP协议体系的传输层
从协议体系来讲,Internet是一个TCP/IP网络,它为应用层提供了两种传输协议。一、用户数据报协议(User Datagram Protocol,UDP),为调用应用进程提供一种不可靠、无连接的服务。二、传输控制协议(Transmission Control Protocol,TCP),它为调用应用进程提供了一种可靠的、面向连接的服务。
7.2.1 TCP/IP协议体系传输层功能
UDP与TCP协议的基本功能:将IP的两个终端系统之间的传输服务扩展为终端系统上运行的两个进程之间的传输服务。在头部中加入纠错字段来提供完整性检测。
传输层的多路复用和多路分解:主机之间的传输服务扩展到进程之间的传输服务。
UDP提供的服务:进程之间数据传输服务、差错检测。UDP协议是不可靠的服务,不能保证由一个进程发出的数据能完整的到达目的进程。不需建立连接,报文在逻辑通道传送,不需确认,所以在某种情况下,UDP协议是一种有效的工作方式。
TCP提供的服务:①面向连接的传输服务。TCP报文段是在传输层抽象的端到端逻辑信道中传送的,这种信道是可靠的全双工信道。TCP不提供广播或多播服务。②提供可靠的数据传输。通过数据流量控制、序列编号、确认和计时器等措施,保证了数据正确有序的从发送端进程传送到接收端进程。③使用拥塞控制机制。
7.2.2端口标志
1、传输层和网络层在功能上的最大区别是传输层提供了进程通信能力,即端到端的通信。
2、端口与TSAP(传输层协议服务访问点)等价的。应用层的各种进程都通过相应的端口与传输层实习进行交互。
3、传输层接收到数据后,如何区分数据到底是发给哪个应用进程?为此,在TCP/IP协议体系中引入了端口(Port)和套接字(Socket)概念。
4、物理层通信时需要使用通信线路号;
数据链路层的地址在帧头中,通信的两个数据链路层通过帧地址来确定通信关系,实现之间的虚拟通信;
网络层主要任务是根据源结点与目的结点的网络地址,通过路由选择,为报文分组穿过复杂的互联网选择一条最佳的路径;
传输层为计算机之间的进程通信提供服务,进程地址也成为端口号;
到了应用层,需要为客户机和服务器分配名字;
5、端口就是用于标志传输层协议和应用进程之间的数据接口。端口的基本概念是:应用层的源进程将报文发送给传输层的某个端口,而应用层的目的端口接收报文。
6、端口的作用就是让应用层的各种进程都将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。从从此意义讲,端口是用来标志应用层进程的。
7、每个端口用一个16位的无符号整数值进行标志,并称为端口号。16位的端口号可区分6 4K个端口,已经足够用。在本地主机中,一个应用进程对应着唯一的一个端口号。不同的主机端口的具体实现方法差异大,取决于操作系统。端口号由不同主机的TCP或UDP协议独立分配,所以不可能全局唯一。
8、端口的分配有两种基本方式:一种是全局分配,由网络中具有端口分配功能的机构负责分配一些常用的应用层程序固定使用的熟知端口(Well Known Port)。0号端口未使用,1-255号端口号被标准服务保留,称为熟知保留端口,由RFC1700定义。当开发一个新的应用程序时候,必须为其分配一个端口号。服务器程序运行之后,就在各自相应的端口上等待。如果希望使用某一台主机的相应程序,只要向该服务对应的套接字上发送数据就可以了。另一种是主机建立连接时为用户进程动态分配的端口(又称动态联编),称为一般端口或临时端口。取值大于255,即256-1023为其他保留端口号,1024-65535为用户自定义。
9、常用端口号:FTP-21;Telnet-23;SMTP-25;DNS-53;TFTP-69;HTTP-80;POP3-110;SNMP-161;
10、网络环境中进程通信需解决的问题:
(1)、进程标志: (2)多重协议识别。
完整的进程标志必须是:本机主机地址:本机进程标志,远程主机地址:远程进程标志,如主机X的进程6与主机Y的进程9通信。
网络中一个进程的全网唯一的标志需要协议,本地地址,本地端口号三元组表示;
一个完整的进程通信标志需要协议,本地地址,本地端口号,远程地址,远程端口号五元组表示。
11、TCP,UDP协议的应用程序分为两类:服务器程序(使用固定的熟知端口号)和客户机程序(任意选择端口号);
12、在TCP/IP协议中,为了通信时不致发生混乱,端口号必须与主机IP地址结合起来一起使用,称之为套接字或者插口,以便唯一的标志一个连接端点。在发送和接收端分别创建一个套接字的连接端点即可获得TCP,UDP服务。
13、套接字由IP地址(32位)与端口号(16位)组成,即套接字地址表示为:IP地址:端口号。例如,端点(202.112.7.12:80)表示IP地址为202.112.7.12的主机上的80号TCP端口。
14:、在TCP协议中,一个套接字可被多个连接同时使用,这是一条需由两端的套接字来识别,并把这对套接字地址称为套接字对(Socket Pair),表示:客户机的IP地址:客户机的端口号,服务器的IP地址:服务器的端口号。
例如:一个客户机的套接字地址为:128.2.194.242:51213,其中端口号51213是临时端口号,一个服务器的套接字地址为:208.216.181.15:80,其中端口号80是与服务器相关的熟知端口号。则其直接连接的套接字对就是: 128.2.194.242:51213,208.216.181.15:80
15、套接字,端口,IP地址的关系如下:通信双方各自的Socket,唯一的确定了本次双方的通信,Socket中的IP地址唯一的标志了一台主机。而Socket中的端口号唯一的标志了该通信主机上的一个程序或者进程。例如,若一台IP地址为130.8.16.13的主机,端口号为1200,则套接字为130.8.16.13:1200
16、端口号从0-65535,其中1-1023是熟知端口号,已规定用途,不可更改。
17、为了实现进程间的通信,TCP不仅要接受命令调用,还要为进程返回关于连接的消息和对用户命令要有成功及失败的应答提示。应用最广泛的是在BSD UNIX上首先是要的应用编程套接字接口。套接字接口是一组用来结合UNIX I/O函数创建网络应用的函数。
18、套接字的分类:a.流套接字:是面向连接的,提供双向,有序,无重复且无记录边界的数据流服务b.数据报套接字:无连接,支持双向数据流,但不保证数据传输的可靠性,有序,和无重复性。
若使用无连接的UDP协议,虽然在相互通信的两个进程间没有一天虚连接,但在发送端UDP一定要有一个发送端口,而在接收端UDP也一定有一个接收端口,因此同样适用套接字。
19,BSD UNIX上的套接字:
Socket()创建一个套接字描述符;Bind()为套接字设置本主机的IP地址和端口号;Listen()表示该套接字愿意接收连接请求,并设置等待对列的长度;Accept()服务器通过其等待来自客户机的连接请求;Connect()客户机通过其来建立于服务器的连接;Send()在建好的连接上发送数据;Receive()从建好的连接上接收数据;
Close()释放一个连接;
7.2.3多路复用与多路分解服务
1、传输层的多路复用与多路分解就是将网络层所提供的主机到主机交付任务扩展到主机上运行的应用进程到应用进程的交付服务。
2、多路复用(Multiplexing)是指,在源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层。
多路分解(Demultiplexing)是指,将传输层报文段中的数据交付到应用进程。
3、传输层实现多路分解服务的方法是:给主机上的每个套接字分配一个端口号,当报文段到达主机时,传输层坚持报文段中的目的端口号,并将其定向到相应的套接字。然后报文段中的数据通过套接字进入其所连接的应用进程。
4、无连接的多路复用和多路分解:一个UDP的套接字由一个包含目的IP地址和目的端口号组成的二元组来标志。因此,若两个UDP报文段有不同的源IP地址或源端口号,但具有相同的目的IP地址和目的端口号,那么这两个报文段将通过相同的目的套接字定向到相同的目的应用进程。
5、面向连接的多路复用和多路分解:TCP套接字和UDP套接字存在的差别是:TCP套接字通过一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识,这样,当一个TCP报文段从网络到达一台主机时,主机使用四个值来将报文段定向(多路分解)到相应的套接字。因此,两个具有不同源IP地址或者源端口号的TCP报文段将被定向到两个不同的套接字,除非TCP携带了初始创建连接的请求。
当一个TCP报文段到达服务器时,所有4个字段用了定向报文段相应的套接字。
7.2.4数据封装(Encapsulation)概念综述
首先,由发送端系统应用层产生一个数据信息,即应用层报文。
接下来,将应用层报文传递到传输层并封装进UDP或TCP头部。若应用层协议是无连接的,则添加UDP头部,形成数据报;若是面向连接的,则添加TCP头部,形成报文段。传输层的头部包含对应于应用层协议的源端口号和目的端口号。传输层报文段也封装了应用层报文。
此时,传输层想网络层传递所形成的具有UDP或TCP数据的报文段。此处,网络层附加上IP头部,形成网络数据报,有时也将该层的数据结构成为分组。
然后,IP数据报被传送到数据链路层。此处附加数据链路层头部信息,并穿件数据链路层帧。数据链路层头部信息包含了源和目的主机的硬件地址,,其已被固化进网卡。
最后,形成帧被传递给物理层一比特的形式放在传输介质上传输。
在接收端系统,随着数据结构从下层递交到上层,各层的头部被依次除去。
7.3用户数据报协议UDP
1、UDP是在计算机上规定用户用数据报方式进行通信的协议,无连接方式,提供了应用程序之间传输数据报的基本机制。必须在IP层上运行。
2、与IP协议相比,仅增加两个内容:端口和校验和。有端口就能进行复用和解复用;校验和提供差错检测功能。
3、UDP的特殊优点:
a,UDP向应用系统提供了一种发送封装原始IP数据报的方法,且在发送时无需建立连接。这样,避免了建立和释放连接的麻烦,也减少了开销和发送数据之前的时延。
b.利用协议端口,UDP能够区分在同一台主机上运行的多个应用进程;利用校验和机制,在把数据向应用进程提交之前,先对数据做一些差错检查。
c,UDP只有8B的头部开销,比TCP的20B头部开销短得多。
d,UDP不使用拥塞控制,不提供端到端的确认和重传功能,也不保证数据报一定能到达目的端。所以主机不需要维持具有许多参数,复杂的连接状态表。
e.通过UDP协议,可以发送组播数据,所以使用组播服务的程序有建立在UDP协议上。
f.不同的网络使用不同的协议。如下:

7.3.2UDP报文结构
1、UDP的报文格式

由图可知,UDP数据报包括UDP报文头和数据两部分。UDP报文由5个字段域组成,其中,前四个组成UDP报头,每个字段域有两个字节组成;用户数据的字段数由应用程序及所需传输的数据决定。
A,源端口和目的端口:该字段包含16bit的UDP协议端口号。源端口是用来识别本机通信端点,是可选项,不用时置0.目的端口用来识别远程机器的通信端点。源和目的端口使得多个应用程序可以多路复用同一个传输层协议。
B.报文长度:占16位,该字段记录了UDP数据报的总长度,以字节为单位,包括8B的UDP和其后的数据部分。最小值是8B(即报头长度),最大值是65535B.
C,校验和:占16位,用来检测传输过程中是否出现错误。D.用户数据:长度有应用程序及所需传输的数据决定。
可计算出UDP数据报中的用户数据最大长度比这个最大值小。
2、由于UDP采用无差错控制机制,所以其发送过程与IP类似。UDP数据报+IP头部=IP分组,通过采用ARP协议来解析物理地址,然后发至目的端口。
7.3.3UDP校验和
1、UDP校验和用于检验UDP报头、数据和概念上的伪UDP报头之和。算法是将所有16位字以补码形式相加,然后对其加和取补。称作伪头部是因为它并不是UDP报文的真正报头,而是仅在计算UDP校验和时,临时吧一些额外的内容加在一起计算累加求和,把这些额外的内容合在一起称为伪报头。且伪报头既不向下层协议进程发送,也不向上层递交。
2、收发两端的两个进程是否有可能通过UDP提供可靠的数据传输?
答案:可以。但需要把确认和重传方案添加到应用程序中,有应用程序来模拟面向连接的部分功能。应用程序不能期望UDP来提供可靠的数据传输。
7.4传输控制协议TCP
1、TCP协议提供完全可靠的(没有数据重复和丢失)、端到端、面向连接的全双工的字节流传输服务,允许两个应用进程建立一个连接,并在任何一个方向上发送数据,然后终止连接。
2、TCP提供服务的主要特征:A.提供可靠服务:没有数据重复或者丢失;B.提供端到端的服务;C.提供面向连接的服务;D.提供字节流服务;E.支持全双工模式
7.4 传输控制协议TCP
7.4.1 TCP操作与可靠数据传输
TCP协议提供一个完全可靠地(没有数据重复或丢失)、端到端的、面向连接的、全双工的字节流传输服务,允许两个应用进程建立一个连接,并在任何一个方向上发送数据,然后终止连接。每个TCP连接可靠地建立,友好的终止,在终止发生前的所有数据都能被可靠传输。TCP使用三次握手的方式建立一个连接,数据传输完成后,任何一方都可以断开该连接。也就是说,一个应用进程开始传送数据到另一个应用进程之前,它们必须建立连接,需要相互传送以下必要的参数,以确保数据的正确传输。
从应用进程角度看,TCP提供的服务的主要特征:
1、TCP协议提供可靠性服务:TCP协议确保通过一个连接发送的数据能够被接收端正确无误的接收到,且不会发生数据丢失和乱序。TCP使用了各种机制确保服务的可靠性。
(1)选择适合发送的数据块大小,赋予序列号
TCP工作时可以灵活的决定缓存和发送时机。TCP连接一旦建立,应用程序就不断地把数据先发送到TCP发送缓存(TCP Send Buffer)。然后,TCP把数据流分成一块一块(Chunk)的,在装上TCP协议头部(TCP Header)形成TCP报文段,即将应用程序数据封装成TPDU。
这些报文段送到网络层,由IP协议封装成IP数据报后发送到网络中。当对方接收到一个报文段后就把它存放到TCP接收缓存(TCP Receive Buffer)中,应用程序不断地从这个缓存中读取数据流。
(2)对发送的TPDU启动计时器,超时重传
当TCP发出一个报文段后,就启动一个定时器,等待目的端确认收到这个报文段。如不能及时收到一个确认,将重传这个报文。
(3)对正确接收的TPDU进行确认
当TCP收到发自TCP连接另一端的报文段后,将发送一个确认。该确认不是立即发送,通常要推迟几分之一秒。
(4)对报头和数据计算校验和
TCP将对接收的TPDU检错,目的是检测数据在传输过程中的任何变化。如收到的报文段的检验和由差错,TCP将丢弃差错的TPDU和不确认收到此报文段,希望发送端超时并重传。
(5)识别并丢弃重复的TPDU
TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能失序。如有必要,TCP将对收到的报文段进行重新排序,将收到的报文段以正确的顺序交给应用层。由于IP数据报会发生重复,因此TCP的接收端必须丢弃重复的TPDU。
(6)提供流量控制(实行缓冲区管理)
TCP协议采用滑动窗口机制,实现流量控制。窗口大小表示在最近收到的确认号后允许传输的数据长度。数据传输的流量大小由接收端确定。如没有流量控制,发送端主机就可能以比接收端主机快的多的速度发送数据,使得接收端的缓存出现溢出。
2、TCP协议提供端到端的服务
TCP协议被称为一种端到端(End to End)协议,因为它提供一个直接从一台计算机上的应用进程到另一台远程计算机上应用进程的连接。应用进程能请求TCP构造一个连接、发送和接收数据,以及关闭连接。
假设运行在某台主机上的一个应用进程想与另一台主机上的一个应用进程启动一个连接,一个Java客户程序提供发出以下命令实现连接:
Socket clientSocket=new Socket(“hostname”,portNumber);
其中,hostname是服务器名字,portNumber标志服务器上的应用进程。这样,客户机上的传输层开始于服务器上的传输层建立一个TCP连接。
3、TCP协议提供面向连接的服务:一个应用进程必须首先请求一个到目的端的连接,然后使用这样连接来传输数据。
4、TCP协议提供字节流服务
建立好一个TCP连接,两个应用进程之间可以相互发送数据。两个应用进程通过TCP连接字节流,TCP协议不在字节流中插入记录标示符,称为字节流服务(Byte Stream Service)。TCP对字节流的内容不作解释(不知道传输的数据字节流是二进制数据,还是ASCII字符、EBCDIC字符或其他类型的数据),由TCP连接双方的应用层解释。
5、TCP连接支持全双工模式
全双工是支持同时双向传输。如主机1和2有连接,则主机1可向2传送数据,主机2也可向1传送数据。
所有TCP连接都是点到点通信(只有两个断点),TCP协议不支持多址通信和广播通信。
TCP协议允许用户发送紧急数据(Urgent Data),以便接收端优先处理。它是一种中断机制,当用户按下Ctrl+C中断一个已经开始的远程应用时,发送端应用程序在数据流在 注入控制信息并将其与Urgent标志一同交给TCP协议。这将导致TCP立即停止位该连接积累数据,并立即传输该连接上已有的消息。当紧急数据到达目的端后,接收端原有应用程序被中断,转向读取数据以找出紧急数据(紧急数据的末尾有标记),以便进行后续处理。
7.4.2 TCP报文结构
1、 TCP协议数据单元
在TCP协议中,每个报文段包含一个20B的报头(选项部分另加)和0个至多个字节的数据域。数据字节最长不超过65 536B(IP协议在数据报的总长)-20B(IP头)-20B(TCP报头)=65 496B。报头的大小必须先满足IP数据报数据载荷长度限制,还要满足最大链路层帧长度的设置,即最大传输单元(MTU)的限制。MTU常见值:1460B、536B或512B。

2、TCP报头
一个TCP报头段一TCP协议报头域(TCP Header Field)和存放应用程序数据的数据域(Data Fields)组成。TCP协议的全部功能体现在报头域各字段中。

(1)源端口号和目的端口号字段
16bit的源端口号用来识别本机连接点;16bit的目的端口号用来识别远程主机的连接点。
每个主机可自行决定如何分配自己的端口(从256号起)。端口号(16bit)+其主机的IP地址(32bit)=唯一的TASP(48bit)。
(2)序列号和确认号字段
序列号和确认号字段是TCP报文段头部中两个最重要的域之一。由TCP收发两端主机在执行可靠数据传输时使用。
32bit的序列号字段用来指示当前数据块在整个消息的位置;32bit的确认号域用来指示下一个数据块序列号,也可以间接表示最后收到的数据块序列号。
TCP最大报文段大小(Maximum Segment Size):在建立TCP连接时,源端主机和目的端主机都可能宣告最大报文段大小和一个用于连接的最小报文段大小。若一端未宣告最大报文段大小,就使用预先约定的字节数(如1500、536、512)。
当TCP发送长文件时,就把该文件分割成许多按照特定结构组织的数据块,除最后一个数据块小于最大报文段大小外,其余的数据块大小都等于最大报文段大小。在交互应用时,报文段通常小于最大报文段大小。
在TCP数据流中的每个字节都编有号码,例:一个106B的文件,假设最大报文段大小为103B,则第1个字节序号定义为0,每个报文段数据位1000B。

(3)头长度字段
4位头长度(Length)字段用来说明TCP报文段头部的长度,单位为由32bit组成的字的数目。
由于TCP选项字段(Option)是可选项,所以TCP报文段头部的长度可变。通常该字段为空,缺省值为5。TCP报文段头部长度共计20B。
(4)保留字段
紧接在头长度字段后有6bit未用,必须设置为0。是TCP协议在设计初准备用于更正设计中的错误而准备的。
(5)控制位标志字段
有6bit控制位标志位(Control Flags)字段,意义如下:
URG(Urgent Pointer)标志用来表示报文段中的数据已经被发送端的高层软件标为Urgent(紧急数据)。如URG为1,则表示本报文段中包含紧急数据,此时紧急数据指针表示的值有效,表示在紧急数据后的第一个字节的偏移值(即紧急数据的总长度)。
ACK标志用来表示确认号的值有效。如ACK为1,则表示报文段中的确认号有效。否则,无效,接收端可以忽略它。
PSH(Push)标志用来标志数据流中是否有紧急数据,如为1则表示此时接收端应把数据立即送到高层,及时其缓冲区尚未填满。
RST(Reset)标志用于复位因主机崩溃或其他原因而出现错误的连接,还可以用于拒绝非法的报文段或拒绝连接请求。RST=1表示要重新建立TCP连接。
SYN(Synchronize)标志用于连接,=1时表连接要与序列号同步。在连接请求中,若SYN=1、ACK=0,表示捎带确认字段无效;SYN=1、ACK=1,表示连接应答报文段应带有确认。
FIN 标志用于释放连接,=1时表发送端数据已发送完毕。
(6)窗口大小字段
16bit的窗口大小(Windows Size)字段用于数据流量的控制。字段中的值表示接收端主机可接收的数据块。
对每个TCP连接,主机都设置一个接收缓存,当主机从TCP连接在接收到正确数据时将它放在接收缓存中,相关应用程序就从缓存中读出数据。但可能从TCP连接来的数据到达时操作系统正在执行其他任务,应用程序来不及读数据,可能会使接收缓存溢出。为了减少这种可能性的出现,接收端必须告诉发送端有多少缓存空间可利用,TCP借助它来提供数据流量的控制,这是设置TCP接收窗口大小的目的。
(7)校验和字段
校验和字段为确保高可靠性而设置,用于校验TCP报文段头部、数据和概念上的伪TCP头(Pseudo Header)之和。校验和算法是将所有16字以补码形式相加,再对其相加和取补。操作时该字段设置为0。因此,当接收端对整个报文段(包括校验和字段)进行运算时,结果为0表正确。
伪报头不是TCP报文段真正的报头,是仅在计算TCP校验和时,临时把它加在一起计算。在发送TCP报文段时,并不发送伪报头的内容。伪报头内容包含一个数据报的32bit源地址、目的地址、8bitTCP协议类型(值为6)及TCP报文段(包括TCP头)总长度。如下图。
在校验和计算在包括伪TCP报头,有助于检测传送的报文段是否正确,但由于参与运算的伪TCP报头中包含的源/目的地址均是IP地址,属于IP层不属于传输层,即在传输层协议作校验和计算时用到了网络层的数据(IP地址),所有这种机制违反了协议的分层规则。

(8)选项字段
选项字段用于提供额外设置,且这种额外设置不包含在标准TCP报文段头部。这些额外设置可以是设置主机接收最大TCP载荷能力、滑动窗口大小超过64KB,及设置选择重传报文段等。
设置主机接收最大TCP载荷能力:从数据传输角度看,使用大报文段比使用小报文段更有效。因为20BTCP报文段头部对于大量数据来说可忽略不计,但对于性能较差的主机则可能不具备处理大报文段的能力。因此在建立连接时,通信双方需在选项字段中声明其最大载荷能力并以其中最小的载荷能力作为该连接的报文段传输标准。若某台主机未使用该选项声明其最大载荷能力,则以缺省值536B作为去载荷能力,即具有接受长度为(536+20)B=556B的TCP报文段载荷能力是在Internet上必须达到的主机性能。
滑动窗口设置为64KB,但在带宽高、时延长或两者兼备的线路应用时会出现线路利用率低的问题。在卫星通信连接时更糟糕。解决方法:采用较大的发送窗口,在RFC1323规范中规定了窗口比例选项,允许发送端和接收端协商一个适宜的窗口比例因子,该比例因子将允许滑动窗口最大设置到232B。
选择重传报文段不是退回到报文段n重传所有报文段。是选项的一个广泛应用。若接收端接收了一个坏报文段且又接收了多个正确的报文段,TCP协议会因定时器超时而重传所有未被确认的报文段(也包括正确的报文段)。若在选项中加入NAK(由RFC1106定义),允许接收端请求发送指定的一个或多个报文段(而不是所有的报文段)。接收端收到重传的报文段后,与其缓冲区中原来正确的报文段一起确认,可以减少重传的数据量。
7.4.3 TCP的连接管理
连接是虚拟的,对等实体同意交换数据,确定交换的必要参数,实体相互交换数据单元,进行差错控制、流量控制、响应确认,以达到数据单元正确、流畅、及时的交换,而将传输细节及如何传输的任务留给更低层。传输连接管理是使连接的建立和释放都能正常进行。
1、建立连接和释放连接
在任何数据可以发送前,必须先建立一条连接。TCP协议建立连接采用三次握手的方法,握手过程按以下步骤进行:
1) 服务器方执行Listen和Accept,被动侦听。
2) 客户机执行Connect,产生一个SYN=1和ACK=0的TCP报文段到达服务器,表示连接请求。
3) 服务器的传输实体接收到这个TCP报文段后,首先检查是否有服务进程在所请求的端口上侦听,若无,回答一个RST=1的TCP报文段。
4) 若有服务进程在所请求的端口上侦听,该服务检查可以决定是否接受请求。在服务器方接受后,发出一个SYN=1和ACK=1的TCP报文段表示连接确认,并请求与对方的连接。一般情况下,TCP报文段发送顺序如下图(a):

5) 客户机收到确认后,发出一个SYN=0和ACK=1的TCP报文段表示给对方的连接确认。
6) 若两个主机同时试图在相同的两个套接字之间建立一个连接,事件发生顺序如图(b)。发生呼叫碰撞而最终只能建立一条连接。进行连接的TCP双方通过交换3个报文段来同步序列号,基于三次握手的TCP连接同步过程如下表:

TCP连接虽是全双工方式,但在释放连接时则可以单向连接释放。释放连接时,任何一方均可以发出一个FIN=1的TCP报文段(表示己方无数据可发送)并启动定时器。可能出现两种释放连接情况:一,当FIN报文段被确认后就关闭了该方向的连接。另一个方向仍可以发送数据,只有当两个方向的连接都关闭后该连接才被完全释放。二,是无确认并且超时,也关闭连接。因此,TCP连接释放模式相当于一种双单工连接而不是全双工连接。
完全释放一个连接需4个TCP报文段,即每个方向均有一个FIN报文段和一个ACK报文段,若将第一个ACK报文段与第二个FIN报文段合并为同一报文段(只需将TCP报文段头部的相关位置1),则完全释放一个连接只需3个TCP报文段。
在TCP协议中,建立连接和释放连接所需状态多达11种。

在TCP协议中,每个连接均开始于Closed状态;若一方执行了被动连接原语Listen或主动原语Connect时,便脱离Closed状态;若另一方也执行了相应的连接原语,则状态变为Established,连接建立成功;若任何一方提出释放连接,则连接释放后又回到Closed状态。
2、TCP三次握手建立连接的示例(利用Ethereal捕获的执行TCP三次握手的报文段示例)
在第一个窗格中,帧1是IP地址为192.168.1.100源主机从80端口发送的连接请求报文段,在TCP报头中含有SYN(同步)标志位,请求与目的主机(IP地址为202.119.160.121)的1237端口进行连接。该报文初始序号为0。帧2是目的主机同意进行通信返回的一个确认报文段,其报头中的ACK置1、SYN置1,用来表示对连接的确认(通过设置位ACK来确认了第一SYN报文段已经ACK,设置SYN为1,以便在相反的方向使用初始序号0来请求连接)。帧3时源主机收到确认后,给目的主机(202.119.160.121)发出的一个SEQ=1、ACK=1的连接确认报文段。至此,完成三次握手,源主机和目的主机间就可以进行通信。
3、TCP的状态变迁
TCP的连接过程实际上是TCP状态的变化。如图7-24(P352)所示的有限状态机来描述TCP连接状态以及各状态可能发生的变迁。这是一个在典型的客户机/服务器模式下建立连接、传输数据和释放连接的有限状态机。粗实线表客户机的正常路径,粗虚线表服务器端的正常路径,细实线表不常见的事件;每条线上均按事件/动作方式标注相应的事件和动作。
这里的事件指用户执行的服务原语、一个报文段的到达或者定时器超时等;动作指控制被动(FIN、STN、RST)的发送或为空(用“-”表示):括号中的文件为注释内容。
为便于理解TCP连接管理有限状态机,从客户机、服务器两个角度,对建立连接好释放连接主要进程分析:
(1)建立连接
客户机角度:客户机开始状态均为Closed。当客户机端的应用程序发出连接请求(调用Connect)后,即通过该机的传输实体创建一个连接记录,沿粗实线进入SYN Sent状态,并向远端的服务器发送一个SYN报文段。当接收到来自服务器端的SYN+ACK报文段(SYN=1,ACK=1)后,客户机的TCP实体执行三次握手的第3步发出的最后一个ACK报文段,客户机端转换为Established状态,客户机与服务器之间的连接建立成功,其应用程序可以发送和接收数据。
服务器角度:服务器开始也处于Closed状态,当服务器执行Listen服务原语后进入Listen状态,等待客户端的连接请求到来。当一个SYN报文段(来自客户端)到达后,服务器发出SYN+ACK报文段以确认客户端请求并进入到SYN Received状态。当服务器接收到客户端的ACK确认报文段后,三次握手完成。服务器进入Established状态。连接建立成功。
(2)释放连接
客户机角度:当客户端的应用程序完成数据收发任务后,其TCP实体执行Close原语,发出一个FIN报文段以实现主动关闭,进入FIN Wait 1状态等待相应的ACK报文段。当接收到来自服务器的ACK报文段后,其状态转入FIN Wait 2状态,此时连接在一个方向被断开。当服务器也发一个FIN报文段以断开连接并获得确认时,双方均断开连接。
服务器角度:当客户端应用程序完成数据发送任务后,因执行Close原语而传送一个FIN报文段到达服务器端,服务器将进入被动关闭状态。服务器接收到该FIN报文段后,进入Close WAIT状态;并执行Close原语,向客户端发送一个FIN报文段,进入Last ACK状态,服务器在收到客户端的确认后才释放该连接。
现在,双方均断开连接。强调:为了防止确认数据丢失的情况出现,客户端TCP实体要等待一个最大的数据报生命期,进入Time Wait状态。当定时器最大数据报生命期超时,并确保该连接的所有数据报全部消失后,客户端TCP才删除该连接记录,回到最初的Closed状态。
7.4.4 TCP流量控制
TCP给应用程序提供了流量控制服务,以消除发送端使接收端缓存溢出的可能性。因此可以说流量控制是一个速度匹配服务,即匹配发送端的发送速率与接收端应用程序的读取速率。
TCP的流量控制策略包括:TCP的滑动窗口管理机制、根据接收缓冲区及来自应用的数据确定策略。
TCP的滑动窗口管理机制采用的是基于确认和可变窗口大小策略。它通过让发送端保留一个称为接收窗口的变量来提供流量控制。接收窗口用于告诉发送端,该接收端还有多少可用的缓存空间。 窗口和窗口通告可以有效控制TCP的数据传输流量,使接收端的缓冲空间不会产生溢出现象。
正常情况下,当窗口大小为0时,发送端被阻塞不能再发送TCP报文段,但有两个例外:
1) 紧急数据可以发送。2)为防止死锁,发送端可以发送1B的TCP段,以便让接收端重新声明确认号和窗口大小。
为了防止阻塞时降低传输层协议性能,如何改进?
1, 发送端缓存应用程序的数据,等到形成一个比较大的报文段再发出。
2, 在某些情况下,接收端延迟发送确认段。可将确认信息和窗口大小修正信息延迟500ms发送,希望在这些数据报上能捎带一些数据。(带宽有限时,此方法不可取?
3, 使用Nagle算法
4, 使用Clark算法解决傻窗口综合征,即限制接收端发送1B的窗口大小修正报文段。
7.4.5 TCP定时管理
TCP提供可靠的端到端的传输服务。当TCP发送数据时,发送通过一种重传方案来补偿数据的丢失,且通信的双方都要参与。在接收端TCP收到数据报时,它要返回给发送端一个确认ACK。定时器到点前,若没有收到一个确认,则发送端重传数据。如果定时器溢出时还没收到确认,就重传该数据报文。关键就是超时和重传的策略。对于每个连接,TCP使用以下定时器辅助完成该项工作。1)重传定时器:用于希望收到另一端的确认。2)持续定时器:使窗口大小信息保持不断流动 3)保活定时器:用于检测一个空闲连接的另一端何时崩溃或重启。4)MSL定时器:用于测量一个连接处于Time Wait状态的时间。
其中,重传定时器是最重要的。在发送一个报文段的同时,启动一个数据重传定时器。如果在重传定时器超时前,该报文被确认,则关闭该定时器:反之,则重传该报文段,并重新开始计时。
平均往返时延RTT=α•(旧的RTT)+(1-α)•(新的往返时延样本M)
假定往返时延样本为M,则超时重传时间RTO的计算如下:
Err=M-A
A←A+g•Err
D←D+h•(|Err|-D)
RTO=A+4•D
7.5 TCP拥塞控制原理
加载到某个网络上的载荷超过该网络处理能力的现象,称为拥塞现象。网络拥塞通常会引起许多报文段丢失。解决拥塞问题的大部分工作由传输层协议来承担,通过降低数据传输速率来避免拥塞。
拥塞原因:1.快速网络向小缓存主机或者交换结点传输数据,接收端的处理能力不足。2.慢速网络向大缓存网络结点传输数据,网络链路带宽不够或网络交换结点队列溢出。3.由于某种原因造成的死锁。
直接原因:1.主机或者网络交换结点缓存空间不足。2.处理器处理能力较弱。3.带宽容量相对不足。4.由死锁引起网络性能下降。
如何确定拥塞控制算法:TCP通过动态地控制滑动窗口的大小来实现拥塞控制,窗口大小的单位是字节。TCP协议中滑动窗口的含义是指发送端未收到接收端返回的确认信息的情况下,最多能发送多少字节的数据。滑动窗口大小在建立连接时确定好了,发送端按此窗口大小发送数据就不会由于缓冲区溢出而引起拥塞。
两种TCP拥塞控制策略:
1. 核心a.在连接建立时声明最大可接收报文段长度b.利用可变滑动窗口协议防止出现拥塞。
2. 双窗口策略。核心:a.发送端维护两个窗口,即接收端设定的可发送窗口和拥塞窗口,按两个窗口的最小值发送。b.拥塞窗口依旧照慢启动算法和拥塞避免算法变化。
所谓拥塞窗口,是指一个由发送端根据网络拥塞的情况而确定的最大可传输字节数,它根据网络拥塞情况而变化。也就是说,双窗口方案中的每个窗口都反映了发送端可传输的字节数,而该策略规定是取两个窗口中的最小值作为可以该连接当时发送的字节数。
慢启动算法:当建立连接时,发送端将拥塞窗口大小初始化为该连接所用的最大报文段的长度值,并随后发送一个最大长度的报文段。若该报文段在定时器超时之前被接收端接受且其确认被发送端接受,则发送端的下一次发送字节数在原来的拥塞窗口的基础上再加一个报文段的字节数,以此类推。这种确定拥塞窗口大小的算法称为~。其三大要素1)连接建立时拥塞窗口初始值为该连接允许的最大段长,阈值为64K。2)接收端窗口大小。3)拥塞窗口大小
用程序语言描述慢启动算法:
Initialize:Congwin=1
for (each segment ACKed)
congwin++
Until (loss event OR
CongWin≥threshold)
拥塞避免算法主要用于当拥塞窗口大于阈值时的处理。即:
1) 若拥塞窗口大于阈值,从此时开始,拥塞窗口线性增长,一个RTT周期增加一个最大段长,直至发生丢包超时事件。
2) 当超时事件发生后,阈值设置为当前拥塞窗口大小的一半,拥塞窗口重新设置为一个最大段长。
3) 其他情况则执行慢启动算法
用程序语言描述拥塞避免算法:
Until (loss event){
Every w segments ACKed:
Congwin++
}
threshold =Congwin/2
Congwin=1
pergorm slowstart
双窗口拥塞控制策略:将慢启动算法和拥塞避免算法结合起来就是~~,也就是目前TCP协议的拥塞控制算法。
思考题
1、传输层的许多功能,如流量控制、可靠传输也由数据链路层处理。这是否是重复?为什么?
答:数据链路层的功能是保证每条链路中节点到节点的无差错传送。虽然对每个网络之间传输的帧进行了差错控制,但当帧在一个路由器内部处理时,还可能引入差错。这个差错不会被下一条链路中的数据链路差错控制机制发现,因为该机制仅检查在链路起始和结束之间是否引入了差错。因此传输层自己必须进行端到端检查,以保证报文段正确到达,保证可靠性。同样,传输层的流量控制也是端到端的,而不是像数据链路层那样作用在单条链路上。使用滑动窗口协议,窗口的大小可变化以适应缓冲区的占用,窗口实际可容纳的数据量可协商。滑动窗口用来是数据传输更加有效,同时也控制数据的流量,使接收端不会变的过分拥挤。
2、面向连接的传输服务所经过的三个阶段是什么?
答:1)连接的建立。确认通信双方的存在,分配通信所需系统资源,协商通信所需参数。
2)连接的释放:非对称式释放和对称式释放。通常用三次握手+定时器的方法释放连接。
3)网络故障的恢复。当网络或系统故障消除后,发送端和接收端自动恢复到故障前的连接状态。
3、ISO/OSI-RM定义的两个传输服务是什么?
答:一、用户数据报协议(User Datagram Protocol,UDP),为调用应用进程提供一种不可靠、无连接的服务。二、传输控制协议(Transmission Control Protocol,TCP),它为调用应用进程提供了一种可靠的、面向连接的服务。
4、为什么需要服务访问点?
答:服务访问点是层与层之间交换信息的抽象接口,分别是传输层服务访问点和网络层服务访问点。通过它,才能把网络层的数据交付给正确的应用程序。
5、简述面向连接的传输服务建立连接的过程。
答:采用三次握手方案建立连接:①请求连接的主机A发送连接请求报文到预期的接收端主机B。连接请求报文中有请求序列号。②响应的主机B回送一个连接应答报文到主机A。连接应答报文中包含请求的序列号以及主机B指定的连接序号。③主机A收到报文后给主机B回送一个连接确认报文,建立连接。
6、简述Socket的定义,及其功能和用途。
答:定义:套接字(Socket):在TCP/IP协议中,为了通信时不致发生混乱,端口号必须与主机IP地址结合起来一起使用,称之为套接字或者插口,以便唯一的标志一个连接端点。
功能:为了通信时不致发生混乱,在发送和接收端分别创建一个套接字的连接端点即可获得TCP,UDP服务。
7、UDP协议的特点有哪些?
答:与IP协议相比,仅增加两个内容:端口和校验和。有端口就能进行复用和解复用;校验和提供差错检测功能。
UDP的特殊优点:
a,UDP向应用系统提供了一种发送封装原始IP数据报的方法,且在发送时无需建立连接。这样,避免了建立和释放连接的麻烦,也减少了开销和发送数据之前的时延。
b.利用协议端口,UDP能够区分在同一台主机上运行的多个应用进程;利用校验和机制,在把数据向应用进程提交之前,先对数据做一些差错检查。
c,UDP只有8B的头部开销,比TCP的20B头部开销短得多。
d,UDP不使用拥塞控制,不提供端到端的确认和重传功能,也不保证数据报一定能到达目的端。所以主机不需要维持具有许多参数,复杂的连接状态表。
e.通过UDP协议,可以发送组播数据,所以使用组播服务的程序有建立在UDP协议上。
f.不同的网络使用不同的协议。
8、能够装进一个以太网帧的最大UDP报文长度是多少?
答:65535B
9、试计算出最大可能的UDP报文长度(整个UDP报文必须能被装进一个IP数据报中)。
答:理论上,IP数据报的最大长度为65535B,减去20B的IP头部,再减去8B的UDP头部,可计算出UDP数据报中的用户数据最大长度应为(65535-20-8)B=65507B,然而大部分实现所提供的长度比这个最大值小。
10、如果一个应用程序要利用UDP在以太网上发送一个8KB的报文,那么会有多少帧在网络上传输?
11、TCP协议的特点是什么?它为什么能够支持多种高层协议?
答:特点:TCP协议提供一个完全可靠地(没有数据重复或丢失)、端到端的、面向连接的、全双工的字节流传输服务,允许两个应用进程建立一个连接,并在任何一个方向上发送数据,然后终止连接。TCP协议建立在不可靠的网络层IP协议之上,IP不能提供任何可靠性机制,TCP的可靠性完全由自己实现。
支持多种高层协议的原因:
12、TCP协议用什么技术来建立可靠的连接?
答:三次握手:TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。
13、TCP校验和是必要的吗?或者TCP协议能否让IP来对数据进行校验和?
答:是必要的。TCP校验和是为了确保高可靠性。可以让IP来对数据进行校验和,因为参与运算的伪TCP报头中包含的源/目的地址均是IP地址,属于IP层不属于传输层,即在传输层协议作校验和计算时用到了网络层的数据(IP地址),所有这种机制违反了协议的分层规则。
14、简述TCP协议建立连接的三次握手方案。
答:第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器时入Established状态,完成三次握手.
15、简述TCP连接管理步骤。
答:1)服务器方执行Listen和Accept,被动侦听。
2)客户机执行Connect,产生一个SYN=1和ACK=0的TCP报文段到达服务器,表示连接请求。
3)服务器的传输实体接收到这个TCP报文段后,首先检查是否有服务进程在所请求的端口上侦听,若无,回答一个RST=1的TCP报文段。
4)若有服务进程在所请求的端口上侦听,该服务检查可以决定是否接受请求。在服务器方接受后,发出一个SYN=1和ACK=1的TCP报文段表示连接确认,并请求与对方的连接。
5)客户机收到确认后,发出一个SYN=0和ACK=1的TCP报文段表示给对方的连接确认。
6)若两个主机同时试图在相同的两个套接字之间建立一个连接,事件发生顺序如图(b)。发生呼叫碰撞而最终只能建立一条连接。进行连接的TCP双方通过交换3个报文段来同步序列号。
16、TCP协议采用了哪些流量控制策略?
答:TCP的流量控制策略包括TCP的滑动窗口管理机制、根据接收缓冲区及来自应用的数据确定策略。
17、什么是拥塞?造成拥塞的原因有哪些?简述TCP协议拥塞控制策略。
答:加载到某个网络上的载荷超过该网络处理能力的现象,称为拥塞现象。
拥塞原因:1.快速网络向小缓存主机或者交换结点传输数据,接收端的处理能力不足。2.慢速网络向大缓存网络结点传输数据,网络链路带宽不够或网络交换结点队列溢出。3.由于某种原因造成的死锁。直接原因:1.主机或者网络交换结点缓存空间不足。2.处理器处理能力较弱。3.带宽容量相对不足。4.由死锁引起网络性能下降。
两种TCP拥塞控制策略:
一.核心a.在连接建立时声明最大可接收报文段长度b.利用可变滑动窗口协议防止出现拥塞。
二.双窗口策略。核心:a.发送端维护两个窗口,即接收端设定的可发送窗口和拥塞窗口,按两个窗口的最小值发送。b.拥塞窗口依旧照慢启动算法和拥塞避免算法变化。
18、简述TCP和UDP协议通信的各自特点。在什么情况下使用TCP通信?在什么情况下使用UDP通信?请提出个人见解。
答:TCP是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。UDP是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。
tcp协议和udp协议的区别:
TCP UDP
面向连接 面向非连接
可靠 不可靠
传输大量数据 少量数据
速度慢 快
19、使用一个网络分析器捕获TCP连接中的一系列帧,分析用于打开和关闭此TC连接的报文段的内容,通过查看帧时间和TCP序列号来估算传输数据信息的速率。在此连接过程中,通知窗口是否发生变化?
20、试设计一个TCP(或UDP)网络通信程序。
第8章 网络应用
1.应用层的传统服务主要有:(1)网络虚拟终端(2)文件传输、访问和管理(3)邮件服务(4)目录服务
2.网络应用模式的分类 根据计算机网络应用模式的发展过程,可分为(1)以大型机为中心的集中式应用模式:这一应用模式的特点是一切处理工作均依赖于主机,集中的数据、集中的应用软件、集中的管理。(2)客户机/服务器模式(Client/Server):这种模式基于网络的分布式应用。(3)基于Web的客户机/服务器模式(4)P2P网络模式 P2P是Peer to Peer的缩写,通常译为对等互连或对等连接。
3.客户机/服务器模式:在分布式计算中,通常将一个应用进程被动地等待另一个应用进程来启动通信过程的工作模式称之为客户机/服务器模式。它的组成:客户机、服务器和中间件。
4.基于Web的客户机/服务器模式:是可提供多层次连接的应用模式,即客户机可与相互配合的多个服务器组相连接以支持各种应用服务,而不必关心服务器的物理位置,即由服务器策略转移到了网络服务策略。由于实施这种策略要依靠Internet,因此也将这种应用模式称为全球网络客户机/服务器模式或客户机/网络模式。它的组成(1)Web服务器(2)应用软件服务器(3)可由Java小应用程序访问的数据库、文件、电子邮件、目录服务以及其他专用功能的服务器(4)客户机。
5. .基于Web的客户机/服务器技术特点:(1)Web信息服务:这是由Web浏览器/服务器的组合来实现的页面信息服务。(2)Java语言:Java是一种编程语言平台,提供可移植、可解释的面向对象的编程语言,具有简单易用、方便移植、简短、健壮、多线程、安全、可扩充等基本特征。(3)NC:用户用来访问网络资源的设备称为用户机,可分为两类:一类是厚用户机,即通常的PC机,可接入网络,但在离线情况下能完全独立工作。另一类是薄用户机,即NC,其能力依赖于网络。
6.P2P网络模式的特点:(1)分散化(2)可扩展性(3)健壮性(4)隐私性(5)高性能
7.进程通信 (1)客户机/服务器进程:网络应用程序由成对的进程组成,这些进程通过网络相互发送报文。(2)套接字接口:a应用程序编程接口b套接字API(3)进程寻址
8.TCP服务模式型包括面向连接服务和可靠的数据传输服务;UDP协议提供无连接的、不可靠的数据传输服务。
9.要实现Web服务,必须解决这样几个问题:(1)怎样标志分布在整个Internet上的Web文档?Web使用统一资源定位器(Uniform Resource Locators,URL)来标志Web上的各种文档,并使用一个文档在整个Internet的范围内唯一的标识符(Uniform Resource Identifier,URI)(2)用什么样的协议实现Web上的各种超链接?使用超文本传输协议HTTP。(3)怎样使不同的作者创作的各式各样的页面都能够在Internet上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链接?Web引入了超文本标记语言(Hypertext Markup Language,HTML),使得Web页面设计者可以很方便地用一个超链接从本页面的某处链接到Internet上的任何一个Web页面,并能够在自己的计算机屏幕上将这些页面内容显示出来。(4)怎样使用户很方便地检索到所需要的信息?为了在Web上方便地检索信息,用户可以使用各种各样的搜索引擎工具。
10.URL的组成:(1)访问方式,及客户与服务器之间所使用的通信协议;(2)存放信息资源的服务器域名;(3)存放信息资源的路径和文件名。其格式为:
<URL访问方式>://<服务器域名>[:<端口>]/<路径>/<文档名>
11.HTML文档结构:元素(Element)是HTML文档结构的基本组成部分。一个HTML文档本身就是一个元素。每个HTML文档由头部(Head)和主体(Body)两个主要元素组成,主体紧接在头部的后面。头部包含文档的标题(Title),以及系统用来标识文档的一些其他信息。
12.HTTP事务处理过程由连接、请求、响应和断开4个阶段组成。
13.文件传输协议FTP(File Transfer Protocol)特性:(1)通用性(2)文件内容任意(3)验证与权限(4)内容异构特性
14.简单文件传输协议TFTP(Trivial File Transfer Protocol)与FTP的差异:第一,TFTP客户机与服务器之间的通信使用UDP协议而不是TCP协议。第二,TFTP只支持文件传输。第三,TFTP没有授权认证。
15. TFTP的3种传输模式:(1)NET ASCII模式即8位ASCII(2)8位组模式,即以字节为单位(3)邮件模式,在这种模式中,传输用户的不是文件而是字符。
16.网络文件系统NFS(Network File System)与TCP/IP协议一起使用的这种文件访问机制。
17.电子邮件系统格式 用户名@邮箱所在的主机域名
18.电子邮件系统:用户代理(User Agent)、邮件服务器(Mail Server)和简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)。
19.邮件访问协议IMAP(Internet Mail Access Protocol)
20.DHCP构建与BOOTP之上,它提供了一种向主机分配临时IP地址的机制,最大化地利用了IP地址空间。分为两个部分:一是服务器端,另一个是客户机端。
21.DHCP的IP分配形式:(1)自动分配(2)动态分配
22.DHCP工作原理:(1)寻找DHCP服务器;(2)提供IP租用地址(3)接受IP租约(4)租约确认(5)跨网络的DHCP运作
域名系统(Domain Name System,DNS):是通过客户机/服务器模式提供的重要的网络服务功能,是应用层协议
域名结构:顶层域分为通用的域和国家的域,通用的域是com(商用结构),edu(教育系统),net(网络提供者),gov(政府机构),org(其他组织)等
域名的特征:1由一组标号组成,标号遵循ARPAet主机名的规则,以字母开始,以字母或数字结尾,中间允许字母,数字和“-”。标号不区分大小写字母2.每个标号为0-63个字母(3)域名总长不超过255b(4)标号之间用句点’”.”,据点知识结构,代表层次边界(5)从左向右代表从低到高的层次,最右边的标号是最顶层的域名
DNS报文:有查询报文和应答报文,并且两种报文具有相同的格式
DNS的工作过程:(1)同一台用户主机上运行着DNS应用的客户机(2)该浏览器从URL中抽取出主机名www.njit.edu.cn,并将这个主机名传给DNS应用的客户机(3)该DNS客户机向DNS服务器发送一个包含主机名的请求(4)该DNS客户机最终会收到一份应答报文,其中含有对应于该主机名的ip地址(5)一旦该浏览器接收到来自DNS的IP地址,它就能够向IP地址定位的HTTP服务器发起一个TCP连接
分布式,层次数据库
DNS服务器有根DNS服务器,顶级域(Top Level Domain,TLD)DNS服务器和权威DNS服务器三种类型
域名解析服务:域名解析器,域名解析的实现1.本地域名服务器域名解析(1)查询本地服务的域名解析表(2)查询本地服务器的域名缓存器(3)如无结果转第二步
2从根服务器自顶向下查询
p2p文件共享、存储及检索
P2P文件共享分为3类:(1)非结构化p2p系统(2)结构化p2p系统在(3)松散结构化p2p系统
p2p分布式存储(1)非结构化p2p系统(2)结构化p2p系统
3 p2p检索技术:使用户能够深度搜索文档,而且这种检索无需通过web服务器,也可不受信息文档格式和宿主设备的限制,可达到传统目录式搜索引擎无可比拟的深度
4信息资源定位:(1)集中式目录检索(2)广播方式(3)动态哈希表方式
第九章
1、 多媒体通信:多媒体通信是指在通信中所交换的信息类型不止一种,二十多种信息的综合体,是一种对文本、图形、图像、音频和视频多媒体信息进行表示、存储、检索和传输的技术。
2、 多媒体信息的基本特征归纳成以下三个方面:
a) 综合性(2)相关性(3)动态性
3、 多媒体通信的特征:
a) 复合性(2)集成性(3)交互性(4)同步性和实时性
4、 多媒体通信的关键技术:
a) 多媒体数据的压缩编码与同步技术(2)流媒体技术(3)虚拟现实技术
5、 虚拟现实技术:虚拟现实技术是指多媒体计算机逼近现实世界的虚拟环境技术。
6、 多媒体通信对网络的需求:多媒体通信对网络的要求主要体现在以下几个方面:
(1)多媒体通信网络必须有足够的带宽(2)网络必须保证服务质量(3)网络同步要求(4)差错控制(5)多播
7、 多媒体通信网络:多媒体通信网络(简称多媒体网络)是以光纤作为主要传输媒体、基于B-ISDN的网络。从本质上讲,多媒体通信网络就是综合、集成运行多种多种媒体信息的计算机网络,可以是局域网,也可以是广域网。
8、 多媒体网络终端:多媒体网络终端一般由交互式检索、编解码、各种媒体同步、编辑和执行等部分组成。