1、1.分组交换的原理:分组交换实质上是在存储-转发基础上发展起来的,它兼有电路交换和报文交换的优点将报文分段构成分组。在发送端,先把较长的报文划分成多个较短的、固定长度的数据段,每一个数据段前面添加上首部构成分组;以“分组”作为数据传输单元,依次通过路由器把各分组发送到接收端;接收端收到分组后剥去首部还原成报文;分组所添加的首部;首部含有地址等控制信息;分组交换网中的路由器根据首部中的地址信息,把分组转发到下一个路由器;路由器处理分组的过程是:把收到的分组先放入缓存(暂时存储) ;查找转发表,找出到某个目的地址应从哪个端口转发;把分组送到适当的端口转发出去;2.网络协议的三要素.语法:数据与控制
2、信息的结构或格式.语义:需要发出何种控制信息,完成何种动作以及做出何种响应.同步:事件实现顺序的详细说明 PDV/SDV 两者之间的关系.3.协议数据单元PDU 与服务数据单元 SDU 的区别:协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。协议是“水平的” ,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的” ,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在 OSI 中称为服务原语。4、实体,服务访问点:表示任何可发送或接收信息的硬件或软件进程,实体就是一个特定的
3、软件模块。网络连接设备的区别及对应的层次。在同一个系统中相邻俩层的实体进行交互的地方,通常称为服务服务访问点SAP,它是一个抽象的概念,实际上就是一个逻辑接口,有点像邮政信箱,但这种层间接口和俩个设备之间的硬件接口并不一样。5、OSI 七层模型:物理层:二进制位串的传输。数据链路层:介质访问控制。网络层:路由选择,国际互联。传输层:端到端的连接。会话层:主机间的通信。表示层:数据表示,压缩解压,加密解密。应用层:处理应用的网络进程如 telnet,HTTP,FTP,WWW,NFS,SMTP。TCP/IP 是四层的体系结构:应用层(会话层,表示层,应用层) 、运输层(运输层) 、网际层(网络层)
4、和网络接口层(数据链路层,物理层) ;6.五层协议包括各层的主要功能(1)物理层:物理层物理层的任务就是透明地传输比特流。 “透明地传送比特流”指实际电路传送后比特流没有发生变化。 (2)数据链路层:据链路层的任务是将在网络层交下来的数据报组装成帧,在两个相邻结点间的链路上实现帧的无差错传输,实现节点与节点之间的通信。 (3)网络层:网络层是为主机之间提供端到端逻辑通信。网络层主要任务即“选路转发” ,负责为分组选择合适的路由,使源主机运输层所传下来的分组能够交付到目的主机。 (4)运输层:运输层提供应用进程之间的逻辑通信。因特网的运输层可使用两种不同的协议。即面向连接的传输控制协议 TCP
5、和无连接的用户数据报协议 UDP。面向连接的服务能够提供可靠的交付。无连接服务则不能提供可靠的交付。 (5)应用层:应用层确定进程之间通信的性质以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远地操作,而且还要作为互相作用的应用进程的用户代理,来完成一些为进行语义上有意义的信息交换所必须的功能。7.网络连接设备的区别及对应的层次:物理层使用的中间设备叫做转发器。数据链路层使用的中间设备叫做网桥或桥接器。网络层使用的中间设备叫做路由器。在网络层以上使用的中间设备叫做网关。用网关连接俩个不兼容的系统需要在高层进行协议的转换。第二章 物理层的四个特性:机械特性:指明接口所用接线器的形状和
6、尺寸、引线数目和排列方式、接插件的锁紧方式等;电气特性:指明引线上传输信号的码型结构、电平高低、阻抗大小、传输速率等;功能特性:定义接口部件的各信号线的用途(数据线、控制线、定时线等) ;规程特性:定义建立、维持、释放物理连接和传输比特流等功能事件的实现顺序;各个传输介质的比较:传输媒体也称为传输介质或传输媒介,它就是数据传输系统中在发送器和接收器之间的物理通道。可分为俩大类,即导向传输媒体(双绞线,同轴电缆,光缆)和非导向传输媒体(无线传输,短波通信,微波接力通信,卫星通信) 。在导向传输媒体中,电磁波被导向沿着媒体传播,而非导向传输媒体就是指自由空间,在非导向传输媒体中电磁波的传输常称为无
7、线传输。常用物理层标准 RS232EEIA RS-232-E 是由美国电子工业协会 EIA 在 1969 年颁布的一种目前使用最广泛的串行物理接口;EIA - Electronic Industry Association 、RS - Recommended Standard 、232-标识号码 、E-表示该推荐标准已被修改过的次数 RS-232 标准提供了一个利用公用电话网络作为传输媒体,并通过调制解调器将远程设备连接起来的技术规定 ;这个标准未考虑计算机系统的要求,而它又广泛应用于计算机系统,在做计算机系统连接时,采用交叉跳接信号线方法的连接电缆。 对数据信号采用负逻辑,对控制信号采用正逻
8、辑。第三章 链路和数据链路区别链路是一条无源的点到点的物理线路段,中间没有任何其他的交换结点;(物理链路)一条链路只是一条通路的一个组成部分;数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路;(逻辑链路)网卡主要功能计算机通过网卡连接到传输介质以实现网络通信;数据的封装与解封 发送时将上一层交下来的数据加上首部和尾部,成为以太网的帧。接收时将以太网的帧剥去首部和尾部,然后送交上一层。链路管理 主要是 CSMA/CD 协议的实现。编码与译码 即曼彻斯特编码与译码。与 PC 机 的通信进行串行/并行转换。对数据进行缓存。在计算机
9、的操作系统安装设备驱动程序。MAC 地址 DIX Ethernet V2 标准、IEEE 的 802.3 标准 网络中 MAC 地址长度为 48 位,封装在 MAC 帧的首部,也称物理地址或硬件地址;唯一标识了每个 DTE 设备;固化在网卡中;寻址;MAC 地址的分配前三个字节由 IEEE 配;后三个字节由产商自行分配;第一个字节的两个标志位最低位 I/G:0/单站地址;1/组地址;次低位 G/L:0/局部管理;1/全局管理;以太网的 MAC 帧的寻址有:A 、网卡从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 目的 MAC 地址:如果是发往本站的帧则收下,然后再进行其他的处理
10、。否则就将此帧丢弃,不再进行其他的处理。B 、 “发往本站的帧”包括以下三种帧: 单播(unicast)帧(一对一) 、广播(broadcast)帧(一对全体) 多播(multicast)帧(一对多) 。几种无效的 MAC 帧 :数据字段的长度与长度字段的值不一致;帧的长度不是整数个字节;用收到的帧检验序列 FCS 查出有差错;数据字段的长度不在 46 1500 字节之间:即有效的 MAC 帧长度为 64 1518 字节之间;对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧帧同步使用的两种方法比特填充 HDLC采用零比特填充法在发送端,当一串比特流数据中有 5 个连续 1 时
11、,就立即填入一个 0;在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流.和字节填充 ppp 信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)。若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符) ,则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改滑动窗口协议:是 TCP 使用的一种流量控制方法。该协议允许发送方在停止并等待确认
12、前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。滑动窗口机制是上述这些数据传输协议使用的一种用于协调双方通信的机制;收发双方在滑动窗口机制的控制下实现流量控制和差错控制滑动窗口只有在接收窗口向前滑动时(与此同时也发送了确认) ,发送窗口才有可能向前滑动。收发两端的窗口按照以上规律不断地向前滑动。发送方设置一个发送窗口(发送缓存区) ;发送窗口大小控制发送方在未收到确认前最多能发送的数据帧数目;每个数据帧只有在收到确认以后才能从发送窗口中清除掉,从而发送窗口可向前移动,即可发送一个新的数据帧;接收方设置一个接收窗口;接收窗口决定了接收方接收数据帧
13、的容量;接收窗口以向前移动的方式控制发送方的发送速率;当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充可靠传输:理想的数据传输条件:a 传输信道是理想的:数据通过信道传输不会发生任何差错;b 接收方的缓存是理想的:发送方以多快的速度发送数据,接收方总是能够接收得下来(收发双方的速率总是匹配的) ;实际的传输网络都不可能是理想的:数据可能会发生各种差错;收发双方的速率也可能会不匹配;不可靠的传输网络要实现可靠的数据传输必须通过设计某些数据传输协议来加以保证:停止等待协议原理发送方发一帧,停止发送,等待对方的确认;收到确认后,再发下一帧;如此重复;如发生差错,通过重传数据帧方式实现纠
14、错;因此需对数据帧进行编号;连续 ARQ 协议原理在停止等待协议基础上,发送方在未收到确认前可连续发送若干个数据帧;在发生差错时丢弃原已发送的所有后续帧,重发差错发生以后的所有帧,相当于完全返回重传 选择重传 ARQ 协议原理在连续 ARQ 协议的基础上改进而来;区别;在发生差错时,仅仅重传发生错误的帧或定时器超时的数据帧;通过加大接收缓存来实现 4)三种协议使用滑动窗口,对于发送窗口及接收窗口的要求:对于连续 ARQ 协议,发送窗口 WT可用资源(需供)拥塞控制:防止过多的数据注入到网络中,使网络中的路由器或链路不致于过载。产生拥塞的因素:交换结点缓存容量太小处理机的处理速度太慢链路的容量太
15、小。2)拥塞控制与流量控制的区别 流量控制只在一对给定的发送方和接收方之间,控制发送方不以超过接收方处理能力的速率发送数据。拥塞控制是一个全局性的过程,涉及到网络中所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。联系:流量控制限制了进入网络中的信息总量,可以在一定程度上减缓拥塞的作用。流量控制是防止网络拥塞的一种机制拥塞控制与流量控制的区别:流量控制只在一对给定的发送方和接收方之间,控制发送方不以超过接收方处理能力的速率发送数据。拥塞控制是一个全局性的过程,涉及到网络中所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。分级的拥塞控制方法:网段级:结点到结点 设定一
16、个队列长度门限,超过时丢弃后续来的分组; 入口出口级:源结点到目标结点 存在重装死锁问题, 可使用预约缓冲区的方法解决;预约缓冲区 通信 归还缓冲区 进网级:主机到结点 获取进网许可证,才能够上网,目的是限制进网的信息量 ;运输级:用户程度的控制 第五章 1.TCP 协议与 UDP 协议的区别 TCP:面向连接的、可靠的服务传送数据之前先建立连接,数据传送结束后要释放连接。要提供可靠服务,不可避免得要增加很多开销:确认、流量控制、拥塞控制、连接管理等。TCP 不能提供的服务: 实时性、带宽承诺、可靠的广播通信 UDP:无连接的、不可靠的服务,传送数据之前不需要先建立连接,对方的运输层在收到 U
17、DP 报文后,不需要给出任何确认。但效率比较高。2.端口的作用,熟知端口 1)运行在计算机中的进程是用进程标识符,即端口来标志的。2)端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。3)从这个意义上讲,端口是用来标志应用层的进程。4)端口用一个 16 bit 端口号进行标志。一类是熟知端口,其数值一般为 01023。当一种新的应用程序出现时,必须为它指派一个熟知端口。另一类则是一般端口,用来随时分配给请求通信的客户进程。 3.UDP 协议的特点 1)无连接 2)使用尽最大努力交付 3)是面向报文
18、的 4)无拥塞控制: UDP 可按需要随时发送 5)支持一对一、一对多、多对一和多对多的交互通信6)首部开销小 4.TCP 协议特点面向连接的运输层协议,每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能点对点的,提供全双工通信,提供可靠交付服务,面向字节流 MSS: (maximum segment size)最大报文段长面向连接:握手(交换控制信息)过程在数据交换之前初始化发送方和接收方的状态流量控制:使得发送方不会使接收方的缓存溢出 2)面向连接服务的三个阶段:运输连接就有三个阶段,即:连接建立、数据传送和连接释放;3)TCP 中流量控制的方法流量控制(由接收方控制发送方)在
19、TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限;发送窗口初始值在连接建立时由双方商定;可变大小的发送窗口:但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小);第六章 1.DNS 协议 1)主要功能域名服务器:运行域名解析程序的主机;完成域名与 IP 地址的映射解析四类的域名服务器;根域名服务器:只负责进行联络顶级域名服务器,不直接进行解析;顶级域名服务器:管理所属注册的所有二级域名;本地域名服务器:负责本地主要的域名解析任务,同时要能够连接到上一级的域名服务器;授权域名服务器:必须对本地所使用的域名进行登记;2)域名的
20、结构域名的结构由若干个分量组成,完整的域名不超过 255 个字符,格式 :三级域名二级域名顶级域名 3)域名解析域名解析是把域名指向网站空间 IP,让人们通过注册的域名可以方便地访问到网站一种服务。域名解析也叫域名指向、服务器设置、域名配置以及反向 IP 登记等等。说得简单点就是将好记的域名解析成 IP,服务由DNS 服务器完成,是把域名解析到一个 IP 地址,然后在此 IP 地址的主机上将一个子目录与域名绑定。域名解析过程:先高速缓存、本地解析、逐级向上查询,结果再向下反馈;2.DHCP 协议作用基于 UDP 的客户服务器通信模式;支持设备即插即用连网:客户以广播方式发送 DHCP 请求报文
21、,服务器响应,给出所需的配置信息;若数据库已有记录,则给出;若无,则从空闲的地址库中指派;适用于客户机和服务器;DHCP 服务器的配置 3.FTP文件传输协议 1)与 TFTP 的区别 FTP,提供交互式访问,可列目录,对用户身份鉴别,可设置文件存取权限;屏蔽了细节差别,适合于在异构网络中任意计算机之间传送文件 ;使用基于 TCP 的客户/服务器模式;TFTP,客户与服务器之间采用停-等协议进行数据传输 2)主要的过程服务器进程由两个部分组成:主进程:负责接受新的客户请求;若干个从属进程:负责处理单个请求;FTP 主进程作用: 负责接受新的请求;若干个从属进程,各自负责处理单个请求。FTP 主
22、进程的工作步骤:1、打开熟知端口(端口号为 21) ,使客户进程能够连接上。2、等待客户进程发出连接请求。3、启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程 2)FTP 的两个连接及两个连接所使用的端口客户和服务器间建立两个连接控制连接:用于传输相关的控制信息,使用熟知端口号 21;数据连接:用于传输文件数据,使用熟知端口号 20;4.WWW 万维网 1)统一资源定位符 URL 用 URL 来标识万维网上的各种文档,并使每一个文档在整个 Internet 的范围内具有唯一的标识符 URL;是对可以从 Inte
23、rnet 上得到的资源的位置和访问方法的一种简洁的表示 ;2)Http 协议的主要特点基于 TCP 的面向事务的客户服务器协议,属于无状态的,无连接的,即每个事务是独立处理的;HTTP/1.1 协议使用持续连接;非流水线方式:流水线方式 5.TELNET 远程登录 远程终端协议,使用基于 TCP 的客户服务器模式;实现从本地登陆到远程主机进行透明操作;对于不同计算机操作系统的差异用网络虚拟终端 NVT 来解决 客户端运行 Telnet(建立与服务器端的 TCP 连接,接收用户的输入命令及其他信息;将命令及信息处理;将相关信息通过 TCP 发送给服务器端;接收服务器端返回的信息并做相应处理如显示
24、。 )服务器端不间断地运行服务程序 Telnetd(通知正在准备接受连接的网络软件,服务作业已进入就续状态;网络软件建立与客户机的 TCP 连接;等候以标准格式出现的服务请求;对到来的服务请求命令给予执行;把服务结果按标准格式回送给客户机;继续等待服务。 )6.Email 用户接口(用户代理 UA)(四个基本功能:撰写、显示、处理和通信;常见的 UA(客户端软件):foxmail、outlook 或是以网页界面登陆;)邮件服务器(两个功能:传送和接收邮件;报告邮件传输情况;运行两种协议:发送邮件的通信协议(SMTP)和收邮件的通信协议(POP3) ;常见的服务器端软件:如 Imailserve
25、r 等)工作流程:当发送邮件时,用户接口先将邮件送往别名扩展和转发程序;根据别名数据库提供的数据,凡收信人的邮箱位于本地网点,就转到本地邮箱,其余邮件才送往发送邮件缓冲区;当接收邮件时,接收邮件的服务器先将收到的邮件送往别名扩展和转发程序;根据收信人是否在本地网点,收到的邮件将送往本地网点的邮箱,或经发送邮件缓冲区再发送到收信人所在的其他网点1.网络体系结构为什么要采用分层次的结构:因为分层可以带来以下好处:各层之间是独立的:可将一个复杂问题分解为若干个较容易处理的问题,使复杂下降。灵活性好:只要上下接口不变,内部可作任意修改,亦可跳层。结构上可分割开:各层都可以采用最合适的技术来实现。易于实
26、现和维护:使得实现和调试一个庞大而又复杂的系统变得易于处理。能促进标准化工作,通用性好。2.物理层考虑的问题是要如何能在连接各种计算机的传输媒体上传输数据比特流。它的特点是:它尽可能地屏蔽不同的硬件设备和传输媒体之间的差异,使物理层上面的数据链路层感觉不到这些差异,使数据链路层只需要考虑完成本层的协议和服务。 (1)物理层要解决的主要问题:物理层要尽可能屏蔽掉物理设备、传输媒体和通信手段的不同,使上面的数据链路层感觉不到这些差异的存在,而专注于完成本层的协议与服务。给其服务用户(数据链路层)在一条物理的传输媒体上传送和接收比特流(一般为串行按顺序传输的比特流)的能力。为此,物理层应解决物理连接
27、的建立、维持和释放问题。在两个相邻系统之间唯一地标识数据电路。 (2)物理层的主要特点:由于在 OSI 之前,许多物理规程或协议已经制定出来了,而且在数据通信领域中,这些物理规程已被许多商品化的设备所采用。加之,物理层协议涉及的范围广泛,所以至今没有按OSI 的抽象模型制定一套新的物理层协议,而是沿用已存在的物理规程,将物理层确定为描述与传输媒体接口的机械、电气、功能和规程特性。由于物理连接的方式很多,传输媒体的种类也很多,因此,具体的物理协议相当复杂。数据链路层中的链路控制功能包括:(l)链路管理 当网络中的两个结点要进行通信时,数据的发方必须确知收方是否已经处在准备接收的状态。为此,通信的
28、双方必须先要交换一些必要的信息。或者用我们的术语,必须先建立一条数据链路。同样地,在传输数据时要维持数据链路,而在通信完毕时要释放数据链路。数据链路的建立、维持和释放就叫做链路管理。 (2)帧同步 在数据链路层,数据的传送单位是帧。数据一帧一帧地传送,就可以在出现差错时,将有差错的帧再重传一次,而避免了将全部数据都进行重传。帧同步是指收方应当能从收到的比特流中准确地区分出一帧的开始和结束在什么地方。 (3)流量控制 发方发送数据的速率必须使收方来得及接收。当收方来不及接收时,就必须及时控制发方发送数据的速率。 (4)差错控制 在计算机通信中,一般都要求有极低的比特差错率。为此,广泛地采用了编码
29、技术。编码技术有两大类。一类是前向纠错,即收方收到有差错的数据帧时,能够自动将差错改正过来。这种方法的开销较大,不适合于计算机通信。另一类是检错重发,即收方可以检测出收到的帧中有差错(但并不知道是哪几个比特错了) 。于是就让发方重复发送这一帧,直到收方正确收到这一帧为止。这种方法在计算机通信中是最常用的。本章所要讨论的协议,都是采用检错重发这种差错控制方法。 (5)将数据和控制信息区分开 由于数据和控制信息都是在同一信道中传送,而在许多情况下,数据和控制信息处于同一帧中。因此一定要有相应的措施使收方能够将它们区分开来。 (6)透明传输 所谓透明传输就是不管所传数据是什么样的比特组合,都应当能够
30、在链路上传送。当所传数据中的比特组合恰巧出现了与某一个控制信息完全一样时,必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。 (7)寻址 在多点连接的情况下,必须保证每一帧都能送到正确的目的站。收方也应当知道发方是哪一个站说明IP、Port、进程、主机地址之间的关系。从 IP 层来说,通信的两端是两个主机,为了能够使两个主机通信,就使用 IP 地址,一个 IP 地址是用来标识网络中的一个通信实体,比如一台主机,或者是路由器的某一个接口。通过 IP 地址只能实现两个主机之间的通信,但是还不够清楚,这是因为,真正通信的实体是在主机中的进程,是这个
31、主机中的一个进程和另一个主机中的一个进程在交换数据,严格地讲,是两个主机应用进程互相通信, 为了能够进一步区分到底是主机中的哪个进程之间的通信,所以就引入端口(port)的概念,端口的意义可以用下图表示:从上面叙述中可以看出 IP,端口,进程,主机地址它们之间的关系,网络层是为主机之间提供逻辑通信,通过 IP 地址区分不同的主机;而运输层是为应用进程之间提供端到端的逻辑通信,通过端口号区分不同的应用进程。网络层是运输层的基础,是为运输层提供服务的,所以在通信过程中要结合IP 地址和端口号进行端到端的通信。试写出连续协议的算法。发送方:从主机去一个数据帧,送交发送缓存 2)V(S) 0发送状态变
32、量初始化3)N(S) V(S)将发送状态变量值写入数据帧中的发送序号4)应答序号初始化 5)判断发送缓冲区以满,却未收到应答帧.是则到(6),否则到(8)6)出现差错,唤醒超时计数器,将所有帧重新全部发送到缓存 7)若收到应答帧,则到(9);再次超时并未收到应答帧,则返回(6)8)收到应答帧后,从上层获取数据,并写入发送缓冲区当前位置 9)组装发送帧编码 10)发送数据帧,并加发送序号加 1(11)设置超时计数器 12)在所设置的超时时间收到确认帧,则转到(8);若出现差错,则转到(13)。13)超时计数器往回走,将未收到的第 n 个帧及以后的所有帧全部进行重传14)若仍产生差错则继续 13)
33、若受到确认帧则继续传数据帧,则转到 15)15)接受帧,取得接收方希望接受的帧编号,返回(1)接收方:1)V(R) 0接受状态变量初始化,其数值等于与接收的数据帧的发送序号2)等待 3)收到一个数据帧,若 N(S)= V(R),则执行(4),否则,丢弃此数据帧 4)发送确认帧 ACKn5)检查收到的帧是否按序,进行 V(R)=(V(R)+1) mod 8 检验.若不按序则丢弃第 n-1 帧后的所有帧,重新发送 ACKn6)重新接收未收到的帧 7)将收到的数据帧中的数据部分送交上层软件 8)更新接受状态变量 V(R) V(R)+1mod 8,转到(2).为什么在运输连接建立时要使用三次握手。说明
34、如不这样做可能会出现什么情况?这主要是为了防止已失效的连接请求报文段突然又传送到了主机 B,因而产生错误。假设主机 A 发出连接请求,但因连接请求报文丢失而未收到确认。主机 A 于是再重传一次。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接。主机 A 共发送了两个连接请求报文段,其中的第二个到达了主机 B。这种情况下假设:主机 A 发出的第一个连接请求报文段并没有丢失,而是在某些网络结点滞留的时间太长,以致延误到在这次的连接释放以后才传送到主机 B。本来这是一个已经失效的报文段。但主机 B 收到此失效的连接请求报文段后,就误认为是主机 A 又发出一个新的连接请求。于是就向主机 A 发
35、出确认报文段,同意建立连接。主机 A 由于并没有要求建立连接,因此不会理睬主机 B 的确认,也不会向主机 A 发送数据。但主机 B 却以为运输连接就这样建立了,并一直等主机 A 发来数据。主机 B 的许多资源就这样白白浪费了。采用三次握手的方法可以防止上述现象的发生。在这种情况下,主机 A 不会向主机 B 的确认发出确认。主机 B 收不到确认,连接就建立不起来。我们知道,3 次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好) ,也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机 A 和 B 之间的通信,假定 B 给 A 发送一个连接请求分组,A 收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A 认为连接已经成功地建立了,可以开始发送数据分组。可是,B 在 A 的应答分组在传输中被丢失的情况下,将不知道 A 是否已准备好,不知道 A 建议什么样的序列号,B 甚至怀疑 A 是否收到自己的连接请求分组。在这种情况下,B 认为连接还未建立成功,将忽略A 发来的任何数据分组,只等待连接确认应答分组。而 A 在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。