当前位置:首页 » 网络连接 » 计算机网络分组失序
扩展阅读
手机软件如何还原成app 2025-09-28 13:46:30

计算机网络分组失序

发布时间: 2023-05-12 01:16:53

Ⅰ 02 - 数据链路层的详细认识

时间有限我这里只写了一部分内容,更详细的内容可以直接看我的笔记 第三章数据链路层

数据链路层的任务就是将分组从一个网络中或一个链路上的一端传送到另一端。数据链路层传送的数据单元称为帧(frame)。所以也可以说数据链路层的任务就是在一个网络(或一段链路上)传送以帧为单位的数据

数据链路层属于计算机网络的底层,仅在物理层的上方,在网络层的下方,网络中的主机、路由器等都必须实现数据链路层。数据链路层使用的信道主要有两种类型,点对点信道,广播信道

在点对点信道中最重要的是如何实现可靠传输(在实际中并不会在数据链路层实现可靠传输,而是交给上层)

网络层的IP数据报必须向下传达到数据链路层,在数据报前后分别加上首部和尾部,封装成为一个完整的帧。因为在数据链路层就是以帧为单位传输和处理数据,因此,数据链路层中的帧长就是数据部分加上首部和尾部的长度。

发送方将帧以比特流的形式发送给接收方(在物理层会转换成电信号),接收方为了能够处理帧数据,必须正确认识每个帧的开始和结束,这就需要进行帧定界凯雀

帧定界有很多种,比如以太网就是在传输的帧与帧之间插入时间间隔来实现,只有首部有帧定界符,尾部没有帧定界符。还有一种就是在帧的首部和尾部都加上一个帧定界符。

帧定界符:
不同类型:

帧定界符在透明传输中的蠢孙碰问题和解决
问题: 传输数据存在使用帧定界符所使用的字符或比特组合,会出现错误的帧定界
解决:

注意:

通信链路的传输都不会是理想的,比特在传输过程中可能会产生差错,比如1变为0,0变为1,这叫做比特差错,因此就需要在接收端进行差错检测。

发送方需要采用某种差错检测算法,使用发送的数据计算出差错检测码EDC,差错检测码随数据一起发送给接收方,接收方使用同样的差错检测算法计算出差错检测码EDC',如果两者不一致,则表示出现差错,一般采用循环冗余检验(CRC)来检错

差错检测算法:

接收双方需要约定好一个多项式,之后按照下图的方式进行处理

案例说明

发送方的冗余校验:

说明:

接收方的冗余校验:

说明:

注意:

有些情况下数据链路层需要向上层的网络层提供“可靠传输”的服务,也就是发送端发送什么,对应的接收端就必须接收什么。带谈我们通过可靠传输协议来实现数据链路层的可靠传输,有三种,停止等待协议SW、回退N步协议GBN、选择重传协议SR。
可靠传输协议就是要在不可靠的信道上实现可靠的数据传输服务。

在计算机网络中实现可靠传输的基本方法就是:如果发现错误就重传

使用分组确认和超时重传机制就可以在不可靠的信道上实现可靠的数据传输。

解决: 可以在发送方发送完一个数据分组后,启动一个超时计时器,若超出了设置的重传时间,发送方仍没有收到接收方的任何确认分组,就会重传原来的分组。

注意: 重传时间的选择一般是略大于“从发送方到接收方的平均往返时间”数据链路层的往返时间是比较确定的,可以使用这种方式

说明:

上面也可以看到停止等待协议的信道利用率很低,所以需要采用流水线传输方式,发送方不间断的发送分组来提高信道利用率。但是这种方式有可能会使接收方来不及处理这些分组,从而导致分组的丢失。因此需要限制发送方连续发送分组的个数避免这个问题,而这种方式就是回退N步协议。
简单理解回退N步协议就是停止等待协议只能发送一个分组就等待,回退N步协议是发送多个分组才处于等待状态

原理: 回退N步协议在流水线传输的基础上利用发送窗口来限制发送方连续发送分组的个数,是一种连续的ARQ协议

注意:

选择重传协议是在回退N步协议的基础上,只重传出现差错的分组,这时接收窗口不再为1,以便先收下失序到达但仍然处于接收窗口中的分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议。

注意:

Ⅱ 《计算机网络》数据交换有几种方式,各自的优缺点是什么

自己看

计算机网络的应用
计算机网络在资源共享和信息交换方面所具有的功能,是其它系统所不能替代的。计算机网络所具有的高可靠性、高性能价格比和易扩充性等优点,使得它在工 业、农业、交通运输、邮电通信、文化教育、商业、国防以及科学研究等各个领域、各个行业获得了越来越广泛的应用。我国有关部门也已制订了"金桥"、"金关 "和"金卡"三大工程,以及其它的一些金字号工程,这些工程都是以计算机网络为基础设施,为促使国民经济早日实现信息化的主干工程,也是计算机网络的具体 应用。计算机网络的应用范围实在太广泛,本节仅能涉及一些带有普遍意义和典型意义的应用领域。
(1)办公自动化OA(Office Automation)
办公自动化系统,按计算机系统结构来看是一个计算机网络,每个办公室相当于一个工作站。它集计算机技术、数据库、局域网、远距离通信技术以及人工智 能、声音、图像、文字处理技术等综合应用技术之大成,是一种全新的信息处理方式。办公自动化系统的核心是通信,其所提供的通信手段主要为数据/声音综合服 务、可视会议服务和电子邮件服务。
(2)电子数据交换EDI(Electronic Data Interchange)
电子数据交换,是将贸易、运输、保险、银行、海关等行业信息用一种国际公认的标准格式,通过计算机网络通信,实现各企业之间的数据交换,并完成以贸易为中心的业务全过程。EDI在发达国家应用已很广泛,我国的"金关"工程就是以EDI作为通信平台的。
(3)远程交换(Telecommuting)
远程交换是一种在线服务(Online Serving)系统,原指在工作人员与其办公室之间的计算机通信形式,按通俗的说法即为家庭办公。
一个公司内本部与子公司办公室之间也可通过远程交换系统,实现分布式办公系统。远程交换的作用也不仅仅是工作场地的转移,它大大加强了企业的活力与快速反应能力。近年来各大企业的本部,纷纷采用一种被之为"虚拟办公室"(Virtual Office)的技术,创造出一种全新的商业环境与空间。远程交换技术的发展,对世界的整个经济运作规则产生了巨大的影响。
(4)远程教育(Distance Ecation)
远程教育是一种利用在线服务系统,开展学历或非学历教育的全新的教学模式。远程教育几乎可以提供大学中所有的课程,学员们通过远程教育,同样可得到正规大学从学士到博士的所有学位。这种教育方式,对于已从事工作而仍想完成高学位的人士特别有吸引力。
远程教育的基础设施是电子大学网络EUN(Electronic University Network)。EUN的主要作用是向学员提供课程软件及主机系统的使用,支持学员完成在线课程,并负责行政管理、协作合同等。这里所指的软件除系统软 件之外,包括CAI课件,即计算机辅助教学(Computer Aided Instruction)软件。CAI课件一般采用对话和引导式的方式指导学生学习发现学生错误还具有回溯功能,从本质上解决了学生学习中的困难。
(5)电子银行
电子银行也是一种在线服务系统,是一种由银行提供的基于计算机和计算机网络的新型金融服务系统。电子银行的功能包括:金融交易卡服务、自动存取款作 业、销售点自动转帐服务、电子汇款与清算等,其核心为金融交易卡服务。金融交易卡的诞生,标志了人类交换方式从物物交换、货币交换到信息交换的又一次飞 跃。
围绕金融交易卡服务,产生了自动存取款服务,自动取款机(CD)及自动存取款机(ATM)也应运而生。自动取款机与自动存取款机大多采用联网方式工 作,现已由原来的一行联网发展到多行联网,形成覆盖整个城市、地区,甚至全国的网络,全球性国际金融网络也正在建设之中。
电子汇款与清算系统可以提供客户转帐、银行转帐、外币兑换、托收、押汇信用证、行间证券交易、市场查证、借贷通知书、财务报表、资产负债表、资金调拨 及清算处理等金融通信服务。由于大型零售商店等消费场所采用了终端收款机(POS),从而使商场内部的资金即时清算成为现实。销售点的电子资金转帐是 POS与银行计算机系统联网而成的。
当前电子银行服务又出现了智能卡(IC)。IC卡内装有微处理器、存储器及输入输出接口,实际上是一台不带电源的微型电子计算机。由于采用IC卡,持卡人的安全性和方便性大大提高了,
(6)电子公告板系统BBS(Bulletin Board System)
电子公告板是一种发布并交换信息的在线服务系统。BBS可以使更多的用户通过电话线以简单的终端形式实现互联,从而得到廉价的丰富信息,并为其会员提供网上交谈、发布消息、讨论问题、传送文件、学习交流和游戏等的机会和空间。
(7)证券及期货交易
证券及期货交易是由于其获利巨大、风险巨大,且行情变化迅速,投资者对信息的依赖格外显得重要。金融业通过在线服务计算机网络提供证券市场分析、预 测、金融管理、投资计划等需要大量计算工作的服务,提供在线股票经纪人服务和在线数据库服务(包括最新股价数据库、历史股价数据库、股指数据库以及有关新 闻、文章、股评等)。
(8)广播分组交换
广播分组交换实际上是由一种无线广播与在线系统结合的特殊服务,该系统使用户在任何地点都可使用在线服务系统。广播分组交换可提供电子邮件、新闻、文 件等传送服务,无线广播与在线系统通过调制解调器,再通过电话局可以结合在一起。移动式电话也属于广播系统。
(9)校园网(Campus Network)
校园网是在大学校园区内用以完成大中型计算机资源及其它网内资源共享的通信网络。一些发达国家已将校园网确定为信息高速公路的主要分支。无论在国内还 是国外,校园网的存在与否,是衡量该院校学术水平与管理水平的重要标志,也是提高学校教学、科研水平不可或缺的重要支撑环节。
共享资源是校园网最基本的应用,人们通过网络更有效地共享各种软、硬件及信息资源,为众多的科研人员提供一种崭新的合作环境。校园网可以提供异型机联网的 公共计算环境、海量的用户文件存储空间、昂贵的打印输出设备、能方便获取的图文并茂的电子图书信息,以及为各级行政人员服务的行政信息管理系统和为一般用 户服务的电子邮件系统。
(10)信息高速公路
如同现代信息高速公路的结构一样,信息高速公司也分为主干、分支及树叶。图像、声音、文字转化为数字信号在光纤主干线上传送,由交换技术再送到电话线或电缆分支线上,最终送到具体的用户"树叶"。主干部分由光纤及其附属设备组成,是信息高速公路的骨架。
我国政府也十分重视信息化事业,为了促进国家经济信息化,提出个"金桥"工程--国家公用经济信息网工程、"金关"工程--外贸专用网工程、"金卡" 工程--电子货币工程。这些工程是规模宏大的系统工程,其中的"金桥工程"是国民经济的基础设施,也是其它"金"字系列工程的基础。
“金桥”工程包含信息源、信息通道和信息处理三个组成部分,通过卫星网与地面光纤网开发,并利用国家及各部委、大中型企业的信息资源为经济建设服务。 “金卡”工程是在金桥网上运行的重要业务系统之一,主要包括电子银行及信用卡等内容。“金卡”工程又称为无纸化贸易工程,其主要实现手段为EDI,它以网 络通信和计算机管理系统为支撑,以标准化的电子数据交换替代了传统的纸面贸易文件和单证。其它的一些“金”字系列工程,如“金税”工程、“金智”工程、 “金盾”工程等亦在筹划与运作之中。这些重大信息工程的全面实施,在国内外引起了强烈反响,开创了我国信息化建设事业的新纪元。
(11)企业网络
集散系统和计算机集成制造系统是两种典型的企业网络系统。
集散系统实质上是一种分散型自动化系统,又称做以微处理机为基础的分散综合自动化系统。集散系统具有分散监控和集中综合管理两方面的特征,而更将"集 "字放在首位,更注重于全系统信息的综合管理。80年代以来,集散系统逐渐取代常规仪表,成为工业自动化的主流。工业自动化不仅体现在工业现场,也体现在 企业事务行政管理上。集散系统的发展及工业自动化的需求,导致了一个更庞大、更完善的计算机集成制造系统CIMS(Computer Integrated Manufacturing System)的诞生。
集散系统一般分为三级:过程级、监控级和管理信息级。集散系统是将分散于现场的以微机为基础的过程监测单元、过程控制单元、图文操作站及主机(上位 机)集成在一起的系统。它采用了局域网技术,将多个过程监控、操作站和上位机互连在一起,使通信功能增强,信息传输速度加快,吞吐量加大,为信息的综合管 理提供了基础。因为CIMS具有提高生产率、缩短生产周期等一系列极具吸引力的优点,所以已经成为未来工厂自动化的方向。
(12)智能大厦和结构化综合布线系统
智能大厦(Intelligent Building)是近十年来新兴的高技术建筑形式,它集计算机技术、通信技术、人类工程学、楼宇控制、楼宇设施管理为一体,使大楼具有高度的适应性(柔 性),以适应各种不同环境与不同客户的需要。智能大厦是以信息技术为主要支撑的,这也是其具有"智能"之名称的由来。有人认为具有三A的大厦,可视为智能 大厦。所谓三A就是CA(通信自动化)、OA(办公自动化)和BA(楼宇自动化)。概括起来,可以认为智能大厦除有传统大厦功能之外,主要必须具备下列基 本构成要素:高舒适的工程环境、高效率的管理信息系统和办公自动化系统、先进的计算机网络和远距离通信网络及楼宇自动化。
智能大厦及计算机网络的信息基础设施是结构化综合布线系统SCS(Structure Cabling System)。在建设计算机网络系统时,布线系统是整个计算机网络系统设计中不可分割的一部分,它关系到日后网络的性能、投资效益、实际使用效果以及日 常维护工作。结构化布线系统是指在一个楼宇或楼群中的通信传输网络能连接所有的话音、数字设备,并将它们与交换系统相连,构成一个统一、开放的结构化布线 系统。在综合布线系统中,设备的增减、工位的变动,仅需通过跳线简单插拔即可,而不必变动布线本身,从而大大方便了管理、使用和维护。
网络的分类
按照网络的类型特征,对网络进行分类是了解网络、学习网络技术的重要基础之一。从不同的角度对网络分类则有不同的分类方法。常见的分类方法有以下几种:
1、按分布地理范围分类
按分布地理范围分类,计算机网络可以分为广域网、局域网和城域网三种。
广域网(Wide Area Network,简称WAN)又称远程网,其分布范围可达数百公里乃至更远,可以覆盖一个地区,一个国家,更至全世界。
局域网(Local Area Network,简称LAN)是将小区域内的计算机及各种通信设备互连在一起的网络,其分布范围局限在一个办公室、一个建筑物或一个企业内。
城域网(Metropolitan Area Network,简称MAN)的分布范围介于局域网与广域网之间,其目的是在一个较大的地理区域内提供数据、声音和图像的传输。
2、按交换方式分类
按网络的交换方式分类,计算机网络可以分为电路交换网,报文交换网和分组交换网三种。
电路交换(Circuit Switching)方式类似于传统的电话交换方式,用户在开始通信之前,必须申请建立一条从发送端到接收端的物理通道,并且在双方通信期间始终占用该信道。
报文交换(Message Switching)方式的数据单元是要发送一个完整报文,其长度不受限制。报文交换采用存储转发原理,这点像古代的邮政通信,邮件由途中的驿站逐个存储 转发一样。每个报文中含有目的地址,每个用户节点要为途径的报文选择适当的路径,使其能最终达到目的端。
分组交换(Packet Switching)方式也称包交换方式,1969年首次在ARPANET上使用,现在人们都公认ARPANET是分组交换网之父,并将分组交换网的出现 作为计算机网络新时代的开始。采用分组交换方式通信前,发送端先将数据划分为一个个等长的单位(即分组),这些分组逐个由各中间节点采用存储转发方式进行 传输,最终达到目的端。由于分组长度有限,可以在中间节点机的内存中进行存储处理,其转发速度可大大提高。
3、按拓扑结构分类
按拓扑结构分类,计算机网络可分为星形网、总线网、环形网、树型网和网形网。
星形网是最早采用的拓扑结构形式,其每个站点都通过连接电缆与主控机相联,相关站点之间的通信都由主控机进行,所以要求主控机有很高的可靠性,这种结构是一种集中控制方式。
环形网中各工作站依次相互连接组成一个闭合的环形,信息可以沿着环形线路单向(或双向)传输,由目的站点接收。环形网适合那些数据不需要在中心主控机上集中处理而主要在各站点进行处理的情况。
总线结构网中各个工作站通过一条总线连接,信息可以沿着两个不同的方向由一个站点传向另一个站点,是目前局域网中普遍采用的一种网络拓扑结构情形。
除了以上分类方法以外,还可按所采用的传输媒体分为双绞线网,同轴电缆网、光纤网、无线网;按信道的带宽分为窄带网和宽带网;按不同用户分为科研网、教育网、商业网和企业网等。
计算机网络的拓扑结构和传输媒体
1、网络的拓扑结构
“拓扑”"这个名词是从几何学中借用来的。网络拓扑是指网络形状,或者是它在物理上的连通性。下面介绍几种最为主要的网络拓扑结构。
(1)星形拓扑
星形拓扑是由中央节点和通过点到点通信链路接到中央节点的各个站点组成,如图 7.5所示。中央节点执行集中工通信控制策略,因此中央节点相当复杂,而各个站点的通信处理负担都很小。星形网采用的交换方式有电路交换和报文交换,尤以 电路交换方式更为普遍。这种结构一旦建立通道连接,就可以无延迟地在连通的两个站点之间传送数据。目前流行的专用交换机 PBX( Private Branch eXchange)就是星形拓扑结构的典型实例。

星形拓扑结构有以下优点:
① 控制简单。在星形网络中,任何一个站点只和中央节点相连接,因而媒体访问控制方法很简单,致使访问协议也十分简单。
② 故障诊断和隔离容易。在星形网络中,中央节点对网络连接线路可以逐一地隔离开来进行故障检测和定位,单个连节点的故障只影响一个设备,不会影响整个网络。
③ 方便服务。中央节点可方便地对各个站点提供服务和网络重新配置。
星形拓扑结构的缺点:
① 电缆长度和安装工作量相当可观。因为每个站点都要和中央节点直接连接,需要耗费大量的电缆、安装、维护的工作量也剧增。
② 中央节点的负担较重,易形成瓶颈。一旦发生故障,则全网受影响,因而对中央节点的可靠性和冗余度方面的要求很高。
③ 各站点的分布处理能力较低。
星形拓扑结构广泛应用于网络智能集中于某个中央站点的场合。从目前的趋势看,计算机的发展已从集中的主机系统发展到大量功能很强的微型机和工作站,在这种形势下,传统的星形拓扑使用会有所减少。
(2)总线拓扑
总线拓扑结构采用一个信道作为传输媒体,所有站点都通过相应的硬件接口直接连到这一公共传输媒体上,该公共传输媒体即称为总线。任何一个站发送的信号都沿着传输媒体传播,而且能被所有的其它站点所接收。总线拓扑结构见图 7.6所示。
因为所有站点共享一条公用的通信信道,所以一次只能有一个设备传输信号。通常采用分布式控制策略来确定哪个站点可以发送。发送时,发送站将报文分成分 组,然后逐个依次发送这些分组,有时还要与其它站来的分组交替地在传输媒体上传输。当分组经过各站时,其中的目的站会识别到分组所携带的目的地址,然后复 制下这些分组的内容。

总线拓扑结构的优点:
① 总线结构所需要的电缆数量少。
② 总线结构简单,又无源工作,有较高的可靠性。
③ 易于扩充,增加和减少用户比较方便。
总线拓扑结构的缺点:
① 总线传输距离有限,通信范围受限制。
② 故障诊断和隔离比较困难。
③ 分布式协议不能保证信息的及时传输。
④ 不具有实时功能,站点必须是智能的,要有媒体访问控制功能,从而增加了站点的硬件和软件开销。
(3)环形拓扑
环形拓扑网络由站点和连接站点的链路组成一个闭合环,如图 7.7所示,每个站点能够接收从一链路传来的数据,并以同样的速率串行地把该数据沿环送到另一链路上。这种链路可以是单向的,也可以是双向的。数据以分组形式发送,如果环上 A站希望发送一个报文到 C站,就先要把报文分成若干个分组,每个分组除了数据还要加上某些控制信息,其中包括 C站的地址。 A站依次把每个分组送到环上,开始沿环传输, C站识别到带有它自己地址的分组时,便将其中的数据复制下来。由于多个设备连接在一个环上,因此需要用分布式控制策略来进行控制。

环形拓扑结构的优点:
① 电缆的长度短。环形拓扑结构的网络所需的电缆长度和总线拓扑网络相似,但比起星形拓扑结构的网络要短得多。
② 减少或增加工作站时,仅需简单的连接操作。
③ 可使用光纤。光纤的传输速度率很高,十分适合于环形拓扑的单向传输。
环形拓扑结构的缺点:
① 节点的故障会引起全网络的故障。这是因为环上的数据传输要通过接在环上的每一个节点,一旦环中某个节点发生故障就会引起全网络的故障。
② 故障检测困难。这与总线拓扑结构相似,因为不是集中控制,故障检测需要在网上各个节点进行,因此故障检测就较为困难。
③ 环形拓扑结构的媒体访问控制协议都采用令牌传送的方式,在负载很轻时,信道利用率相对来说比较低。
总的来说,不管局域网或广域网,网络的拓扑选择,需要考虑诸多因素,网络要既利于安装,又有利于扩展,网络的可靠性也是要考虑的重要因素,以外网络拓扑结构的选择还会影响传输媒体的选择和媒体访问控制方法的确定。
2、传输媒体
传输媒体是通信网中发送方和接收方之间的物理通路,计算机网络中采用的传输媒体可以分为有线和无线两大类。双绞线、同轴电缆和光纤是常用的三种有线传输媒体,无线电通信、微波通信、红外线通信以及激光通信的信息载体都属于无线传输媒体。
传输媒体的特性对网络数据通信质量有很大的影响,这些特性是:
① 物理特性,说明传输媒体的特征。
② 传输特征,包括信号形式、调制技术、传输速度及频带宽度等内容。
③ 连通性,采用点到点连接还是多点连接。
④ 地域范围,网上各点间的最大距离。
⑤ 抗干扰性,防止噪声、电磁干扰对数据传输影响的能力。
⑥ 相对价格,以元件、安装和维护的价格为基础。
以下分别介绍其中最为常用的传输媒体的特性。
(1)双绞线
由螺旋状扭在一起的两根绝缘导线组成,线对扭在一起可以减少相互间的辐射电磁干扰。双绞线是最常用的传输媒体,早就用于电话通信中的模拟信号传输,也 可用于数字信号的传输。双绞线一般是铜质的,能提供良好的传导率。双绞线既可用于传输模拟信号,也可用于传输数字信号。对于模拟信号来说,大约每 5 -6km需要一个放大器;对于数字信号来说,每 2 -3km使用一个中继器。
双绞线也可用于局域网,如 10BASE-T和 100BASE-T总线,可分别提供 10Mbit/s和 100Mbit/s的数据传输速率。通常将多对双绞线封装于一个绝缘套里组成双绞线电缆,局域网中常用的 3类双绞线和 5类双绞线,均由 4对双绞线组成,其中 3类双绞线常用于 10BASE-T总线局域网, 5类双绞线常用于 100BASE-T总线局域网。
双绞线普遍话用于点到点的连接,双绞线可以很容易地在 15km或更大范围内提供数据传输。局域网的双绞线主要用于一个建筑物或几个建筑物间的通信,但在 10Mbit/s和 100Mbit/s传输速率的 10BASE-T和 100BASE-T的总线传输距离都不超过 100m。
双绞线的抗干扰性能不如同轴电缆,但价格比同轴电缆要便宜。
(2)同轴电缆
同轴电缆也像双绞线一样由一对导体组成,但它们是按 "同轴 "的形式构成线对,其最里层是内芯,向外依次为绝缘层、屏蔽层,最外则是起保护作用的塑料外套,内芯和屏蔽层构成一对导体。
同轴电缆分为基带同轴电缆和宽带同轴电缆。基带同轴电缆又可以分为粗缆和细缆两种,都用于直接传送数字信号;宽带同轴电缆用于频分多路复用的模拟信号传输,也可用于不使用频分多路复用的高速数据通信和模拟信号的传输,闭路电视所使用的 CATV电缆就是宽带同轴电缆。
同轴电缆适用于点到点连接和多点连接,基带电缆每段可支持几百台设备,在大系统中还可以用转接器将各段连接起来;宽带同轴电缆可支持数千台设备,但在高数据传输速率( 50Mbit/s)下使用宽带电缆时,设备数目限制在 20-30台。
同轴电缆的传输距离取决于传输信号的形式和传输的速率,典型基带电缆的电大距离限制在几公里。在相同速率条件下,粗缆传输距离较细缆长。
同轴电缆的抗干扰性能比双绞线好,但在价格上较双绞线贵,但比光纤要便宜。
(3)光纤
光纤是光纤纤维的简称,它由能传导光波的石英玻璃纤维外加保护层构成。相对于金属导线来说具有重量轻、线径细的特点。用光纤传输信号时,在发送端先要将电信号转换成光信号,而在接收端要由光检测器还原成电信号。
光纤在计算机网络中普遍采用点到点连接,从地域范围来看可以在 6 -8km的距离内不用中继器传输,因此光纤适合于在几个建筑物之间通过点到点的链路连接局域网。由于光纤具有不受电磁干扰和噪音影响的独有特征,适宜在长 距离内保持高速数据传输率,而且能提供很好的安全性。
网络除了有线媒体以外,还可以通过无线传输媒体进行无线传输,目前常用的技术有无线电波、微波、红外线和激光。随着便携式计算机的出现和普及,以及在军事、野外等特殊场合下移动产品的通信联网需要,促进了无线通信网络的发展,出现了无线网络产品。
计算机网络的协议及其作用
两个计算机间通信时对传输信息内容的理解、信息表示形式以及各种情况下的应答信号都必需进行一个共同的约定,我们称为协议( Protocol)。一般来说,协议要由如下三个要素组成:
(1)语义( Semantics)。涉及用于协调和差错处理的控制信息。
(2)语法( Syntax)。涉及数据及控制信息的格式、编码及信号电平等。
(3)定时( Timing)。涉及速度匹配和排序等。
协议本质上无非是一种网上交流的约定,由于联网的计算机类型可以各不相同,各自使用的操作系统和应用软件也不尽相同,为了保持彼此之间实现信息交换和资源共享,它们必须具有共同的语言,交流什么、怎样交流及何时交流,都必须遵行某种互相都能够接受的规则。
目前,全球最大的网络是因特网( Internet),它所采用的网络协议是 TCP/IP协议。它是因特网的核心技术。 TCP/IP协议,具体的说就是传输控制协议( Transmission Control Protocol,即 TCP)和网际协议( Internet Protocol,即 IP)。其中 TCP协议用于负责网上信息的正确传输,而 IP协议则是负责将信息从一处传输到另一处。
TCP/IP协议本质上是一种采用分组交换技术的协议。其基本思想是把信息分割成一个个不超过一定大小的信息包来传送。目的是:一方面可以避免单个用户长时间地占用网络线路;另一方面,可以在传输出错时不必重新传送全部信息,只需重传出错的信息包就行了。
TCP/IP协议组织信息传输的方式是一种 4层的协议方式。下表是一种简化了的层次模型:
应用层 Telnet、FTP和e-mail等
传输层 TCP和UDP
网络层 IP、ICMP和IGMP
网络接口层 设备驱动程序及接口卡
模型中,最底层为 TCP/IP的实现基础,主要用于访问具体局域网,如以大网等。中间两层为 TCP/IP协议,其中的 UDP为一种建立在 IP协议基础上的用户数据协议( User Data gram Protocol,即 UDP)。最上层为建立在 TCP/IP协议基础上的一些服务: TELNET(远程登录),允许某个用户登录到网上的其它计算机上(要求用户必须拥有该机帐号),然后像使用自己的计算机一样使用远端计算机: FTP( File Transfer Protocol,文件传输协议),允许用户在网上计算机之间传送程序或文件; SMTP( Simple Message Transfer Protocol,简单邮件传送协议),允许网上计算机之间互通信函; DNS( Domain Name Service,域名服务协议),用于将域名地址转换成 IP地址等。
因特网(Internet)及其应用
因特网概述
因特网( Internet)是一个建立在网络互连基础上的最大的、开放的全球性网络。因特网拥有数千万台计算机和上亿个用户,是全球信息资源的超大型集合体。所有 采用 TCP/IP协议的计算机都可以加入因特网,实现信息共享和互相通信。与传统的书籍、报刊、广播、电视等传播媒体相比,因特网使用更方便,查阅更快捷,内 容更丰富。今天,因特网已在世界范围内得到了广泛的普及与应用,并正在迅速地改变人们的工作方式和生活方式。
因特网起源于 20世纪 60年代中期由美国国防部高级研究计划局( ARPA)资助的 ARPANET,此后提出的 TCP/IP协议为因特网的发展奠定了基础。 1986年美国国家科学基金会( NSF)的 NSFNET加入了因特网主干网,由此推动了因特网的发展。但是,因特网的真正飞跃发展应该归功于 20世纪 90年代的商业化应用。此后,世界各地无数的企业和个人纷纷加入,终于发展演变成今天成熟的因特网。
我国正式接入因特网是在 1994年 4月,当时为了发展国际科研合作的需要,中国科学院高能物理研究所和北京化工大学开通了到美国的因特网专

Ⅲ 计算机网络第三章(数据链路层)

3.1、数据链路层概述

概述

链路 是从一个结点到相邻结点的一段物理线路, 数据链路 则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)

网络中的主机、路由器等都必须实现数据链路层

局域网中的主机、交换机等都必须实现数据链路层

从层次上来看数据的流动

仅从数据链路层观察帧的流动

主机H1 到主机H2 所经过的网络可以是多种不同类型的

注意:不同的链路层可能采用不同的数据链路层协议

数据链路层使用的信道

数据链路层属于计算机网路的低层。 数据链路层使用的信道主要有以下两种类型:

点对点信道

广播信道

局域网属于数据链路层

局域网虽然是个网络。但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的是多个网络互连的问题,是讨论分组怎么从一个网络,通过路由器,转发到另一个网络。

而在同一个局域网中,分组怎么从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看, 局域网仍属于数据链路层 的范围

三个重要问题

数据链路层传送的协议数据单元是 帧

封装成帧

封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。

首部和尾部的一个重要作用就是进行 帧定界 。

差错控制

在传输过程中可能会产生 比特差错 :1 可能会变成 0, 而 0 也可能变成 1。

可靠传输

接收方主机收到有误码的帧后,是不会接受该帧的,会将它丢弃

如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施

如果数据链路层向其上层提供的是可靠服务,那就还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本

以上三个问题都是使用 点对点信道的数据链路层 来举例的

如果使用广播信道的数据链路层除了包含上面三个问题外,还有一些问题要解决

如图所示,主机A,B,C,D,E通过一根总线进行互连,主机A要给主机C发送数据,代表帧的信号会通过总线传输到总线上的其他各主机,那么主机B,D,E如何知道所收到的帧不是发送给她们的,主机C如何知道发送的帧是发送给自己的

可以用编址(地址)的来解决

将帧的目的地址添加在帧中一起传输

还有数据碰撞问题

随着技术的发展,交换技术的成熟,

在 有线(局域网)领域 使用 点对点链路 和 链路层交换机 的 交换式局域网 取代了 共享式局域网

在无线局域网中仍然使用的是共享信道技术

3.2、封装成帧

介绍

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧

帧头和帧尾中包含有重要的控制信息

发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比特,转换成电信号交给传输媒体,那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?

答:需要帧头和帧尾来做 帧定界

但比不是每一种数据链路层协议的帧都包含有帧定界标志,例如下面例子

前导码

前同步码:作用是使接收方的时钟同步

帧开始定界符:表明其后面紧跟着的就是MAC帧

另外以太网还规定了帧间间隔为96比特时间,因此,MAC帧不需要帧结束定界符

透明传输

透明

指某一个实际存在的事物看起来却好像不存在一样。

透明传输是指 数据链路层对上层交付的传输数据没有任何限制 ,好像数据链路层不存在一样

帧界定标志也就是个特定数据值,如果在上层交付的协议数据单元中, 恰好也包含这个特定数值,接收方就不能正确接收

所以数据链路层应该对上层交付的数据有限制,其内容不能包含帧定界符的值

解决透明传输问题

解决方法 :面向字节的物理链路使用 字节填充 (byte stuffing) 或 字符填充 (character stuffing),面向比特的物理链路使用比特填充的方法实现透明传输

发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面 插入一个转义字符“ESC” (其十六进制编码是1B)。

接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

帧的数据部分长度

总结

3.3、差错检测

介绍

奇偶校验

循环冗余校验CRC(Cyclic Rendancy Check)

例题

总结

循环冗余校验 CRC 是一种检错方法,而帧校验序列 FCS 是添加在数据后面的冗余码

3.4、可靠传输

基本概念

下面是比特差错

其他传输差错

分组丢失

路由器输入队列快满了,主动丢弃收到的分组

分组失序

数据并未按照发送顺序依次到达接收端

分组重复

由于某些原因,有些分组在网络中滞留了,没有及时到达接收端,这可能会造成发送端对该分组的重发,重发的分组到达接收端,但一段时间后,滞留在网络的分组也到达了接收端,这就造成 分组重复 的传输差错

三种可靠协议

停止-等待协议SW

回退N帧协议GBN

选择重传协议SR

这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中

停止-等待协议

停止-等待协议可能遇到的四个问题

确认与否认

超时重传

确认丢失

既然数据分组需要编号,确认分组是否需要编号?

要。如下图所示

确认迟到

注意,图中最下面那个数据分组与之前序号为0的那个数据分组不是同一个数据分组

注意事项

停止-等待协议的信道利用率

假设收发双方之间是一条直通的信道

TD :是发送方发送数据分组所耗费的发送时延

RTT :是收发双方之间的往返时间

TA :是接收方发送确认分组所耗费的发送时延

TA一般都远小于TD,可以忽略,当RTT远大于TD时,信道利用率会非常低

像停止-等待协议这样通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ( A utomatic R epeat re Q uest),意思是重传的请求是自动进行,因为不需要接收方显式地请求,发送方重传某个发送的分组

回退N帧协议GBN

为什么用回退N帧协议

在相同的时间内,使用停止-等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可以发送多个数据分组

回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数

无差错情况流程

发送方将序号落在发送窗口内的0~4号数据分组,依次连续发送出去

他们经过互联网传输正确到达接收方,就是没有乱序和误码,接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组,在通过互联网的传输正确到达了发送方

发送方每接收一个、发送窗口就向前滑动一个位置,这样就有新的序号落入发送窗口,发送方可以将收到确认的数据分组从缓存中删除了,而接收方可以择机将已接收的数据分组交付上层处理

累计确认

累计确认

优点:

即使确认分组丢失,发送方也可能不必重传

减小接收方的开销

减小对网络资源的占用

缺点:

不能向发送方及时反映出接收方已经正确接收的数据分组信息

有差错情况

例如

在传输数据分组时,5号数据分组出现误码,接收方通过数据分组中的检错码发现了错误

于是丢弃该分组,而后续到达的这剩下四个分组与接收窗口的序号不匹配

接收同样也不能接收它们,讲它们丢弃,并对之前按序接收的最后一个数据分组进行确认,发送ACK4, 每丢弃一个数据分组,就发送一个ACK4

当收到重复的ACK4时,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻开始重传,具体收到几个重复确认就立刻重传,根据具体实现决定

如果收到这4个重复的确认并不会触发发送立刻重传,一段时间后。超时计时器超时,也会将发送窗口内以发送过的这些数据分组全部重传

若WT超过取值范围,例如WT=8,会出现什么情况?

习题

总结

回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议

在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议

由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高

选择重传协议SR

具体流程请看视频

习题

总结

3.5、点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议

PPP协议是因特网工程任务组IEIF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]

数据链路层使用的一种协议,它的特点是:简单;只检测差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层协议

PPPoE 是为宽带上网的主机使用的链路层协议

帧格式

必须规定特殊的字符作为帧定界符

透明传输

必须保证数据传输的透明性

实现透明传输的方法

面向字节的异步链路:字节填充法(插入“转义字符”)

面向比特的同步链路:比特填充法(插入“比特0”)

差错检测

能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。

工作状态

当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。

这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机

分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。

通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

3.6、媒体接入控制(介质访问控制)——广播信道

媒体接入控制(介质访问控制)使用一对多的广播通信方式

Medium Access Control 翻译成媒体接入控制,有些翻译成介质访问控制

局域网的数据链路层

局域网最主要的 特点 是:

网络为一个单位所拥有;

地理范围和站点数目均有限。

局域网具有如下 主要优点 :

具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。

便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。

提高了系统的可靠性、可用性和残存性。

数据链路层的两个子层

为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成 两个子层 :

逻辑链路控制 LLC (Logical Link Control)子层;

媒体接入控制 MAC (Medium Access Control)子层。

与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关。 不管采用何种协议的局域网,对 LLC 子层来说都是透明的。

基本概念

为什么要媒体接入控制(介质访问控制)?

共享信道带来的问题

若多个设备在共享信道上同时发送数据,则会造成彼此干扰,导致发送失败。

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术

静态划分信道

信道复用

频分复用FDM (Frequency Division Multiplexing)

将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。

频分复用 的所有用户在同样的时间 占用不同的带宽资源 (请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。

Ⅳ 计算机网络的一个问题.(分组交换的问题)

10、对电路交换,当t=s时,链路建立;
当t=s+x/b,发送完最后一bit;
当t=s+x/b+kd,所有的信息到达目的地。
对分组交换,当t=x/b, 发送完最后一bit;
为到达目的地,最后一个分组需经过k-1个分组交换机的转发,
每次转发的时间为p/b,
所以总的延迟= x/b+(k-1)p/b+kd
所以当分组交换的时延小于电路交换
x/b+(k-1)p/b+kd<s+x/b+kd时,
(k-1)p/b<s
-----------
11、分组个x/p,
传输的总比特数:(p+h)x/p
源发送时延:(p+h)x/pb
最后一个分组经过k-1个分组交换机的转发,中间发送时延:(k-1)(p+h)/b
总发送时延D=源发送时延+中间发送时延
D=(p+h)x/pb+(k-1)(p+h)/b
令其对p的导数等于0,求极值
p=√hx/(k-1)
----------------
哈哈,课后习题哦

Ⅳ 计算机网络自学笔记:TCP

如果你在学习这门课程,仅仅为了理解网络工作原理,那么只要了解TCP是可靠传输,数据传输丢失时会重传就可以了。如果你还要参加研究生考试或者公司面试等,那么下面内容很有可能成为考查的知识点,主要的重点是序号/确认号的编码、超时定时器的设置、可靠传输和连接的管理。

1 TCP连接

TCP面向连接,在一个应用进程开始向另一个应用进程发送数据之前,这两个进程必须先相互“握手”,即它们必须相互发送某些预备报文段,以建立连接。连接的实质是双方都初始化与连接相关的发送/接收缓冲区,以及许多TCP状态变量。

这种“连接”不是一条如电话网络中端到端的电路,因为它们的状态完全保留在两个端系统中。

TCP连接提供的是全双工服务 ,应用层数据就可在从进程B流向进程A的同时,也从进程A流向进程B。

TCP连接也总是点对点的 ,即在单个发送方与单个接收方之间建立连接。

一个客户机进程向服务器进程发送数据时,客户机进程通过套接字传递数据流。

客户机操作系统中运行的 TCP软件模块首先将这些数据放到该连接的发送缓存里 ,然后会不时地从发送缓存里取出一块数据发送。

TCP可从缓存中取出并放入报文段中发送的数据量受限于最大报文段长MSS,通常由最大链路层帧长度来决定(也就是底层的通信链路决定)。 例如一个链路层帧的最大长度1500字节,除去数据报头部长度20字节,TCP报文段的头部长度20字节,MSS为1460字节。

报文段被往下传给网络层,网络层将其封装在网络层IP数据报中。然后这些数据报被发送到网络中。

当TCP在另一端接收到一个报文段后,该报文段的数据就被放人该连接的接收缓存中。应用程序从接收缓存中读取数据流(注意是应用程序来读,不是操作系统推送)。

TCP连接的每一端都有各自的发送缓存和接收缓存。

因此TCP连接的组成包括:主机上的缓存、控制变量和与一个进程连接的套接字变量名,以及另一台主机上的一套缓存、控制变量和与一个进程连接的套接字。

在这两台主机之间的路由器、交换机中,没有为该连接分配任何缓存和控制变量。

2报文段结构

TCP报文段由首部字段和一个数据字段组成。数据字段包含有应用层数据。

由于MSS限制了报文段数据字段的最大长度。当TCP发送一个大文件时,TCP通常是将文件划分成长度为MSS的若干块。

TCP报文段的结构。

首部包括源端口号和目的端口号,它用于多路复用/多路分解来自或送至上层应用的数据。另外,TCP首部也包括校验和字段。报文段首部还包含下列字段:

32比特的序号字段和32比特的确认号字段。这些字段被TCP发送方和接收方用来实现可靠数据传输服务。

16比特的接收窗口字段,该字段用于流量控制。该字段用于指示接收方能够接受的字节数量。

4比特的首部长度字段,该字段指示以32比特的字为单位的TCP首部长度。一般TCP首部的长度就是20字节。

可选与变长的选项字段,该字段用于当发送方与接收方协商最大报文段长度,或在高速网络环境下用作窗口调节因子时使用。

标志字段ACK比特用于指示确认字段中的ACK值的有效性,即该报文段包括一个对已被成功接收报文段的确认。 SYN和FIN比特用于连接建立和拆除。 PSH、URG和紧急指针字段通常没有使用。

•序号和确认号

TCP报文段首部两个最重要的字段是序号字段和确认号字段。

TCP把数据看成一个无结构的但是有序的字节流。TCP序号是建立在传送的字节流之上,而不是建立在传送的报文段的序列之上。

一个报文段的序号是该报文段首字节在字节流中的编号。

例如,假设主机A上的一个进程想通过一条TCP连接向主机B上的一个进程发送一个数据流。主机A中的TCP将对数据流中的每一个字节进行编号。假定数据流由一个包含4500字节的文件组成(可以理解为应用程序调用send函数传递过来的数据长度),MSS为1000字节(链路层一次能够传输的字节数),如果主机决定数据流的首字节编号是7。TCP模块将为该数据流构建5个报文段(也就是分5个IP数据报)。第一个报文段的序号被赋为7;第二个报文段的序号被赋为1007,第三个报文段的序号被赋为2007,以此类推。前面4个报文段的长度是1000,最后一个是500。

确认号要比序号难理解一些。前面讲过,TCP是全双工的,因此主机A在向主机B发送数据的同时,也可能接收来自主机B的数据。从主机B到达的每个报文段中的序号字段包含了从B流向A的数据的起始位置。 因此主机B填充进报文段的确认号是主机B期望从主机A收到的下一报文段首字节的序号。

假设主机B已收到了来自主机A编号为7-1006的所有字节,同时假设它要发送一个报文段给主机A。主机B等待主机A的数据流中字节1007及后续所有字节。所以,主机B会在它发往主机A的报文段的确认号字段中填上1007。

再举一个例子,假设主机B已收到一个来自主机A的包含字节7-1006的报文段,以及另一个包含字节2007-3006的报文段。由于某种原因,主机A还没有收到字节1007-2006的报文段。

在这个例子中,主机A为了重组主机B的数据流,仍在等待字节1007。因此,A在收到包含字节2007-3006的报文段时,将会又一次在确认号字段中包含1007。 因为TCP只确认数据流中至第一个丢失报文段之前的字节数据,所以TCP被称为是采用累积确认。

TCP的实现有两个基本的选择:

1接收方立即丢弃失序报文段;

2接收方保留失序的字节,并等待缺少的字节以填补该间隔。

一条TCP连接的双方均可随机地选择初始序号。 这样做可以减少将那些仍在网络中的来自两台主机之间先前连接的报文段,误认为是新建连接所产生的有效报文段的可能性。

•例子telnet

Telnet由是一个用于远程登录的应用层协议。它运行在TCP之上,被设计成可在任意一对主机之间工作。

假设主机A发起一个与主机B的Telnet会话。因为是主机A发起该会话,因此主机A被标记为客户机,主机B被标记为服务器。用户键入的每个字符(在客户机端)都会被发送至远程主机。远程主机收到后会复制一个相同的字符发回客户机,并显示在Telnet用户的屏幕上。这种“回显”用于确保由用户发送的字符已经被远程主机收到并处理。因此,在从用户击键到字符显示在用户屏幕上之间的这段时间内,每个字符在网络中传输了两次。

现在假设用户输入了一个字符“C”,假设客户机和服务器的起始序号分别是42和79。前面讲过,一个报文段的序号就是该报文段数据字段首字节的序号。因此,客户机发送的第一个报文段的序号为42,服务器发送的第一个报文段的序号为79。前面讲过,确认号就是主机期待的数据的下一个字节序号。在TCP连接建立后但没有发送任何数据之前,客户机等待字节79,而服务器等待字节42。

如图所示,共发了3个报文段。第一个报文段是由客户机发往服务器,其数据字段里包含一字节的字符“C”的ASCII码,其序号字段里是42。另外,由于客户机还没有接收到来自服务器的任何数据,因此该报文段中的确认号字段里是79。

第二个报文段是由服务器发往客户机。它有两个目的:第一个目的是为服务器所收到的数据提供确认。服务器通过在确认号字段中填入43,告诉客户机它已经成功地收到字节42及以前的所有字节,现在正等待着字节43的出现。第二个目的是回显字符“C”。因此,在第二个报文段的数据字段里填入的是字符“C”的ASCII码,第二个报文段的序号为79,它是该TCP连接上从服务器到客户机的数据流的起始序号,也是服务器要发送的第一个字节的数据。

这里客户机到服务器的数据的确认被装载在一个服务器到客户机的数据的报文段中,这种确认被称为是捎带确认.

第三个报文段是从客户机发往服务器的。它的唯一目的是确认已从服务器收到的数据。

3往返时延的估计与超时

TCP如同前面所讲的rdt协议一样,采用超时/重传机制来处理报文段的丢失问题。最重要的一个问题就是超时间隔长度的设置。显然,超时间隔必须大于TCP连接的往返时延RTT,即从一个报文段发出到收到其确认时。否则会造成不必要的重传。

•估计往返时延

TCP估计发送方与接收方之间的往返时延是通过采集报文段的样本RTT来实现的,就是从某报文段被发出到对该报文段的确认被收到之间的时间长度。

也就是说TCP为一个已发送的但目前尚未被确认的报文段估计sampleRTT,从而产生一个接近每个RTT的采样值。但是,TCP不会为重传的报文段计算RTT。

为了估计一个典型的RTT,采取了某种对RTT取平均值的办法。TCP据下列公式来更新

EstimatedRTT=(1-)*EstimatedRTT+*SampleRTT

即估计RTT的新值是由以前估计的RTT值与sampleRTT新值加权组合而成的。

参考值是a=0.125,因此是一个加权平均值。显然这个加权平均对最新样本赋予的权值

要大于对老样本赋予的权值。因为越新的样本能更好地反映出网络当前的拥塞情况。从统计学观点来讲,这种平均被称为指数加权移动平均

除了估算RTT外,还需要测量RTT的变化,RTT偏差的程度,因为直接使用平均值设置计时器会有问题(太灵敏)。

DevRTT=(1-β)*DevRTT+β*|SampleRTT-EstimatedRTT|

RTT偏差也使用了指数加权移动平均。B取值0.25.

•设置和管理重传超时间隔

假设已经得到了估计RTT值和RTT偏差值,那么TCP超时间隔应该用什么值呢?TCP将超时间隔设置成大于等于估计RTT值和4倍的RTT偏差值,否则将造成不必要的重传。但是超时间隔也不应该比估计RTT值大太多,否则当报文段丢失时,TCP不能很快地重传该报文段,从而将给上层应用带来很大的数据传输时延。因此,要求将超时间隔设为估计RTT值加上一定余量。当估计RTT值波动较大时,这个余最应该大些;当波动比较小时,这个余量应该小些。因此使用4倍的偏差值来设置重传时间。

TimeoutInterval=EstimatedRTT+4*DevRTT

4可信数据传输

因特网的网络层服务是不可靠的。IP不保证数据报的交付,不保证数据报的按序交付,也不保证数据报中数据的完整性。

TCP在IP不可靠的尽力而为服务基础上建立了一种可靠数据传输服务。

TCP提供可靠数据传输的方法涉及前面学过的许多原理。

TCP采用流水线协议、累计确认。

TCP推荐的定时器管理过程使用单一的重传定时器,即使有多个已发送但还未被确认的报文段也一样。重传由超时和多个ACK触发。

在TCP发送方有3种与发送和重传有关的主要事件:从上层应用程序接收数据,定时器超时和收到确认ACK。

从上层应用程序接收数据。一旦这个事件发生,TCP就从应用程序接收数据,将数据封装在一个报文段中,并将该报文段交给IP。注意到每一个报文段都包含一个序号,这个序号就是该报文段第一个数据字节的字节流编号。如果定时器还没有计时,则当报文段被传给IP时,TCP就启动一个该定时器。

第二个事件是超时。TCP通过重传引起超时的报文段来响应超时事件。然后TCP重启定时器。

第三个事件是一个来自接收方的确认报文段(ACK)。当该事件发生时,TCP将ACK的值y与变量SendBase(发送窗口的基地址)进行比较。TCP状态变量SendBase是最早未被确认的字节的序号。就是指接收方已正确按序接收到数据的最后一个字节的序号。TCP采用累积确认,所以y确认了字节编号在y之前的所有字节都已经收到。如果Y>SendBase,则该ACK是在确认一个或多个先前未被确认的报文段。因此发送方更新其SendBase变量,相当于发送窗口向前移动。

另外,如果当前有未被确认的报文段,TCP还要重新启动定时器。

快速重传

超时触发重传存在的另一个问题是超时周期可能相对较长。当一个报文段丢失时,这种长超时周期迫使发送方等待很长时间才重传丢失的分组,因而增加了端到端时延。所以通常发送方可在超时事件发生之前通过观察冗余ACK来检测丢包情况。

冗余ACK就是接收方再次确认某个报文段的ACK,而发送方先前已经收到对该报文段的确认。

当TCP接收方收到一个序号比所期望的序号大的报文段时,它认为检测到了数据流中的一个间隔,即有报文段丢失。这个间隔可能是由于在网络中报文段丢失或重新排序造成的。因为TCP使用累计确认,所以接收方不向发送方发回否定确认,而是对最后一个正确接收报文段进行重复确认(即产生一个冗余ACK)

如果TCP发送方接收到对相同报文段的3个冗余ACK.它就认为跟在这个已被确认过3次的报文段之后的报文段已经丢失。一旦收到3个冗余ACK,TCP就执行快速重传 ,

即在该报文段的定时器过期之前重传丢失的报文段。

5流量控制

前面讲过,一条TCP连接双方的主机都为该连接设置了接收缓存。当该TCP连接收到正确、按序的字节后,它就将数据放入接收缓存。相关联的应用进程会从该缓存中读取数据,但没必要数据刚一到达就立即读取。事实上,接收方应用也许正忙于其他任务,甚至要过很长时间后才去读取该数据。如果应用程序读取数据时相当缓慢,而发送方发送数据太多、太快,会很容易使这个连接的接收缓存溢出。

TCP为应用程序提供了流量控制服务以消除发送方导致接收方缓存溢出的可能性。因此,可以说 流量控制是一个速度匹配服务,即发送方的发送速率与接收方应用程序的读速率相匹配。

前面提到过,TCP发送方也可能因为IP网络的拥塞而被限制,这种形式的发送方的控制被称为拥塞控制(congestioncontrol)。

TCP通过让接收方维护一个称为接收窗口的变量来提供流量控制。接收窗口用于告诉发送方,该接收方还有多少可用的缓存空间。因为TCP是全双工通信,在连接两端的发送方都各自维护一个接收窗口变量。 主机把当前的空闲接收缓存大小值放入它发给对方主机的报文段接收窗口字段中,通知对方它在该连接的缓存中还有多少可用空间。

6 TCP连接管理

客户机中的TCP会用以下方式与服务器建立一条TCP连接:

第一步: 客户机端首先向服务器发送一个SNY比特被置为1报文段。该报文段中不包含应用层数据,这个特殊报文段被称为SYN报文段。另外,客户机会选择一个起始序号,并将其放置到报文段的序号字段中。为了避免某些安全性攻击,这里一般随机选择序号。

第二步: 一旦包含TCP报文段的用户数据报到达服务器主机,服务器会从该数据报中提取出TCPSYN报文段,为该TCP连接分配TCP缓存和控制变量,并向客户机TCP发送允许连接的报文段。这个允许连接的报文段还是不包含应用层数据。但是,在报文段的首部却包含3个重要的信息。

首先,SYN比特被置为1。其次,该 TCP报文段首部的确认号字段被置为客户端序号+1最后,服务器选择自己的初始序号,并将其放置到TCP报文段首部的序号字段中。 这个允许连接的报文段实际上表明了:“我收到了你要求建立连接的、带有初始序号的分组。我同意建立该连接,我自己的初始序号是XX”。这个同意连接的报文段通常被称为SYN+ACK报文段。

第三步: 在收到SYN+ACK报文段后,客户机也要给该连接分配缓存和控制变量。客户机主机还会向服务器发送另外一个报文段,这个报文段对服务器允许连接的报文段进行了确认。因为连接已经建立了,所以该ACK比特被置为1,称为ACK报文段,可以携带数据。

一旦以上3步完成,客户机和服务器就可以相互发送含有数据的报文段了。

为了建立连接,在两台主机之间发送了3个分组,这种连接建立过程通常被称为 三次握手(SNY、SYN+ACK、ACK,ACK报文段可以携带数据) 。这个过程发生在客户机connect()服务器,服务器accept()客户连接的阶段。

假设客户机应用程序决定要关闭该连接。(注意,服务器也能选择关闭该连接)客户机发送一个FIN比特被置为1的TCP报文段,并进人FINWAIT1状态。

当处在FINWAIT1状态时,客户机TCP等待一个来自服务器的带有ACK确认信息的TCP报文段。当它收到该报文段时,客户机TCP进入FINWAIT2状态。

当处在FINWAIT2状态时,客户机等待来自服务器的FIN比特被置为1的另一个报文段,

收到该报文段后,客户机TCP对服务器的报文段进行ACK确认,并进入TIME_WAIT状态。TIME_WAIT状态使得TCP客户机重传最终确认报文,以防该ACK丢失。在TIME_WAIT状态中所消耗的时间是与具体实现有关的,一般是30秒或更多时间。

经过等待后,连接正式关闭,客户机端所有与连接有关的资源将被释放。 因此TCP连接的关闭需要客户端和服务器端互相交换连接关闭的FIN、ACK置位报文段。

Ⅵ 简述在网络中进行数据传输的几种方式

网络中常用的数据交换技术可分为两大类:线路交换和存储转发交换,其中存储转发交换交换技术又可分为报文交换和分组交换。 线路交换 通过线路交换进行通信,就是要通过中间交换节点在两个站点之间建立一条专业的通信线路。利用线路交换进行通信需三个阶段:线路建立、数据传输和线路拆除。线路交换的特点是:数据传输可靠、迅速、有序,但线路利用率低、浪费严重,不适合计算机网络。 报文交换 报文交换采用"存储-转发"方式进行传送,无需事先建立线路,事后更无需拆除。它的优点是:线路利用率高、故障的影响小、可以实现多目的报文;缺点是:延迟时间长且不定、对中间节点的要求高、通信不可靠、失序等,不适合计算机网络。 分组交换 分组由报文分解所得,大小固定。分组交换适用于计算机网络,在实际应用中有两种类型:虚电路方式和数据报方式。虚电路方式类似"线路交换",只不过对信道的使用是非独占方式;数据报方式类似"报文交换"。 报文的优点是:高效、灵活、迅速、可靠、经济,但存在如下的缺点:有一定的延迟时间、额外的开销会影响传输效率、实现技术复杂等。

Ⅶ 计算机网络第四章(网络层)

4.1、网络层概述

简介

网络层的主要任务是 实现网络互连 ,进而 实现数据包在各网络之间的传输

这些异构型网络N1~N7如果只是需要各自内部通信,他们只要实现各自的物理层和数据链路层即可

但是如果要将这些异构型网络互连起来,形成一个更大的互联网,就需要实现网络层设备路由器

有时为了简单起见,可以不用画出这些网络,图中N1~N7,而将他们看做是一条链路即可

要实现网络层任务,需要解决一下主要问题:

网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)

在数据链路层那课讲过的可靠传输,详情可以看那边的笔记:网络层对以下的 分组丢失 、 分组失序 、 分组重复 的传输错误采取措施,使得接收方能正确接受发送方发送的数据,就是 可靠传输 ,反之,如果什么措施也不采取,则是 不可靠传输

网络层寻址问题

路由选择问题

路由器收到数据后,是依据什么来决定将数据包从自己的哪个接口转发出去?

依据数据包的目的地址和路由器中的路由表

但在实际当中,路由器是怎样知道这些路由记录?

由用户或网络管理员进行人工配置,这种方法只适用于规模较小且网络拓扑不改变的小型互联网

另一种是实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路有记录,这种方法更适合规模较大且网络拓扑经常改变的大型互联网

补充 网络层(网际层) 除了 IP协议 外,还有之前介绍过的 地址解析协议ARP ,还有 网际控制报文协议ICMP , 网际组管理协议IGMP

总结

4.2、网络层提供的两种服务

在计算机网络领域,网络层应该向运输层提供怎样的服务(“ 面向连接 ”还是“ 无连接 ”)曾引起了长期的争论。

争论焦点的实质就是: 在计算机通信中,可靠交付应当由谁来负责 ?是 网络 还是 端系统 ?

面向连接的虚电路服务

一种观点:让网络负责可靠交付

这种观点认为,应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用 面向连接 的通信方式。

通信之前先建立 虚电路 (Virtual Circuit),以保证双方通信所需的一切网络资源。

如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失、不重复。

发送方 发送给 接收方 的所有分组都沿着同一条虚电路传送

虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。

请注意,电路交换的电话通信是先建立了一条真正的连接。

因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样

无连接的数据报服务

另一种观点:网络提供数据报服务

互联网的先驱者提出了一种崭新的网络设计思路。

网络层向上只提供简单灵活的、 无连接的 、 尽最大努力交付 的 数据报服务 。

网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。

网络层不提供服务质量的承诺 。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

发送方 发送给 接收方 的分组可能沿着不同路径传送

尽最大努力交付

如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的 主机中的运输层负责可靠交付(包括差错处理、流量控制等) 。

采用这种设计思路的好处是 :网络的造价大大降低,运行方式灵活,能够适应多种应用。

互连网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

虚电路服务与数据报服务的对比

对比的方面 虚电路服务 数据报服务

思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证

连接的建立 必须有 不需要

终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址

分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发

当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化

分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序

端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责

4.3、IPv4

概述

分类编制的IPv4地址

简介

每一类地址都由两个固定长度的字段组成,其中一个字段是 网络号 net-id ,它标志主机(或路由器)所连接到的网络,而另一个字段则是 主机号 host-id ,它标志该主机(或路由器)。

主机号在它前面的网络号所指明的网络范围内必须是唯一的。

由此可见, 一个 IP 地址在整个互联网范围内是唯一的 。

A类地址

B类地址

C类地址

练习

总结

IP 地址的指派范围

一般不使用的特殊的 IP 地址

IP 地址的一些重要特点

(1) IP 地址是一种分等级的地址结构 。分两个等级的好处是:

第一 ,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。

第二 ,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口 。

当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为 多归属主机 (multihomed host)。

由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此 一个路由器至少应当有两个不同的 IP 地址 。

(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络 ,因此这些局域网都具有同样的网络号 net-id。

(4) 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

划分子网的IPv4地址

为什么要划分子网

在 ARPANET 的早期,IP 地址的设计确实不够合理:

IP 地址空间的利用率有时很低。

给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。

两级的 IP 地址不够灵活。

如果想要将原来的网络划分成三个独立的网路

所以是否可以从主机号部分借用一部分作为子网号

但是如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?

所以就有了划分子网的工具: 子网掩码

从 1985 年起在 IP 地址中又增加了一个“ 子网号字段 ”,使两级的 IP 地址变成为 三级的 IP 地址 。

这种做法叫做 划分子网 (subnetting) 。

划分子网已成为互联网的正式标准协议。

如何划分子网

基本思路

划分子网纯属一个 单位内部的事情 。单位对外仍然表现为没有划分子网的网络。

从主机号 借用 若干个位作为 子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。

凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的 目的网络号 net-id,先找到连接在本单位网络上的路由器。

然后 此路由器 在收到 IP 数据报后,再按 目的网络号 net-id 和 子网号 subnet-id 找到目的子网。

最后就将 IP 数据报直接交付目的主机。

划分为三个子网后对外仍是一个网络

优点

1.  减少了 IP 地址的浪费        2.  使网络的组织更加灵活        3.  更便于维护和管理

划分子网纯属一个单位内部的事情,对外部网络透明 ,对外仍然表现为没有划分子网的一个网络。

子网掩码

(IP 地址) AND (子网掩码) = 网络地址 重要,下面很多相关知识都会用到

举例

例子1

例子2

默认子网掩码

总结

子网掩码是一个网络或一个子网的重要属性。

路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。

路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。

若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。

无分类编址的IPv4地址

为什么使用无分类编址

无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

CIDR 最主要的特点

CIDR使用各种长度的“ 网络前缀 ”(network-prefix)来代替分类地址中的网络号和子网号。

IP 地址从三级编址(使用子网掩码)又回到了两级编址 。

如何使用无分类编址

举例

路由聚合(构造超网)

总结

IPv4地址的应用规划

给定一个IPv4地址快,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址

定长的子网掩码FLSM(Fixed Length Subnet Mask)

划分子网的IPv4就是定长的子网掩码

举例

通过上面步骤分析,就可以从子网1 ~ 8中任选5个分配给左图中的N1 ~ N5

采用定长的子网掩码划分,只能划分出2^n个子网,其中n是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同

但是也因为每个子网所分配的IP地址数量相同,不够灵活,容易造成IP地址的浪费

变长的子网掩码VLSM(Variable Length Subnet Mask)

无分类编址的IPv4就是变长的子网掩码

举例

4.4、IP数据报的发送和转发过程

举例

源主机如何知道目的主机是否与自己在同一个网络中,是直接交付,还是间接交付?

可以通过 目的地址IP 和 源地址的子网掩码 进行 逻辑与运算 得到 目的网络地址

如果 目的网络地址 和 源网络地址 相同 ,就是 在同一个网络 中,属于 直接交付

如果 目的网络地址 和 源网络地址 不相同 ,就 不在同一个网络 中,属于 间接交付 ,传输给主机所在网络的 默认网关 (路由器——下图会讲解),由默认网关帮忙转发

主机C如何知道路由器R的存在?

用户为了让本网络中的主机能和其他网络中的主机进行通信,就必须给其指定本网络的一个路由器的接口,由该路由器帮忙进行转发,所指定的路由器,也被称为 默认网关

例如。路由器的接口0的IP地址192.168.0.128做为左边网络的默认网关

主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器接口0

路由器收到IP数据报后如何转发?

检查IP数据报首部是否出错:

若出错,则直接丢弃该IP数据报并通告源主机

若没有出错,则进行转发

根据IP数据报的目的地址在路由表中查找匹配的条目:

若找到匹配的条目,则转发给条目中指示的吓一跳

若找不到,则丢弃该数据报并通告源主机

假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值

接下来路由器对该IP数据报进行查表转发

逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址,然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示,图中所示的也就是接口1转发该IP数据报

路由器是隔离广播域的

4.5、静态路由配置及其可能产生的路由环路问题

概念

多种情况举例

静态路由配置

举例

默认路由

举例

默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的

特定主机路由

举例

有时候,我们可以给路由器添加针对某个主机的特定主机路由条目

一般用于网络管理人员对网络的管理和测试

多条路由可选,匹配路由最具体的

静态路由配置错误导致路由环路

举例

假设将R2的路由表中第三条目录配置错了下一跳

这导致R2和R3之间产生了路由环路

聚合了不存在的网络而导致路由环路

举例

正常情况

错误情况

解决方法

黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入它后就被丢弃

网络故障而导致路由环路

举例

解决方法

添加故障的网络为黑洞路由

假设。一段时间后故障网络恢复了

R1又自动地得出了其接口0的直连网络的路由条目

针对该网络的黑洞网络会自动失效

如果又故障

则生效该网络的黑洞网络

总结

4.6、路由选择协议

概述

因特网所采用的路由选择协议的主要特点

因特网采用分层次的路由选择协议

自治系统 AS :在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

自治系统之间的路由选择简称为域间路由选择,自治系统内部的路由选择简称为域内路由选择

域间路由选择使用外部网关协议EGP这个类别的路由选择协议

域内路由选择使用内部网关协议IGP这个类别的路由选择协议

网关协议 的名称可称为 路由协议

常见的路由选择协议

Ⅷ 计算机网络交换技术的数据交换

数据交换的基本概念
通常将数据在通信子网中各节点间的数据传输过程称为数据交换。 (circuit switched network)
线路交换是相对于分组交换的一个概念。电路交换要求必须首先在通信双方之间建立连接通道。在连接建立成功之后,双方的通信活动才能开始。通信双方需要传递的信息都是通过已经建立好
的连接来进行传递的,而且这个连接也将一直被维持到双方的通信结束。在某次通信活动的整个过程中,这个连接将始终占用着连接建立开始时,通信系统分配给它的资源(通道、带宽、时隙、码字等等),这也体现了电路交换区别于分组交换的本质特征。
线路交换的特点是:数据传输可靠、迅速、有序,但线路利用率低、浪费严重,不适合计算机网络。 (message switched network)
是数据交换的三种方式之一,报文整个地发送,一次一跳。报文交换是分组交换的前身,是由列奥纳德·克莱因饶克于1961年提出的。
报文交换的主要特点是:存储接受到的报文,判断其目标地址以选择路由,最后,在下一跳路由空闲时,将数据转发给下一跳路由。报文交换系统现今都由分组交换或电路交换网络所承载。
报文交换采用存储-转发方式进行传送,无需事先建立线路,事后更无需拆除。它的优点是:线路利用率高、故障的影响小、可以实现多目的报文;缺点是:延迟时间长且不定、对中间节点的要求高、通信不可靠、失序等,不适合计算机网络。
报文的优点是:高效、灵活、迅速、可靠、经济,但存在如下的缺点:有一定的延迟时间、额外的开销会影响传输效率、实现技术复杂等。 (packet switched network)
分组交换是一种数位通信网络。它将资料组合成适当大小的区块,称为封包,再通过网络来传输。这个传送封包的网络是共享的,每个单位都可以独立把封包再传送出去,而且配置自己需要的资源。
封包交换的基本原则是最佳化的使用连线负载能力,最小化回应时间,以及增进通讯的健全性。
分组交换适用于计算机网络,在实际应用中有两种类型:虚电路方式和数据报方式。虚电路方式类似线路交换,只不过对信道的使用是非独占方式;数据报方式类似报文交换。

Ⅸ 关于计算机网络的问题!急!!

1、简述我国计算机网络发展的三个阶段。

答: Internet在中国的发展历程可以大略地划分为三个阶段:

第一阶段为1987—1993年,也是研究试验阶段。在此期间中国一些科研部门和高等院校开始研究InternetInternet技术,并开展了科研课题和科技合作工作,但这个阶段的网络应用仅限于小范围内的电子邮件服务。

第二阶段为1994年至1996年,同样是起步阶段。1994年4月,中关村地区教育与科研示范网络工程进入Internet,从此中国被国际上正式承认为有Internet的国家。之后,Chinanet、CERnet、CSTnet、Chinagbnet等多个Internet络项目在全国范围相继启动,Internet开始进入公众生活,并在中国得到了迅速的发展。至1996年底,中国Internet用户数已达20万,利用Internet开展的业务与应用逐步增多。

第三阶段从1997年至今,是Internet在我国快速最为快速的阶段。国内Internet用户数97年以后基本保持每半年翻一番的增长速度。据中国Internet络信息中心(CNNIC)公布的统计报告显示,截至2009年7月17日,我国上网用户总人数为3.38亿人,居世界第一。

//////////////////////////////////////////////////////////////////////

2、试将TCP/IP和OSI的体系结构进行比较。讨论其异同处。
答:
(1)OSI和TCP/IP的相同点是二者均采用层次结构,而且都是按功能分层。
(2)OSI和TCP/IP的不同点:
①OSI分七层,自下而上分为物理层、数据链路层、网络层、运输层、会话层、表示层和应用层,而TCP/IP分四层:网络接口层、网间网层(IP)、传输层(TCP)和应用层。严格讲,TCP/IP网间网协议只包括下三层,应用程序不算TCP/IP的一部分。
②OSI层次间存在严格的调用关系,两个(N)层实体的通信必须通过下一层(N-1)层实体,不能越级,而TCP/IP可以越过紧邻的下一层直接使用更低层次所提供的服务(这种层次关系常被称为“等级”关系),因而减少了一些不必要的开销,提高了协议的效率。
③OSI只考虑用一种标准的公用数据网将各种不同的系统互联在一起,后来认识到互联网协议的重要性,才在网络层划出一个子层来完成互联作用。而TCP/IP一开始就考虑到多种异构网的互联问题,并将互联网协议IP作为TCP/IP的重要组成部分。
④OSI开始偏重于面向连接的服务,后来才开始制定无连接的服务标准,而TCP/IP一开始就有面向连接和无连接服务,无连接服务的数据报对于互联网中的数据传送以及分组话音通信都是十分方便的。
⑤OSI与TCP/IP对可靠性的强调也不相同。对OSI的面向连接服务,数据链路层、网络层和运输层都要检测和处理错误,尤其在数据链路层采用校验、确认和超时重传等措施提供可靠性,而且网络和运输层也有类似技术。而TCP/IP则不然,TCP/IP认为可靠性是端到端的问题,应由运输层来解决,因此它允许单个的链路或机器丢失数据或数据出错,网络本身不进行错误恢复,丢失或出错数据的恢复在源主机和目的主机之间进行,由运输层完成。由于可靠性由主机完成,增加了主机的负担。但是,当应用程序对可靠性要求不高时,甚至连主机也不必进行可靠性处理,在这种情况下,TCP/IP网的效率最高。
⑥在两个体系结构中智能的位置也不相同。OSI网络层提供面向连接的服务,将寻径、流控、顺序控制、内部确认、可靠性带有智能性的问题,都纳入网络服务,留给末端主机的事就不多了。相反,TCP/IP则要求主机参与几乎所有网络服务,所以对入网的主机要求很高。
⑦OSI开始未考虑网络管理问题,到后来才考虑这个问题,而TCP/IP有较好的网络管理。

//////////////////////////////////////////////////////////////////////

3、假定有一个长度为500MB的数据块(1M=220bit;B是字节,1B=8bit),在带宽为10Mb/s的信道上(M指106)的发送时延为多少?若将数据使用光纤传送到1000km远的计算机需要的总时延为多少?(光在光纤中的传播速率约为2.0X105km/s)
答:发送时延 = 数据长度/信道带宽 = (500MB x 8)/ 10Mb/s = 40秒
传播时延 = 传输距离/信号传播速度 = 1000km/2.0X105km = 5 x 10的-3次方秒

本题中的时延 = 发送时延 + 传播时延 约等于40秒

此外,实际情况中还存在信号排队时延未在题中列出!

//////////////////////////////////////////////////////////////////////

电路交换、报文交换和分组交换的特点和比较

(1)电路交换:由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成),因而有以下优缺点。
优点:
①由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。
②通信双方之间的物理通路一旦建立,双方可以随时通信,实时性强。
③双方通信时按发送顺序传送数据,不存在失序问题。
④电路交换既适用于传输模拟信号,也适用于传输数字信号。
⑤电路交换的交换的交换设备(交换机等)及控制均较简单。
缺点:
①电路交换的平均连接建立时间对计算机通信来说嫌长。
②电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用低。
③电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。

(2)报文交换:报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式,因而有以下优缺点:
优点:
①报文交换不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送报文。
②由于采用存储转发的传输方式,使之具有下列优点:a.在报文交换中便于设置代码检验和数据重发设施,加之交换结点还具有路径选择,就可以做到某条传输路径发生故障时,重新选择另一条路径传输数据,提高了传输的可靠性;b.在存储转发中容易实现代码转换和速率匹配,甚至收发双方可以不同时处于可用状态。这样就便于类型、规格和速度不同的计算机之间进行通信;c.提供多目标服务,即一个报文可以同时发送到多个目的地址,这在电路交换中是很难实现的;d.允许建立数据传输的优先级,使优先级高的报文优先转换。
③通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。
缺点:
①由于数据进入交换结点后要经历存储、转发这一过程,从而引起转发时延(包括接收报文、检验正确性、排队、发送时间等),而且网络的通信量愈大,造成的时延就愈大,因此报文交换的实时性差,不适合传送实时或交互式业务的数据。
②报文交换只适用于数字信号。
③由于报文长度没有限制,而每个中间结点都要完整地接收传来的整个报文,当输出线路不空闲时,还可能要存储几个完整报文等待转发,要求网络中每个结点有较大的缓冲区。为了降低成本,减少结点的缓冲存储器的容量,有时要把等待转发的报文存在磁盘上,进一步增加了传送时延。

(3)分组交换:分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去,因此分组交换除了具有报文的优点外,与报文交换相比有以下优缺点:
优点:
①加速了数据在网络中的传输。因为分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了报文的传输时间。此外,传输一个分组所需的缓冲区比传输一份报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的机率及等待的时间也必然少得多。
②简化了存储管理。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。
③减少了出错机率和重发数据量。因为分组较短,其出错机率必然减少,每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时延。
④由于分组短小,更适用于采用优先级策略,便于及时传送一些紧急数据,因此对于计算机之间的突发式的数据通信,分组交换显然更为合适些。
缺点:
①尽管分组交换比报文交换的传输时延少,但仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。
②分组交换与报文交换一样,每个分组都要加上源、目的地址和分组编号等信息,使传送的信息量大约增大5%~10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。
③当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。
总之,若要传送的数据量很大,且其传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。

//////////////////////////////////////////////////////////////////////

模拟数据:也称为模拟量,相对于数字量而言,指的是取值范围是连续的变量或者数值。

模拟信号:指的是在时间和数值上都是连续变化的信号。

Ⅹ 运输层知识要点——谢希仁《计算机网络》

为了在计算机网络中有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所 交换数据的格式 以及有关的 同步 问题。

同步的含义:在一定条件下应当发生什么事件,因而含有时序的意思。

网络协议:为进行网络中的数据交换而建立的规则、标准或约定。

网络协议由以下三个要素组成:

   1)语法:即数据与控制信息的结构或格式

   2)语义:即需要发出何种控制信息,完成何种动作以及做出何种反应

   3)同步:即事件实现顺序的详细说明

一、运输层协议的概述

   1.1 进程之间的通信

   1.2 运输层的两个主要协议

   1.3 运输层的端口

二、用户数据报协议UDP

   2.1 UDP概述

   2.2 UDP的首部格式

三、传输控制协议TCP概述

   3.1 TCP的最主要的特点

   3.2 TCP的连接

四、可靠传输的工作原理

   4.1 停止等待协议

   4.2 连续ARQ协议

五、TCP报文段的首部格式

六、TCP可靠传输的实现

   6.1 以字节为单位的滑动窗口

   6.2 超时重传时间的选择

   6.3 选择确认SACK

七、TCP的流量控制

   7.1 利用滑动窗口实现流量控制

   7.2 必须考虑传输效率

八、TCP的拥塞控制

   8.1 拥塞控制的一般原理

   8.2 几种拥塞控制方法

   8.3 随机早期检测RED

九、TCP的运输连接管理

   9.1 TCP的连接建立

   9.2 TCP的连接释放

   9.3 TCP的有限状态机

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.1 进程之间的通信

1.只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到了下三层的功能

2.两个主机进行通信就是两个主机中的应用进程互相通信。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。(IP协议能把分组送到目的主机)

网络层时为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

3.运输层一个重要功能——复用、分用。 (应用进程复用、分用运输层)

1.2 运输层的两个主要协议

1.UDP—User Datagram Protocol 用户数据报协议(无连接):DNS/RIP/DHCP/SNMP/NFS

TCP—Transmission Control Protocol 传输控制协议(面向连接):SMTP/TELNET/HTTP/ FTP

1.3 运输层的端口

问题:为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须使用统一的方法(而这种方法必须与特定操作系统无关)对TCP/IP体系的应用进程进行标识。

为什么不用进程号来区分?(第一,不同操作系统的进程标识符不同;第二,用功能来识别,而不是进程,例如邮件服务功能,而不管具体是哪个进程)

解决方案:在运输层使用协议端口号,即端口。软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。(端口号只具有本地意义,只是为了标识本计算机应用层中各个进程在和运输层交互时的层间接口。)

端口分为两大类:

1)服务器使用的端口号:熟知端口号或系统端口号(0~1023);登记端口号(1024~49151)

2)客户端使用的端口号:49152~65535

2.1 UDP概述

1.UDP只在IP的数据报服务至上增加了很少一点功能,就是复用、分用以及差错检测功能

2.特点

   1)无连接

   2)尽最大努力交付

   3)面向报文 (不合并、不拆分、保留这些报文的边界)

   4)UDP没有拥塞控制

   5)UDP支持一对一、一对多、多对一和多对多的交互通信

   6)UDP的首部开销小,只有8字节

应用进程本身可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传已丢失的报文。

2.2 UDP的首部格式

1.traceroute 让发送的UDP用户数据报故意使用一个非法的UDP端口号,接收方丢弃报文,并由ICMP(网络控制报文协议)发送“端口不可达”差错报文给发送方。

2.计算检验和。IP数据报的校验和只检验IP数据报的首部,但UDP的校验和是把首部和数据部分一起都检验。(12字节的首部+真正的首部+数据来进行校验和的计算)

   Q1.为什么计算校验和要加12字节的伪首部

   Q2.计算校验和的原理是什么?

3.1 TCP的最主要的特点

1.面向连接的运输层协议(建立连接、传输数据、释放连接)

2.点对点,每一条TCP连接只能有两个端点

3.可靠交付(无差错、不丢失、不重复、并且按序到达)

4.全双工通信。TCP连接的两端都设有发送缓存和接收缓存。

5.面向字节流。(流指的是流入到进程或从进程流出的字节序列;面向字节流:TCP把应用程序交下来的数据看成是一连串的无结构字节流。 接收方的应用程序必须有能力识别接收到的字节流,把它还原成有意义的应用层数据。 因此TCP可以根据窗口值和当前网络状况调整发送的报文长度。划分短一点,或者积累到足够多再发送出去。)

3.2 TCP的连接

1.TCP把连接作为最基本的抽象。

2.每一条TCP连接有两个端点。TCP连接的端点叫作套接字。

   套接字soket = (IP地址:端口号)

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。

   TCP连接 ::= {socket1, socket2}

理想的传输条件有以下两个特点:

   1)传输信道不产生差错

   2)不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据

实际的网络并不具备,因此:

   1)出现差错时,让发送方重传

   2)接收方来不及处理时,及时告诉发送方适当降低发送数据的速度

4.1 停止等待协议

1.“停止等待”就是没发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。

2.超时重传。在每发完一个分组就设置一个超时计时器,如果在超时计时器之前收到对方的确认,就撤销已设置的超时计时器。如果未收到,就认为刚才的分组丢失,并重传。

3.三种情况:A发送的分组出错、丢失;B发送的确认丢失;B发送的确认迟到

确认丢失:B丢弃重复的分组,向A重传确认

确认迟到:A丢弃重复的确认,B丢弃重复分组,并向A重传确认

4.常称为自动重传请求ARQ,重传时自动进行的(超时即重传)

5.缺点:信道利用率太低

   U=Td/(Td+RTT+Ta)

为了提高传输效率,发送方不使用停止等待协议,而是采用流水线传输。流水线传输就是发送发可连续发送多个分组,不必等每发完一个分组就停顿下来等待对方的确认。(连续ARQ协议和滑动窗口协议)

4.2 连续ARQ协议

1.位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。

2.累积确认:接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认。

3.缺点:Go-back-N (发送前5个分组,第3个分组丢失,后面三个要重传)

1.源端口和目的端口

2.序号。 每个字节都按顺序编号。

3.确认号。 期望收到对方下一个报文段的第一个数据字节的序号。

若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。

4.数据偏移。 指出TCP报文段的数据起始处距离TCP报文段的起始处有多远(也即TCP报文段首部长度)。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的。

5.窗口。窗口字段明确指出了现在允许对方发送的数据量。窗口值是经常在动态变化着。

6.1 以字节为单位的滑动窗口

1.发送缓存用来暂存:

   1)发送应用程序传送给发送方TCP准备发送的数据;

   2)TCP已发送但未收到确认德尔数据

2.接收缓存用来存放:

   1)按序到达的、但尚未被接收应收程序读取的数据;

   2)未按序到达的数据

3.注意三点:

   1)A的发送窗口是根据B的接收窗口设置的,但是在同一时刻,由于网络传输的滞后,A的发送窗口并不总是B的接收窗口一样大

   2)TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程

   3)TCP接收方有累计确认功能(不能过分推迟发送确认,否则会导致发送方不必要的重传)

6.2 超时重传时间的选择

1.超时重传时间设置太短,会引起很多不必要的重传;如果设置太长,使网络的空闲时间增大,降低传输效率。

2.新的RTTs = (1-a)x(旧的RTTs) + ax(新的RTT样本),其中RTT样本的时间为:记录一个报文段发出的时间,以及收到相应的确认时间,时间差就是报文段的往返时间RTT。

3.RTO = RTTs + 4 x RTTd,其中RTO为超时重传时间,RTTd是RTT的偏差的加权平均值。

新的RTTd = (1-b) x (旧的RTTd)+ b x |RTTs - 新的RTT样本|

4.一个问题:发送一个报文段,设定的重传时间到了,还没有收到确认。于是重传报文段。经过一段时间,收到了确认报文段。现在的问题是:如何判定此确认报文段是对先发送的报文段的确认,还是对后来重传的报文段的确认?

1)解决方法1,在计算加权平均值RTTs时,只要报文段重传了,就不采用其往返时间样本。

引入的问题:报文段的时延突然增大的情况

2)解决方法2,报文段每重传一次,就把超时重传时间RTO增大一些(一般是2倍)。当不在发生报文段的重传时,再根据加权平均计算。

6.3 选择确认SACK

SACK文档并没有指明发送发应当怎样响应SACK。因此大多数的实现还是重传所有未被确认的数据块。

7.1 利用滑动窗口实现流量控制

1.流量控制:就是让发送方的发送速率不要太快,要让接收方来得及接收。

2.利用滑动窗口机制可很方便地在TCP连接上实现对发送方的流量控制。发送方的发送窗口不能超过接收方给出的接收窗口的数值。

3.死锁情况:B向A发送了零窗口的报文段后不久,B又有了一些缓存空间,因此B向A发送rwnd = 400.然而该报文段在传送过程中丢失。A一直等待B发送的非零窗口的通知,B也一直等待A发送的数据。( 窗口通知不超时重传?为什么? )

解决方法:TCP为每个连接设有一个持续计时器。只要一方收到对方的零窗口通知,就启动计时器。计时器到期后,发送一个零窗口探测报文段,而对方就在确认这个探测报文段时给出了现在的窗口值。若仍为零,收到报文段的一方重新设置持续计时器。

7.2 必须考虑传输效率

1.应用程序把数据传送到TCP的发送缓存后,剩下的发送任务就由TCP来控制了。

2.三种不同的机制来控制TCP报文段的发送时机:

   1)TCP维持一个变量,它等于最大报文段长度MSS,只要缓存中的存放的数据达到MSS,就组装成一个TCP报文段发送出去

   2)由发送方的应用进程指明要求发送报文段,即TCP支持推送操作

   3)发送方设置一个定时器

3.问题一、若用户只发送一个字节,则非常浪费带宽。

解决方法:若发送应用程序把要发送的数据逐个字节地送到TCP的发送缓存,则发送方就把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来。当发送方收到对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段发送出去。(采用收到确认就发送+并开始缓存的方式;同时当到达的数据已达到发送窗口大小的一半或已达到报文段的最大长度时,就立即发送一个报文段。)

4.问题二、糊涂窗口综合症。接收缓存已满,应用程序一次只读取一个字节,然后向发送方发送确认。

解决方法:让接收方等待一段时间,使得接收缓存已有足够空间容纳一个最长的报文段,或者等到接收缓存已有一半空闲的空间。则接收方就发出确认报文。

8.1 拥塞控制的一般原理

1.拥塞的定义:对资源的需求 > 可用资源。 在计算机网络中的链路带宽、交换结点中的缓存和处理机等,都是网络中的资源。

2.拥塞解决不能靠解决某一个部分的问题。因为这会将瓶颈转移到其他地方。问题的实质往往是整个系统的各个部分不匹配。只有所有部分都平衡了,问题才会得到解决。

3.拥塞控制与流量控制的比较。

   1)拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。

   拥塞控制有个前提:网络能够承受现有的网络负荷

   拥塞控制是一个全局性过程。(发送拥塞时,不知道在某处、什么原因造成的)

   2)流量控制:点对点通信量的控制,是个端到端的问题

   流量控制:抑制发送端发送数据的速率,以便使接收端来得及接收。

4.寻找拥塞控制的方案无非就是使不等式 “对资源的需求 > 可用资源 ”不再成立的条件。但是必须考虑该措施带来的其他影响。

5.计算机网络是个复杂的系统。从控制理论的角度来看拥塞控制,可以分为开环控制和闭环控制两种方法。

   1)开环控制:设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。但一旦系统运行起来,就不再中途改正。

   2)闭环控制:基于反馈环路。

   步骤一、监测网络系统以便检测到拥塞在何时、何处发生;

   步骤二、把拥塞发生的信息传送到可采取行动的地方

   步骤三、调整网络系统的运行以解决出现的问题

8.2 几种拥塞控制方法(只考虑网络拥塞程度,即假设接收方总是有足够大的缓存空间)

1.慢开始和拥塞避免

1)发送方维持一个拥塞窗口。

   拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。

   控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口增大;如果网络出现拥塞,则减小。

2)慢开始的思路:由小到大逐渐增大拥塞窗口数值。每收到一个对新的报文段的确认,把拥塞窗口增加至多一个MSS的数值。(没经过一个传输轮次,拥塞窗口cwnd就加倍)

轮次:把拥塞窗口所允许发送的报文段都连续发送出去,并收到了对已发送的最后一字节的确认。

慢开始的“慢”并不是指cwnd的增长速率慢,而是指TCP开始发送报文段时先设置cwnd=1(一个MSS数值)。

3)慢开始门限ssthresh

   为防止拥塞窗口增长过大,引入一个慢开始门限ssthresh。

   当cwnd < ssthresh时,使用上述的慢开始算法

   当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法

4)拥塞避免算法

思路:让拥塞窗口cwnd缓慢增大,即没经过一个往返时间RTT就把发送方的拥塞窗口cwnd增加1,而不是加倍。

5)慢开始门限的设置

只要发送方判断网络出现拥塞(没有按时收到确认),就把慢开始门限ssthresh设置为出现拥塞时发送方窗口值的一半,然后把拥塞窗口cwnd重置为1,执行慢开始算法。

6)乘法减小和加法增大

乘法减小:网络出现拥塞时,把慢开始门限ssthresh减半(当前的ssthresh的一半),并执行慢开始算法。

加法增大:执行拥塞避免方法

2.快重传和快恢复

1)快重传(尽快重传未被确认的报文段)

首先,要求接收方每收到一个失序的报文段后就立即发出重复确认。(如接收方收到了M1和M2后都分别发出了确认,但接收方没有收到M3但接着收到了M4。此时接收方立即发送对M2的重复确认。)

其次,发送方只要一连收到三个重复确认,就应当立即重传对方尚未收到的报文段M3.

2)快恢复

要点一、当发送方连续收到三个重复确认,就执行“乘法减小”算法,把慢开始门限ssthresh减半。

要点二、由于发送方认为网络很可能没有发生拥塞(因为收到了连续的重复确认),把cwnd设置为慢开始门限ssthresh减半后的值,然后开始执行拥塞避免算法

慢开始算法只在TCP连接建立时和网络出现超时才使用。

3.发送方的窗口

发送方窗口的上限值 = Min [rwnd, cwnd]

8.3 随机早期检测RED(IP层影响TCP层的拥塞控制)

1.网络层的分组丢弃策略

网络层的策略对TCP拥塞控制影响最大的就是路由器的分组丢弃策略。

如果路由器队列已满,则后续到达的分组将都被丢弃。这就叫做尾部丢弃策略。

2.全局同步

由于TCP复用IP,若发生路由器中的尾部丢弃,就可能会同时影响到很多条TCP连接,结果就使许多TCP连接在同一时间突然都进入到慢开始状态。全局同步使得全网的通信量突然下降了很多,网络恢复正常后,其通信量又突然增大很多。

3.随机早期检测RED

使路由器的队列维持两个参数,即队列长度最小门限THmin和最大门限THmax。当每一个分组到达时,RED就先计算平均队列长度Lav。RED算法是:

1)若平均队列长度小于最小门限THmin,则把新到达的分组放入队列进行排队

2)若平均队列长度超过最大门限THmax,则把新到达的分组丢弃

3)若平均队列长度在最小门限THmin和最大门限THmax之间,则按照某一概率p将新到达的分组丢弃。

随机体现在3),在检测到网络拥塞的早期征兆时(即路由器的平均队列长度超过一定的门限值时),就先以概率p随机丢弃个别的分组,让拥塞控制只在个别的TCP连接上进行,因而避免发生全局性的拥塞控制。

4.平均队列长度Lav和分组丢弃概率p

Lav = (1-d) x (旧的Lav) +d x (当前的队列长度样本)

p = ptemp / (1- count x ptemp)

ptemp = pmax x (Lav - THmin) / (THmax - THmin)

TCP时面向连接的协议。

运输连接就有三个阶段:连接建立、数据传送和连接释放

运输连接的管理:使运输连接的建立和释放都能正常地进行。

在TCP连接建立过程中要解决以下三个问题:

   1)要使每一方能够确知对方的存在

   2)要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳等等)

   3)能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配

9.1 TCP的连接建立

1.TCP规定,SYN=1报文段不能携带数据,但消耗一个序号

2.TCP规定,ACK=1报文段可以携带数据,如果不携带数据则不消耗序号

3.为什么A还要发送一次确认?为了防止已失效的连接请求报文突然又传送到B,因而产生错误。

“已失效的连接请求报文段”

A发出第一个连接请求报文段,在网络中滞留超时,又发出了第二个连接请求。但B收到第一个延迟的失效的连接请求报文段后,就误认为是A又发出了一次新的连接请求。于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立。此时A不会理睬B的确认,也不会发数据,但B一直等A发送数据,B的许多资源就浪费了。

采用三次握手,A不会向B发送确认,因此B就知道A并没有要求建立确认。

9.2 TCP的连接释放

1.TCP规定,FIN报文段基石不携带数据,也消耗一个序号

2.第二次握手后,TCP通知高层应用程序,因而从A到B这个方向的连接就释放,TCP连接处于半关闭状态

3.为什么A在TIME-WAIT状态必须等待2MSL的时间

  1)为了保证A发送的最后一个ACK报文段能够到达B。因为ACK可能丢失,此时B可能会超时重传,然后A重传确认,并重新启动2MSL计时器

  2)防止“已失效的连接请求报文段”出现在本连接中。可以使本连接持续时间内所产生的所有报文段都从网络中消失。

9.3 TCP的有限状态机