网络与分布式计算复习笔记
分布式与云计算基础(中科大课堂笔记)

分布式与云计算基础(中科⼤课堂笔记)⼤多数课程都是站在使⽤的⾓度来讲分布式系统如何⼯作和完成任务,本课程是站在系统设计⽅⾯来看,分布式系统是怎样实现,要考虑哪些问题。
对我来说受益匪浅,故作为整理。
分布式系统是什么:1.由多个独⽴的计算机连接在⼀起的⼀个系统。
必须是多个独⽴的计算机⽽不是多核⼼的单个计算机。
2.在⽤户眼⾥感觉是单个系统,即透明性。
分布式系统想要实现的⽬标就是将多台电脑的性能融汇成⼀起⽆差别来使⽤。
分布式系统要实现多种透明性,下表说明了常见的⼏种透明性。
在分布式系统中,可扩展性/伸缩性是考虑的重要性能之⼀,在任何中⼼化的系统中,当规模扩⼤,都会出现问题,难以实现。
所以要考虑去中⼼化的系统。
对于去中⼼化的系统:·任何⼀个机器都没有全局性信息,这样的任何决策都不能讲是最优的,都是在其已有的信息上⾯做决策。
P2P还有路由选择协议都是在这个⼤规模范围下做局部决策的例⼦。
·基于本地信息做决策,因为即使联⽹传输也⽆法获得全局信息,不如本地最快,应该是这样理解。
·错误是不可避免的,所以要考虑各种容错机制,很简单的任务,⼀旦放到分布式系统中,就要考虑各种失败情况,问题便变得复杂。
·没有统⼀的全局时钟。
全局同步时钟可以做,但是会涉及到⼤量的计算机间通讯,⽽CPU运转速度是很快的,⼤量的通讯必然导致性能的下降,所以能不实现全局时钟尽量不去实现全局时钟。
成熟的去中⼼化分布式系统参考学习:分布式系统中有很多常见的错误需要设计的时候去加以考虑:分布式系统⼤致可以分为三类:第⼀类为分布式计算系统:为了进⾏⾼效计算,多台计算机集群并⾏计算传统的⽅式⼀般都是统⼀的节点群,然后统⼀的管理结点进⾏管理。
接下来发展有⽹格计算(Grid Computing):计算的结点由局域的⼏⼗台机器可以扩展到⼴域的成百上千台。
(是云计算的前⾝)第⼆类为分布式信息系统:以处理信息、信息交换为主,不需要计算机有过⾼的计算能⼒。
网络与分布式计算复习提纲

1.2 什么是分布式计算系统?它的实质是什么?分布式计算系统是由多个相互连接的计算机组成的一个整体,这些计算机在一组系统软件(分布式操作系统或中间件)环境下,合作执行一个共同的或不同的任务,最少依赖于集中的控制过程、数据和硬件。
实质:分布计算系统=分布式硬件+分布式控制+分布式数据。
1.10多处理机与多计算机的区别是什么?同构多计算机和异构多计算机各有什么特点?区别:多计算机是将多个计算机联合起来处理问题,多处理机是在一个系统内集成多个处理器.广义上说,使用多台计算机协同工作来完成所要求的任务的计算机系统都是多处理机系统。
即多计算机系统。
狭义上说:多处理机系统的作用是利用系统内的多个CPU来并行执行用户的几个程序,以提高系统的吞吐量或用来进行冗余操作以提高系统的可靠性。
同构计算机的特点:1.每个节点是一台计算机,包含CPU和存储器。
2.节点间的通信量较少。
3.同构计算机系统的互连有两种结构:基于总线的多计算机系统和基于交换的多计算机系统。
异构计算机的特点:1.节点可能是多处理机系统、集群或并行高性能计算机。
2.节点间通过互联网络如Internet连接起来的。
3.有两种实现方法:采用分布式操作系统和中间件软件层。
1.16什么是中间件,它的功能是什么?它在分布式系统中的地位是什么?中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件功能:命名服务作业调度高级通信服务资源管理数据持久化分布式事务分布式文档系统安全服务地位:中间件的一个重要目标是对应用程序隐藏底层平台的异构型,因此中间件系统都提供一组完整度不同的服务集。
这些服务是通过中间件系统提供的接口来调用的。
一般禁止跳过中间件层直接调用底层操作系统的服务。
1.18分布式系统有哪些计算模式?(必考)1.面向对象模式2.面向服务模式3.公用计算模式4.志愿参与模式(详见书p21-p22页)2.5有哪些名字服务形式?名字服务器的组成与功能是什么?名字服务形式:(1)名字服务:名字服务是根据实体的名字查找它的属性(地址)。
三网复习笔记

计算机的四特点:1.有信息处理的特性。
2.有程序控制的特性。
3.有灵活选择的特性。
4.有正确应用的特性。
计算机发展经历5个重要阶段:1 大型机阶段。
2 小型机阶段。
3 微型机阶段。
4 客户机/服务器阶段。
5 互联网阶段。
计算机现实分类:服务器,工作站,台式机,便携机,手持设备。
计算机传统分类:大型机,小型机,PC机,工作站,巨型机。
计算机指标:1.位数。
2.速度。
MIPS是表示单字长定点指令的平均执行速度。
MFLOPS是考察单字长浮点指令的平均执行速度。
3.容量。
Byte用B表示。
1KB=1024B。
平均寻道时间是指磁头沿盘片移动到需要读写的磁道所要的平均时间。
平均等待时间是需要读写的扇区旋转到磁头下需要的平均时间。
数据传输率是指磁头找到所要读写的扇区后,每秒可以读出或写入的字节数。
4 带宽。
Bps用b5 版本。
6 可靠性。
平均无故障时间MTBF和平均故障修复时间MTTR 来表示。
计算机应用领域:1 科学计算。
2 事务处理。
3 过程控制。
4 辅助工程。
5 人工智能。
6 网络应用。
一个完整的计算机系统由软件和硬件两部分组成。
计算机硬件组成四个层次:1 芯片。
2 板卡。
3 设备。
4 网络。
奔腾芯片的技术特点:1。
超标量技术。
通过内置多条流水线来同时执行多个处理,其实质是用空间换取时间。
2.超流水线技术。
通过细化流水,提高主频,使得机器在一个周期内完成一个甚至多个操作,其实质是用时间换取空间。
经典奔腾采用每条流水线分为四级流水:指令预取,译码,执行和写回结果。
3.分支预测。
4.双CACHE哈佛结构:指令与数据分开。
7 固化常用指令。
8 增强的64位数据总线。
9 采用PCI标准的局部总线。
10 错误检测既功能用于校验技术。
11 内建能源效率技术。
12 支持多重处理。
安腾芯片的技术特点。
64位处理机。
奔腾系列为32位。
INTER8080-8位。
INTER8088-16位。
复杂指令系统CISC。
精简指令技术RISC。
计算机网络复习最终版(超级笔记)

网络复习计算机网络是指用通信线路将分散在不同地点的具有独立自主功能的计算机系统互相连接,并按照网络协议进行数据通信和共享资源的计算机的集合.按传输技术分类1.广播式网络(broadcast network)共享信道短的信息(按某种语法组织的分组和包)可以被任何机器接收2.点-点式网络(point-to-point network)是由一对对机器之间的多条连接构成.为了能从源端到目的端,这种网络中的分组可能必须通过一台或多台中间机器. 通常,存在多条路径,并且代价不同,因此在点到点网络中路由算法十分重要局域网范围比较小,意味着即使在最坏的情况下其传输时间也是有限的,而且可以通过某种技术了解其最大传输时间,简化了网络的管理.传输速度:4Mbps-10Gbps通常使用这样的一种传输技术:即同一条电缆连接所有机器.比较常见的是总线型和环型在总线网络中,任意时刻只能有一台机器是主机并可进行发送,而其它机器不能发送,当有多台机器都想发送信息时,需要一种仲裁机制来解决冲突,如IEEE802标准.(IEEE802.3)在环网中,同样需要仲裁机制来解决冲突问题.(IEEE802.5)城域网基本上是一种LAN,通常使用与LAN相似的技术。
传输速度:50Kbps-100Mbps把MAN列为单独一类的主要原因是:已经有了一个标准并且正在被实施。
这就是分布式队列双总线DQDB(distributed queue dual bus)——IEEE802.6协议分层1.大多数网络都按层次(layer)或级(level)的方式来组织.每一层都建立在它的下层之上,在所有的网络中,每一层的目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。
这种结构我们叫做层次结构(layered structure)2.理解虚通信和实通信之间的关系:1)除了在物理介质上进行的实通信外,其余对等实体间进行的都是虚通信2)对等层的虚通信必须遵循该层的协议3)n层的虚通信是通过(n-1)/n层间接口处(n-1)层提供的服务和(n-1)层的通信实现的。
计算机网络与分布式计算基础知识

计算机网络与分布式计算基础知识计算机网络和分布式计算是现代计算机领域中非常重要的基础知识。
计算机网络是指将分散的计算机系统通过通信设备进行连接,实现信息交换和资源共享的技术。
而分布式计算则是指将一个具有单一计算机性能的任务分解成多个子任务,由多台计算机进行协作完成,以提高计算效率和资源利用率。
本文将从计算机网络和分布式计算的基本概念、技术原理和应用场景等方面进行探讨。
一、计算机网络基础知识计算机网络是由一组相互连接的计算机系统和设备组成的,其核心目标是实现信息交换和资源共享。
计算机网络包括局域网、广域网和互联网等组成部分。
1. 局域网局域网(Local Area Network,LAN)是在相对较小的地理范围内建立的计算机网络,如家庭、写字楼或校园等。
局域网通常使用以太网技术作为物理媒介,并通过交换机进行数据的转发和路由。
2. 广域网广域网(Wide Area Network,WAN)是将不同地理位置的计算机网络连接起来形成一个更大范围的网络。
广域网通常使用路由器进行数据的传输和路由选择。
3. 互联网互联网(Internet)是由全球范围内的计算机网络互相连接而成的。
互联网使用TCP/IP协议族进行数据传输和路由选择,为用户提供了近乎无限的信息资源。
二、计算机网络协议计算机网络协议是计算机网络通信的标准化规定,确保不同计算机系统之间能够进行有效的通信。
常见的计算机网络协议有TCP/IP、HTTP、FTP等。
1. TCP/IP协议TCP/IP协议是互联网的核心协议,它将互联网分为多个层次,每个层次负责不同的功能。
其中,TCP协议负责可靠的数据传输,而IP协议则负责数据的路由和寻址。
2. HTTP协议HTTP协议是超文本传输协议,负责在互联网上传输超文本资源。
通过HTTP协议,用户可以通过浏览器访问网页、发送请求和接收服务器返回的响应。
3. FTP协议FTP协议是文件传输协议,用于在计算机之间传输文件。
专升本计算机攻略计算机网络与分布式系统

专升本计算机攻略计算机网络与分布式系统专升本计算机攻略——计算机网络与分布式系统计算机网络与分布式系统是专升本计算机科学与技术专业中的一门重要课程。
随着信息技术的不断发展和应用,计算机网络已经成为现代社会中必不可少的一部分。
掌握计算机网络与分布式系统的知识,对于专升本考试和日后的职业发展都具有重要意义。
本文将为广大考生提供一些攻略,帮助大家更好地学习和理解计算机网络与分布式系统。
一、理论基础篇1.1 计算机网络概述计算机网络是指将多台计算机互连起来,实现数据和信息共享的系统。
它由网络体系结构、传输媒介、通信协议等组成。
在学习计算机网络之前,我们需要了解计算机网络的基本概念、发展历程和应用领域。
1.2 分层体系结构计算机网络采用分层体系结构,将网络功能划分为不同的层次,每层都有相应的协议和服务。
常见的分层体系结构有OSI七层模型和TCP/IP四层模型。
学习计算机网络需要掌握各个层次的功能、协议和数据单位等。
1.3 计算机网络的网络设备计算机网络的设备包括计算机、路由器、交换机、网卡等。
每种设备都有不同的作用和功能,掌握这些设备的特点和使用方法,对于实际网络的搭建和维护非常重要。
1.4 网络通信协议网络通信协议是计算机网络中一种约定,它规定了计算机之间如何通信和传输数据。
常见的网络协议有TCP/IP协议、HTTP协议、FTP协议等。
学习计算机网络需要了解各种协议的作用和特点。
二、实践应用篇2.1 网络编程网络编程是指利用计算机网络进行程序开发和通信。
掌握网络编程的基本原理和方法,对于实际项目的开发和调试至关重要。
常用的网络编程语言有C、C++、Java等,学习时需要结合编程语言和网络协议进行实践操作。
2.2 分布式系统分布式系统是指多台计算机通过计算机网络进行协同工作和资源共享的系统。
学习分布式系统需要了解分布式架构的基本概念、优势和挑战,掌握分布式计算的相关技术和方法。
2.3 云计算和大数据云计算和大数据是计算机网络与分布式系统中的热门技术。
计算机网络与分布式系统基础

计算机网络与分布式系统基础计算机网络和分布式系统是现代计算机科学中的重要领域,它们为各种计算机应用提供了基础支持。
本文将介绍计算机网络和分布式系统的基础知识,并探讨它们对现代社会的重要性。
一、计算机网络基础计算机网络是指将多台计算机通过通信设备和通信线路相互连接起来,实现信息交换和资源共享的系统。
计算机网络基于分层的结构,主要由物理层、数据链路层、网络层、传输层和应用层等组成。
1. 物理层:物理层负责实现计算机之间的物理连接,包括电缆、网卡、集线器等硬件设备。
它将二进制数据转换为电信号并通过物理媒介进行传输。
2. 数据链路层:数据链路层负责将物理层传输的数据划分为数据帧,并通过差错检测和纠正的技术保证数据的可靠传输。
3. 网络层:网络层负责解决不同网络之间的通信问题,通过IP地址和路由器实现分组交换,实现数据的传输和路由选择。
4. 传输层:传输层负责提供端到端的数据传输服务,主要通过TCP和UDP协议实现可靠传输和无连接传输。
5. 应用层:应用层提供各种网络应用服务,如HTTP、FTP、SMTP 等,支持用户进行各种网络活动。
二、分布式系统基础分布式系统是指通过网络将多台计算机连接起来,共同完成一个任务。
它具有高性能、高可用性和扩展性等优势,广泛应用于云计算、大数据处理等领域。
1. 分布式计算:分布式计算是指将一个计算任务分割成多个子任务,在不同计算节点上并行执行,通过消息传递和共享内存等方式交换数据和结果。
2. 分布式存储:分布式存储是指将大量数据分散存储在不同的计算节点上,提供高性能和高容量的数据存储服务,如分布式文件系统和分布式数据库。
3. 分布式通信:分布式通信是指在分布式系统中实现节点之间的通信,主要通过消息传递和远程过程调用等方式实现。
4. 分布式调度:分布式调度是指对分布式系统中的资源进行合理调度和管理,以最大程度地提高系统的性能和资源利用率。
三、计算机网络与分布式系统的重要性计算机网络和分布式系统对现代社会的发展具有重要影响。
网络与分布式计算复习笔记

第三章运输层3.1概述:1,运输层协议为不同主机上的应用进程彼此之间提供了逻辑通信.2,运输层协议是在端系统而不是网络中的路由器中实现的。
也只工作在端系统。
中间路由器既不识别也不处理运输层加载应用层报文的任何信息。
3,网络应用程序可以使用多种运输层协议。
因特网有TCP和UDP两种运输层协议。
4,运输层位于网络层之上,为运行在不同主机上的应用程序之间提供了逻辑通信;而网络层则提供了主机之间的逻辑通信。
5,运输层提供的服务受到了底层网络协议的服务模型的限制。
6,因特网的网络层协议IP协议的服务模型是尽力而为的服务,它不做任何确保,不保证报文段的按序交付,更不保证报文段中的数据完整性。
是不可靠服务7,TCP和U DP最基本的任务是,将两个端系统间IP的交付服务扩展为运行在两个端系统上的进程之间的交付服务。
8,运输层的多路复用与多路分解:将主机间交付扩展到进程间交付。
9,进程间数据交付和差错检查是两种最低限度的运输层服务。
也是UDP所能提供的仅有的两种服务。
10,TCP通过流量控制、序号、确认和定时器等技术,能抱着正确而有序地将数据从发送进程交付给接收进程。
TCP还提供拥塞控制功能。
3.2 多路复用与多路分解1,接收主机中的运输层实际上并没有把数据直接交付给进程,而是通过一个中间的套接字来传递;每个套接字都有唯一的标识符,其格式决定了它是UDP还是TCP套接字。
2,多路分解demultiplexing:将运输层报文段中的数据交付到正确的套接字的工作。
运输层通过检查每个运输层报文段的几个字段来标识套接字,然后将报文段定向到该套接字。
多路复用multiplexing:从在源主机的不同套接字中收集数据,并为每个数据块封装上首部信息(在多路分解时使用)从而生产报文段,然后将报文段传递到网络层的工作。
多路复用的要求:1,套接字有唯一的标识符;2,每个报文段有特殊字段来指示该报文段所要交付的套接字。
这些特殊字段是源端口号字段(作为“返回地址”的一部分,在回发报文段时使用)和目的端口号字段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章运输层3.1概述:1,运输层协议为不同主机上的应用进程彼此之间提供了逻辑通信.2,运输层协议是在端系统而不是网络中的路由器中实现的。
也只工作在端系统。
中间路由器既不识别也不处理运输层加载应用层报文的任何信息。
3,网络应用程序可以使用多种运输层协议。
因特网有TCP和UDP两种运输层协议。
4,运输层位于网络层之上,为运行在不同主机上的应用程序之间提供了逻辑通信;而网络层则提供了主机之间的逻辑通信。
5,运输层提供的服务受到了底层网络协议的服务模型的限制。
6,因特网的网络层协议IP协议的服务模型是尽力而为的服务,它不做任何确保,不保证报文段的按序交付,更不保证报文段中的数据完整性。
是不可靠服务7,TCP和U DP最基本的任务是,将两个端系统间IP的交付服务扩展为运行在两个端系统上的进程之间的交付服务。
8,运输层的多路复用与多路分解:将主机间交付扩展到进程间交付。
9,进程间数据交付和差错检查是两种最低限度的运输层服务。
也是UDP所能提供的仅有的两种服务。
10,TCP通过流量控制、序号、确认和定时器等技术,能抱着正确而有序地将数据从发送进程交付给接收进程。
TCP还提供拥塞控制功能。
3.2 多路复用与多路分解1,接收主机中的运输层实际上并没有把数据直接交付给进程,而是通过一个中间的套接字来传递;每个套接字都有唯一的标识符,其格式决定了它是UDP还是TCP套接字。
2,多路分解demultiplexing:将运输层报文段中的数据交付到正确的套接字的工作。
运输层通过检查每个运输层报文段的几个字段来标识套接字,然后将报文段定向到该套接字。
多路复用multiplexing:从在源主机的不同套接字中收集数据,并为每个数据块封装上首部信息(在多路分解时使用)从而生产报文段,然后将报文段传递到网络层的工作。
多路复用的要求:1,套接字有唯一的标识符;2,每个报文段有特殊字段来指示该报文段所要交付的套接字。
这些特殊字段是源端口号字段(作为“返回地址”的一部分,在回发报文段时使用)和目的端口号字段。
端口号有16比特;0到1023范围的端口号成为周知端口号是受严格限制,保留给一些周知的应用层协议使用的。
多路分解的实现:主机上的每个套接字被分配一个端口号,当报文段到达主机时,运输层检查报文段中的目的端口号,并将其定向到相应的套接字。
然后报文段中的数据通过套接字进入其所连接的进程。
3,无连接的多路复用与多路分解DatagramSocket mySocket = new DatagramSocket(19157); //端口号也可以不指定,运输层//会自动为其分配一个端口号(1024到65535之间)。
一个UDP套接字是由一个包含目的IP地址和目的端口号的二元组来全面标识的。
如果两个UDP报文段有不同的源IP地址或端口号,但具有相同的目的IP地址和端口号,它们将通过相同的套接字被定向到相同的目的进程。
4,面向连接的多路复用与多路分解TCP套接字与UDP套接字不同在于,它是由一个四元组标识的(源IP地址,源端口号,目的IP地址,目的端口号)。
如果两个TCP报文段具有不同的源IP地址或源端口号,它们将被定向到两个不同的套接字,除非TCP携带了初始创建连接的请求。
在使用多线程时,多个套接字连接到相同的进程。
即进程与套接字不是一一对应的。
3.3 UDP 无连接运输优点:1,应用层能更好地控制要发送的数据和发送时间;2,无需连接建立;3,无连接状态;分组首部开销小(TCP20个,UDP8个字节)。
UDP潜在的一个严重问题是,因为它没有拥塞控制,将可能引发UDP发送方和接收方的高丢包率,并挤垮有拥塞控制的TCP会话。
使用UDP的应用也是可以实现可靠的数据传输的,这需要在应用程序自身中建立可靠性机制来完成。
UDP报文段结构:源端口号,目的端口号,长度,检查和(提供差错检测,但不进行修复),报文。
UDP检查和:对报文段中所有16比特字的和进行1的补运算,求和时遇到的任何溢出都被丢弃。
用于检查和确定当UDP报文段从源到目的地时,其中的鼻涕是否发生了变化。
UDP并不提供差错恢复。
其差错检查遵循了端到端的设计原则。
3.4 可靠数据传输的原理1,rdt 1.0 完全可靠信道上的可靠数据传输。
2,rdt 2.0 具有比特差错信道上的可靠数据传输:使用了差错检查、肯定确认与否认;重传。
是一种停等协议。
发送放不会发送一块新的数据,直到发送方确认接收方已正确接收当前分组为止。
缺陷:ACK 或NAK分组受损的可能性没有考虑到。
解决方案:首先,引入冗余分组,即只要接收到含糊不清的ACK或NAK,就要求重传数据。
然后,在数据分组中添加一个新字段,让发送方对其数据分组进行编号,即将发送数据分组的序号放在该字段。
这样,接收方只需检查序号即可确定收到的分组是否一次重传,或是新的分组。
Rdt2.2:取消了NAK的使用,而使用冗余ACK3,rdt 3.0 在具有比特差错的丢包信道上的可靠数据传输。
使用基于时间的重传机制。
只要到达一定的时间,则不论是分组丢失(可能是发送过去的分组丢失了,也可能是接收方返回的ACK丢失了),还是超时(发送分组、处理分组、返回ACK的时间过长),发送方都进行重传动作。
这时如果产生冗余分组,利用序号的方法即可解决(在rdt2.0中以提出)4,可靠数据传输协议的要点:检查和(差错检查)、序号(解决冗余分组)、定时器(定时重传)、肯定确认和否认。
5,Rdt3.0还存在一个核心问题:它是一个停等协议。
性能不够好。
解决方案:使用流水线技术,允许发送放发送多个分组而无需等待确认。
流水线引入的问题:a,必须增加序号范围,因为每个传输的分组必须有一个唯一的序号。
b,协议的发送和接收方也许必须缓存多个分组。
c,解决流水线的差错恢复有两种基本方法:回退N步和选择重传。
6,回退N步协议go-back-N,允许发送方传输多个分组而不需等待确认,但它也受限于在流水线中未确认的分组数布恩那个超过最大允许数N。
GBN发送方必须响应三种类型的事件:a,上层的调用。
需要先检查发送窗口是否已满。
b,收到ack。
对于序号为N的分组的确认用于累积确认。
c,超时事件。
发送方重发所有已发送但还未被确认的分组。
在GBN中接收方丢弃所有失序分组。
因为接收方必须按序将数据交付给上层。
7,选择重传:通过让发送方仅重传那些它怀疑在接收方出错(丢失或受损)的分组从而避免了不必要的重传。
这种个别的、按需的重传要求接收方逐个地确认正确接受的分组。
SR 接收方将确认一个正确接受的分组而不管其是否有序。
失序的分组将被缓存直到丢失分组(即序号更小的分组)都被收到为止。
8,总结:p1499,通过假定一个分组在网络中“生存”的时间不会超过某个固定最长时间来确保一个序号在“确信”任何先前发送的序号为X的分组都不再在网络中之前不被再重新使用3.5 面向连接的运输:TCP1,面向连接服务:必须握手,建立确保数据传输所需的参数。
2,连接状态只保存在两个端系统。
只在端系统中运行。
3,提供点对点的全双工服务。
4,Socket clientSocket = new Socket(“hostname”,portNumber).5,MSS,最大报文段长度,TCP可从缓存中取出并放入报文段中的最大数据量(不包括TCP首部)。
MTU,最大传输单元。
6,TCP连接包括:一台主机上的缓存、变量和与另一个进程连接的套接字,以及另一台主机上的一套缓存、变量和与一个进程连接的套接字。
在这两台主机之间的网络要素(路由器、交换机和中继器)中没有为该连接分配任何缓存和变量。
7,TCP报文段结构:(首部字段+数据字段(包含一块应用数据))MSS限制了报文段的数据字段的最大长度;当TCP发送个大文件时,通常将文件分割成长度为MSS的若干块。
报文段结构:首部:源和目的端口号,用于多路分解/复用送至或来自上层的数据;检查和字段32比特的序号字段和32比特的确认号字段。
被TCP发送方和接收方用于实现可靠传输服务,是很关键的部分。
一个大文件被分成很多MSS大小的报文段,每个报文段有一个序号,这个序号表示的也就是数据字段首字节的序号。
确认号表示接收方期望从发送方接收到的下个字节的序号。
16比特接受窗口,用于流量控制。
4比特首部长字段,指示了以32比特字为单位的TCP首部长度。
可选与变长的选项字段。
导致首部长度可变。
6比特标志字段URG(紧急)ACK(指示确认字段中的值有效)PSH(接收方应该立即将数据交给上层)RST SYN FIN(这三者用于建立和拆除连接)8,往返时延的估计与超时:1,估计往返时延:SampleRTT,从该报文段被发出(交给IP)到其确认被接收到的时间量。
EstimateRTT=(1-a)*EstimateRTT + a*SampleRTTDevRTT(往返时延偏差)=(1-β)*(DevRTT+β*|SampleRTT-EstimateRTT|)表示往返时延的波动情况。
2,设置和管理重传超时间隔TimeoutInterval=EstimateRTT+4*DevRTT。
9,TCP可靠数据传输1,TCP发送方与传输和重传有关的3个事件:(高度简化版本)A,从上层应用程序接受数据:将数据封装在一个报文段中,并将其交给IP.B,超时事件。
TCP通过重传引起超时事件的报文段来响应。
随后重启计时器。
C,一个来自接收方的确认报文段(ACK)到达。
TCP将ACK的值与变量sendBase(最早未被确认的字节的序号)比较,采用累积确认。
如果还有未被确认的报文段,则需要重启计时器。
2,加倍超时时间间隔在TCP实现中,每当超时事件发生时,TCP重传具有最小序号的还未被确认的报文段,但是每一次TCP重传都会把下一次的超时时间间隔设为先前之的两倍,而不是根据EstimateRTT和DevRTT来计算。
3,快速重传:使用冗余ACK,当接收方接收到一个大于期望序号的报文段时,它检测到了数据流中的一个间隔,即有报文段丢失。
它就对按序接收到的最后一个报文段发送一个冗余ACK,当发送方接收到3个冗余ACK,就进行快速重传,即在该报文段的定时器过期之前就进行重传。
4,TCP是GBN还是SR?TCP协议的一种修改使用了选择确认,它允许接收方有选择地确认失序报文段,而不是累积地确认最后一个正确接收的报文段。
这种机制与选择重传相结合(跳过那些已被接收方选择性确认过的报文段的重传)。
5,流量控制:消除发送方使接收方缓存溢出的可能性。
TCP通过让发送方保留一个被称为接受窗口(received window)的变量来提供流量控制。
在接收方,因为TCP不允许已分配的缓存溢出,LastByteRcvd-LastByteRead<=RcvBuffer RcvWindow=RcvBuffer-[LastByteRead-LastByteRcvd].接收方把RcvWindow的当前值放入它发给发送方的每个报文段接受窗口字段中,以通知发送方它在该链接的缓存中还有多少可用空间。