版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 传输层传输层 传输服务传输服务 传输协议传输协议 一个简单的传输协议一个简单的传输协议 因特网传输协议因特网传输协议传输层传输层整个协议层次结构的核心整个协议层次结构的核心 传输层位于面向通信的低三层和面向信息处理传输层位于面向通信的低三层和面向信息处理的高三层之间,为高层用户提供独立于具体网的高三层之间,为高层用户提供独立于具体网络的、经济、有效和可靠的端到端数据传输服络的、经济、有效和可靠的端到端数据传输服务。务。 在在osi参考模型中,底下参考模型中,底下4层为传输服务的提层为传输服务的提供者(供者(transport service provider);上面);上面3层是
2、传层是传输服务的用户(输服务的用户(transport service user)。)。osi参考模型参考模型6.1 传输服务传输服务传输层提供两种类型的服务:传输层提供两种类型的服务: 面向连接的传输服务。面向连接的传输服务。 无连接的传输服务。无连接的传输服务。传输服务的必要性:传输服务的必要性: 可靠的服务:用户不能控制通信子网来满足自己所需的网络可靠的服务:用户不能控制通信子网来满足自己所需的网络服务,只能在网络层上增加一个属于用户自己的传输层来保服务,只能在网络层上增加一个属于用户自己的传输层来保证所需的传输服务。证所需的传输服务。 统一的接口:由于传输服务是独立于网络服务的,应用程
3、序统一的接口:由于传输服务是独立于网络服务的,应用程序便能采用一个标准统一的传输服务原语来调用各种不同的网便能采用一个标准统一的传输服务原语来调用各种不同的网络服务(服务质量、接口定义等五花八门)。络服务(服务质量、接口定义等五花八门)。传输层与上下层的逻辑关系传输层与上下层的逻辑关系传输协议数据单元(传输协议数据单元(tpdu) tpdutpdu(transport protocol data unittransport protocol data unit)表示对等传)表示对等传输层间传递的数据单元。输层间传递的数据单元。 用户将报文封装在用户将报文封装在tpdutpdu中交给网络层进行处
4、理。中交给网络层进行处理。服务质量服务质量qos(quality of service) 传输层的主要功能可看成是增强网络层提供的服务质传输层的主要功能可看成是增强网络层提供的服务质量。服务质量的好坏是由一组量。服务质量的好坏是由一组服务质量参数服务质量参数来衡量的,来衡量的,主要有:主要有:1. 连接建立延迟(连接建立延迟(connection establishment delay):建):建立一个连接所需的时间。立一个连接所需的时间。2. 连接建立失败的概率(连接建立失败的概率(connection establishment failure probability):在指定的最大连接建
5、立延迟内未能建立):在指定的最大连接建立延迟内未能建立连接的可能性。连接的可能性。3. 吞吐率(吞吐率(throughput):一个连接上每秒钟传输的用):一个连接上每秒钟传输的用户数据的字节数。户数据的字节数。4. 传输延迟(传输延迟(transit delay):用户报文从源端发送到目):用户报文从源端发送到目的端所需的时间。的端所需的时间。5.残余误码率(残余误码率(residual error ratio):丢失或错乱报文):丢失或错乱报文的百分比。的百分比。6.保护(保护(protection):要求传输层提供保护,以防止未):要求传输层提供保护,以防止未经授权的第三方窃听或篡改用户
6、报文。经授权的第三方窃听或篡改用户报文。7.优先级(优先级(priority):能指示被服务的连接的优先级别。):能指示被服务的连接的优先级别。8.恢复(恢复(resilience):传输层释放一个连接的可能性。):传输层释放一个连接的可能性。以上服务质量参数一般是传输用户和传输层在建立连以上服务质量参数一般是传输用户和传输层在建立连接时通过选项协商(接时通过选项协商(option negotiation)而设定的。)而设定的。传输服务原语传输服务原语 传输服务原语是传输用户用来访问传输服务的接口。传输服务原语是传输用户用来访问传输服务的接口。每种传输服务均有各自的访问原语。每种传输服务均有各
7、自的访问原语。一个简单的传输服务原语的例子一个简单的传输服务原语的例子一端请求释放连接一端请求释放连接disconnection reqdisconnect阻塞,直到一个阻塞,直到一个data tpdu 到达到达(无)(无)receive发送数据发送数据datasend主机请求建立连接主机请求建立连接connection reqconnect阻塞,直至某个进程尝试连接阻塞,直至某个进程尝试连接(无)(无)listen含含 义义发送的发送的tpdu原原 语语伯克利套接字(伯克利套接字(berkeley socket) 下表为面向连接的下表为面向连接的tcp中的套接字原语:中的套接字原语:释放连接
8、释放连接close在一个连接上接收数据在一个连接上接收数据reseive在一个连接上发送数据在一个连接上发送数据send尝试建立一个连接尝试建立一个连接connect阻塞,直到远端有人需要建立一个连接阻塞,直到远端有人需要建立一个连接accept宣布愿意接受连接,最大连接数为宣布愿意接受连接,最大连接数为nlisten为套接字分配一个本地地址为套接字分配一个本地地址bind建立一个新的套接字通信端点建立一个新的套接字通信端点socket面向连接的套接字通信面向连接的套接字通信 连接的建立:连接的建立: 服务器端:服务器端:1.执行执行socket,创建一个新的套接字通信端点并为其分配,创建一个
9、新的套接字通信端点并为其分配表空间。表空间。2.执行执行bind为套接字分配一个本地地址和名字。为套接字分配一个本地地址和名字。3.执行执行listen表示服务器进程愿意接受连接请求,并指定表示服务器进程愿意接受连接请求,并指定连接等待队列的最大长度。连接等待队列的最大长度。4.执行执行accept,阻塞服务器进程,等待客户的连接请求。,阻塞服务器进程,等待客户的连接请求。一旦客户的连接请求到达,传输实体即为其创建一个新的一旦客户的连接请求到达,传输实体即为其创建一个新的具有相同属性的套接字,并产生一个进程或线程在新套接具有相同属性的套接字,并产生一个进程或线程在新套接字上处理该连接。然后服务
10、器进程回到原来的套接字上继字上处理该连接。然后服务器进程回到原来的套接字上继续监听连接请求。续监听连接请求。 客户端:客户端:1.执行执行socket,创建一个新的套接字通信端点。不需,创建一个新的套接字通信端点。不需bind。2.执行执行connect,阻塞连接请求者并主动开始建立连接的,阻塞连接请求者并主动开始建立连接的进程。当服务器的应答到来后,客户进程被唤醒,连接即进程。当服务器的应答到来后,客户进程被唤醒,连接即告建立。告建立。 连接建立后,双方都可使用连接建立后,双方都可使用send和和receive在已有在已有的连接上发送和接收数据。的连接上发送和接收数据。 连接的释放是对称的,
11、当双方都执行了连接的释放是对称的,当双方都执行了close后,连后,连接即被释放。接即被释放。 面向连接的面向连接的套接字通信套接字通信示意图示意图receive()send()receive()send()6.2 传输协议传输协议传输层协议与网络层提供的服务质量有很大关系。网络层提供的传输层协议与网络层提供的服务质量有很大关系。网络层提供的服务越完善,传输层协议就越简单,反之,传输层协议越复杂。服务越完善,传输层协议就越简单,反之,传输层协议越复杂。子网根据其提供的服务质量的差异可以分为三类:子网根据其提供的服务质量的差异可以分为三类: a类:可提供完善的数据传输服务,分组的丢失、重复和错序
12、等情类:可提供完善的数据传输服务,分组的丢失、重复和错序等情况极少出现,可忽略不计。有些局域网可提供接近况极少出现,可忽略不计。有些局域网可提供接近a类的服务。类的服务。 b类:单独的分组丢失很少发生,但网络层会因为内部拥塞或软、类:单独的分组丢失很少发生,但网络层会因为内部拥塞或软、硬件故障等原因而时常发出硬件故障等原因而时常发出n-reset原语。传输层协议要纠正由于原语。传输层协议要纠正由于重置而出现的混乱,建立新的网络连接,重新同步,恢复正常传输,重置而出现的混乱,建立新的网络连接,重新同步,恢复正常传输,使传输服务用户对网络层出现的重置一无所知。大多数广域网属于使传输服务用户对网络层
13、出现的重置一无所知。大多数广域网属于此类。此类。 c类:这类子网提供的传输服务最不可靠。会出现分组丢失和重复,类:这类子网提供的传输服务最不可靠。会出现分组丢失和重复,还可能出现重置。提供数据报服务的广域网、无线分组交换网、以还可能出现重置。提供数据报服务的广域网、无线分组交换网、以及互联网均属此类。及互联网均属此类。传输层协议与网络服务质量的关系传输层协议与网络服务质量的关系 根据网络层提供的服务质量,根据网络层提供的服务质量,iso/osi把传输层协议把传输层协议分为分为5类:类:出错检测和恢复类出错检测和恢复类c4出错恢复和多路复用类出错恢复和多路复用类b3多路复用类多路复用类a2基本错
14、误恢复类基本错误恢复类b1简单类简单类a0协议名称协议名称网络服网络服务类型务类型传输层传输层协议协议传输层协议与数据链路层协议的传输层协议与数据链路层协议的比较比较传输层协议和数据链路层协议非常相似,都必须进行顺序传输层协议和数据链路层协议非常相似,都必须进行顺序控制、差错控制、流量控制等工作。控制、差错控制、流量控制等工作。但由于运行的环境不同,两者的具体操作是大不相同。传但由于运行的环境不同,两者的具体操作是大不相同。传输层的端到端之间经过一个复杂的、具有存储能力的通信输层的端到端之间经过一个复杂的、具有存储能力的通信子网,使得其在寻址、连接的管理、控制协议等方面都非子网,使得其在寻址、
15、连接的管理、控制协议等方面都非常复杂。常复杂。寻址寻址 用用传输服务访问点传输服务访问点tsap(transport service access point)和)和网络服务访问点网络服务访问点nsap(network service access point)来描述传输地)来描述传输地址和网络地址。址和网络地址。 寻址的两个问题:寻址的两个问题: 客户进程如何获知服务器进程的传输地址客户进程如何获知服务器进程的传输地址tsap? 客户传输实体如何从目的传输地址获得目的客户传输实体如何从目的传输地址获得目的网络地址网络地址nsap?一、服务器传输地址一、服务器传输地址tsap的定位的定位 有两
16、个途径:有两个途径: 众所周知的地址:对于一些经常使用的服务,可为众所周知的地址:对于一些经常使用的服务,可为其指定固定的传输地址,印在手册或指南上广为传其指定固定的传输地址,印在手册或指南上广为传播。播。 对临时不常用的地址,有两种方法:对临时不常用的地址,有两种方法: 初始连接协议(初始连接协议(initial connection protocol) 使用称为名字服务器(使用称为名字服务器(name server)或目录服务)或目录服务器(器(directory server)的特殊服务器进程。)的特殊服务器进程。初始连接协议初始连接协议如如unix中的中的inetd。服务器(机器)上运
17、行一个具有众所周知传输地址的特殊的进程服务器(机器)上运行一个具有众所周知传输地址的特殊的进程服务器(服务器(process server),作为各种服务器(进程)的代理。),作为各种服务器(进程)的代理。名字服务器或目录服务器名字服务器或目录服务器 客户进程从众所周知的名字服务器中通过对服务的名客户进程从众所周知的名字服务器中通过对服务的名字(已注册到名字服务器)进行查找,即可获得相应字(已注册到名字服务器)进行查找,即可获得相应的服务器进程的传输地址。的服务器进程的传输地址。二、目的网络地址二、目的网络地址nsap的定位的定位 传输地址传输地址tsap为层次型地址(为层次型地址(hiera
18、chical address):):nsap可直接来自于可直接来自于tsap。如。如tcp/ip的传输地址由网的传输地址由网络地址和端口号组成。络地址和端口号组成。 传输地址传输地址tsap为平面型地址空间(为平面型地址空间(flat address space):需要名字服务器将):需要名字服务器将tsap转换成转换成nsap。 在某些场合下(如在某些场合下(如lan中),可采用广播方式询问目中),可采用广播方式询问目的机器的的机器的nsap。建立连接(建立连接(connection establishment) 由于通信子网的不可靠性和存储能力,造成不可预知由于通信子网的不可靠性和存储能力
19、,造成不可预知的延迟,使得可靠地建立传输连接变得十分困难。一的延迟,使得可靠地建立传输连接变得十分困难。一些解决的方法有:些解决的方法有:1. 给每个连接分配一个唯一的给每个连接分配一个唯一的连接标识连接标识,每个传输实体将用过,每个传输实体将用过的连接标识记在表中,以区别新旧连接。的连接标识记在表中,以区别新旧连接。2. 限制分组的限制分组的寿命寿命:为每个分组设置一个寿命域(计数器),:为每个分组设置一个寿命域(计数器),每隔一定的时间寿命减每隔一定的时间寿命减1,减至,减至0时就丢弃分组。可以设定一时就丢弃分组。可以设定一个时间个时间t(根据不同的协议,为分组最大寿命的若干倍),(根据不
20、同的协议,为分组最大寿命的若干倍),当一个分组发送后,经时间当一个分组发送后,经时间t,所有和该分组有关的分组就,所有和该分组有关的分组就全不存在了,这大大简化了问题。全不存在了,这大大简化了问题。3. 为每台主机设置一个一直运转的计时时钟(二进制计数器,为每台主机设置一个一直运转的计时时钟(二进制计数器,位数足够大),每隔一定时间加位数足够大),每隔一定时间加1,当建立连接时,用时钟,当建立连接时,用时钟的低的低k位作为本连接的位作为本连接的初始序号初始序号。此后的发送序号按序递增,。此后的发送序号按序递增,不再参考计数器值,但发送序号不能进入禁止区。不再参考计数器值,但发送序号不能进入禁止
21、区。时间和初始序号之间的线性关系时间和初始序号之间的线性关系4. 基于时钟的方法解决了数据基于时钟的方法解决了数据tpdu的延迟重发问题,其前提的延迟重发问题,其前提条件是双方已建立了传输连接,知道对方的初始序号。但由条件是双方已建立了传输连接,知道对方的初始序号。但由于控制于控制tpdu也会延迟,造成建立传输连接的复杂。可采用也会延迟,造成建立传输连接的复杂。可采用三次握手(三次握手(three-way handshake)的方法加以解决。)的方法加以解决。 释放传输连接有两种方式:释放传输连接有两种方式:1. 非对称释放(非对称释放(asymmetric release):任何一方发出):
22、任何一方发出断连请求即可终止连接。断连请求即可终止连接。容易造成数据丢失。容易造成数据丢失。2. 对称释放(对称释放(symmetric release ):一条连接的两):一条连接的两个方向被看成是两个单独个方向被看成是两个单独的连接。一方发出断连请的连接。一方发出断连请求表明它的数据已发送完求表明它的数据已发送完毕,但仍可以在连接上接毕,但仍可以在连接上接收对方的数据。只有双方收对方的数据。只有双方都发出了断连请求,连接都发出了断连请求,连接才被终止。才被终止。释放连接(释放连接(connection release)三次握手连接释放法三次握手连接释放法为了可靠地终止连接,一方在发出断连请
23、求后,必须收到对方的为了可靠地终止连接,一方在发出断连请求后,必须收到对方的断连请求(响应)才能终止连接。实际上做不到。断连请求(响应)才能终止连接。实际上做不到。实际中采用的三次握手连接释放法不是绝对可靠的,但已令人足实际中采用的三次握手连接释放法不是绝对可靠的,但已令人足以满意了。以满意了。 考虑后面图中的第考虑后面图中的第4种情况,若主机种情况,若主机2一次都没有收到主机一次都没有收到主机1的的断连请求,就不会释放连接,形成一个半开的连接(断连请求,就不会释放连接,形成一个半开的连接(half-open connection),导致失败。),导致失败。 为了清除半开的连接,协议规定任何一
24、方在一给定的时间内为了清除半开的连接,协议规定任何一方在一给定的时间内没有收到连接上的任何没有收到连接上的任何tpdu,就自动释放连接。,就自动释放连接。 每个传输实体都设置一个定时器,只要发送每个传输实体都设置一个定时器,只要发送tpdu就复位定时就复位定时器,一旦定时器超时就自动发送一个哑(器,一旦定时器超时就自动发送一个哑(dumb)tpdu,以,以防止连接长时间没有数据传输而被对方终止。防止连接长时间没有数据传输而被对方终止。 若哑若哑tpdu丢失,则对方释放连接,稍候本方也释放连接。丢失,则对方释放连接,稍候本方也释放连接。 三次握手连三次握手连接释放的四接释放的四种情况种情况流量控
25、制和缓冲策略流量控制和缓冲策略 传输层虽然和数据链路层一样都采用了滑动窗口协议传输层虽然和数据链路层一样都采用了滑动窗口协议等机制来实现流量控制,但由于传输层上(主机)的等机制来实现流量控制,但由于传输层上(主机)的连接数多且不定,而中间通信子网的传输能力有限,连接数多且不定,而中间通信子网的传输能力有限,不可能为每条连接分配固定数量的缓冲区不可能为每条连接分配固定数量的缓冲区。 由于发送流量涉及到由于发送流量涉及到接收端的接收能力接收端的接收能力和和通信子网的通信子网的传输能力传输能力,因此必须从这两个方面来讨论传输层上的,因此必须从这两个方面来讨论传输层上的流量控制。流量控制。 发送流量应
26、该取接收端和通信子网所能允许的流量值发送流量应该取接收端和通信子网所能允许的流量值中的较小值。中的较小值。从接收能力出发从接收能力出发 传输层连接须对传输层连接须对收发双方动态地分配缓冲区数量收发双方动态地分配缓冲区数量:发:发送端应向接收端申请所需的缓冲空间(接收端一侧),送端应向接收端申请所需的缓冲空间(接收端一侧),接收端也应能根据情况决定为发送端预留多少空间接收端也应能根据情况决定为发送端预留多少空间(动态可变),通过确认及时告知发送端,以便调整(动态可变),通过确认及时告知发送端,以便调整发送流量。发送流量。 死锁问题:死锁问题: 由于包含缓冲区分配数的控制由于包含缓冲区分配数的控制
27、tpdu(确认)可能(确认)可能会丢失,从而造成死锁。会丢失,从而造成死锁。 解决方法:每台主机应定期向每个连接发送控制解决方法:每台主机应定期向每个连接发送控制tpdu。 随着内存价格大幅度下降,可以为主机配置大容量的随着内存价格大幅度下降,可以为主机配置大容量的内存,基本上可解决收发缓冲匮乏的问题。内存,基本上可解决收发缓冲匮乏的问题。动态缓冲的分配管理动态缓冲的分配管理从子网能力出发从子网能力出发 发送方采用可动态调整窗口大小的滑动窗口协议来匹发送方采用可动态调整窗口大小的滑动窗口协议来匹配网络的承载能力。配网络的承载能力。 发送方定期地监视网络的传输能力发送方定期地监视网络的传输能力c
28、(网络每秒钟可传(网络每秒钟可传输的输的tpdu数量)和循环时间数量)和循环时间r(从发出(从发出tpdu到收到到收到其确认为止所需的时间),然后计算出发送窗口的大其确认为止所需的时间),然后计算出发送窗口的大小(小(cr)。)。 c可以简单地通过计算在某段时间间隔内确认的可以简单地通过计算在某段时间间隔内确认的tpdu数除以数除以时间间隔来决定。测量时应尽快发送数据。时间间隔来决定。测量时应尽快发送数据。 r可以从发送端精确获得,一般取某段时间内的平均值。可以从发送端精确获得,一般取某段时间内的平均值。多路复用(多路复用(multiplexing) 向上多路复用向上多路复用(upward m
29、ultiplexing):): 将去往相同目的节点的不同传输连接复用到同一条网络连接将去往相同目的节点的不同传输连接复用到同一条网络连接上,使它们共同承担一条网络连接的通信费用(按时)。上,使它们共同承担一条网络连接的通信费用(按时)。 为了实现向上多路复用,每个主机应能将各传输连接按目的为了实现向上多路复用,每个主机应能将各传输连接按目的主机进行分组,并将它们映射到最少数量的网络连接上。主机进行分组,并将它们映射到最少数量的网络连接上。 每个网络连接上的传输连接数应适中。每个网络连接上的传输连接数应适中。 向下多路复用向下多路复用(downward multiplexing):): 为一条传
30、输连接建立多条网络连接,传输实体按一定顺序在为一条传输连接建立多条网络连接,传输实体按一定顺序在各个网络连接上并行发送数据,从而提高了数据的整体传输各个网络连接上并行发送数据,从而提高了数据的整体传输速率。速率。 物理线路须有足够大的容量。物理线路须有足够大的容量。两种多路复用示意图两种多路复用示意图崩溃恢复崩溃恢复一个主机通过执行一个操作和返回一个确认作为收到一个一个主机通过执行一个操作和返回一个确认作为收到一个tpdu的响应。的响应。但当一台主机从一次崩溃中恢复时,他如何知道在此之前已执行了多少但当一台主机从一次崩溃中恢复时,他如何知道在此之前已执行了多少操作和发送了多少返回的确认?操作和
31、发送了多少返回的确认?从第从第n层崩溃中恢复只能由第层崩溃中恢复只能由第n+1层来完成,并且只有在第层来完成,并且只有在第n+1层保留有层保留有足够的状态信息的情况下才能完成。足够的状态信息的情况下才能完成。6.3 一个简单的传输协议一个简单的传输协议 一个简单易懂而又贴近实际的传输层协议实例一个简单易懂而又贴近实际的传输层协议实例 面向连接的服务原语面向连接的服务原语含含 义义原原 语语release the connectiondisconnectreceive data over a connectionreceivesend data over a connectionsendatte
32、mpt to establish a connectionconnectblock connection request comes inlisten传输实体传输实体 网络层的分组网络层的分组含含 义义分分 组组for managing the windowcreditused to transport datadataresponse to clear connectionclear confirmsend to release a connectionclear requestresponse to call requestcall acceptedsent to establish a
33、connectioncall request连接的状态连接的状态 每个连接总是处于下面每个连接总是处于下面7种状态之一:种状态之一:含含 义义状状 态态disconnect has just been calleddisconnectingreceive has just been calledreceivingwaiting for permission to send tpdusendingconnection establishedestablishedcall req. arrived; listen not calledqueuedconnect called; call req.
34、sentwaitingnot yet establishedidle有限状态机有限状态机状态图示状态图示6.4 因特网传输协议因特网传输协议 有两个主要的协议:有两个主要的协议: 面向连接的面向连接的tcp(transmission control protocol)协议协议 无连接的无连接的udp(user data protocol)协议)协议tcp协议协议 tcp是专门设计用于在不可靠的是专门设计用于在不可靠的internet上提供可靠的、上提供可靠的、端到端的字节流(非报文流)通信的协议。端到端的字节流(非报文流)通信的协议。 发送方发送方tcp实体将应用程序的输出流分为不超过实体将应
35、用程序的输出流分为不超过64k字节(实字节(实际通常为际通常为1500字节)的数据片段(字节)的数据片段(piece),并将每个数据片),并将每个数据片段封装在一个段封装在一个ip分组中发送出去。分组中发送出去。 接收方接收方tcp实体根据字节序号(实体根据字节序号(32位)将接收到的各个数据位)将接收到的各个数据片段组装成连续的字节流交给应用程序。片段组装成连续的字节流交给应用程序。 tcp服务是通过收发双方分别创建的称为套接字服务是通过收发双方分别创建的称为套接字(socket,包含,包含ip 地址和端口号)之间的连接来获得地址和端口号)之间的连接来获得的。的。 所有的所有的tcp连接都是
36、全双工的点到点的连接,不支持连接都是全双工的点到点的连接,不支持组播和广播。组播和广播。tcp的基本数据单元的基本数据单元tcp实体交换数据的基本单元(实体交换数据的基本单元(tpdu)称作)称作数据段数据段(segment)。)。每个数据段包含一个固定的每个数据段包含一个固定的20字节的头(还可加一个可选部分)字节的头(还可加一个可选部分)和若干数据字节,其总长度可在建立连接时通过互相声明自己所和若干数据字节,其总长度可在建立连接时通过互相声明自己所能接收的最大段长能接收的最大段长mss(maximum segment size)来选定或双方)来选定或双方使用一个缺省的使用一个缺省的mss(
37、536字节),但字节),但mss的选取应使得每个段的选取应使得每个段封装成封装成ip分组后,其长度不超过分组后,其长度不超过ip分组的载荷能力(分组的载荷能力(65535字节)字节)及相应网络的最大传输单元及相应网络的最大传输单元mtu(maximum transfer unit)。一个段超过网络的一个段超过网络的mtu限制时会被分段(限制时会被分段(fragmentation),每),每个小分段(分组)都有个小分段(分组)都有tcp头(头(20字节)和字节)和ip头(头(20字节),增字节),增加了系统的总开销。加了系统的总开销。tcp datatcp headerip header20字节
38、20字节tcp segmentip packettcp数据段的头数据段的头源端口源端口和和目的端口目的端口用来标识本地和对方的应用进程(端连接点)。用来标识本地和对方的应用进程(端连接点)。端口号加上其主机的端口号加上其主机的ip地址构成一个地址构成一个48比特的比特的tsap。sequence number指示指示tcp段中第一个字节的序号。建立一个新段中第一个字节的序号。建立一个新的的tcp连接时(连接时(syn标志为标志为1),该域是主机为该连接选择的初),该域是主机为该连接选择的初始序号,连接建立后发送的第一个字节将具有的序号为始序号,连接建立后发送的第一个字节将具有的序号为seque
39、nce number+1。由于全双工,每个连接的端点都必须单独维持一个。由于全双工,每个连接的端点都必须单独维持一个序号。序号。acknowledgement number表示发送该表示发送该tcp段的主机准备从对方段的主机准备从对方接收的下一个字节序号,即该序号之前的字节已全部正确收到。接收的下一个字节序号,即该序号之前的字节已全部正确收到。header length指示指示tcp头的长度(以头的长度(以4字节为单位),最大值为字节为单位),最大值为15(60字节)。字节)。urg标志标志指示指示urgent pointer域是否有效,域是否有效,urgent pointer用来指用来指示紧
40、急数据距当前字节序号的偏移字节数。当接收方收到一个示紧急数据距当前字节序号的偏移字节数。当接收方收到一个urg为为1的段后,立即中断当前正在执行的程序,根据的段后,立即中断当前正在执行的程序,根据urgent pointer找到段中的紧急数据,优先进行处理。找到段中的紧急数据,优先进行处理。ack标志标志为为1时表示时表示acknowledgement number中是一个有效的应中是一个有效的应答序号。答序号。psh标志标志为为1时表示接收方收到数据后应尽快交给应用程序,而时表示接收方收到数据后应尽快交给应用程序,而不是等接收缓冲区满后再递交。不是等接收缓冲区满后再递交。rst标志标志为为1
41、时表示复位一个连接。通常在主机崩溃后复位连接,时表示复位一个连接。通常在主机崩溃后复位连接,也可表示拒绝建立一个连接或拒绝接收一个非法的段。也可表示拒绝建立一个连接或拒绝接收一个非法的段。syn标志标志为为1时表示建立一个连接。时表示建立一个连接。fin标志标志为为1时表示数据发送结束,但仍可继续接收另一个方向的时表示数据发送结束,但仍可继续接收另一个方向的数据。数据。windows size表示发送方可以发送的字节数,为表示发送方可以发送的字节数,为0时表示接收缓冲时表示接收缓冲区满。用于区满。用于tcp的流量控制。的流量控制。checksum对对tcp头、头、tcp数据域及数据域及tcp伪
42、头(伪头(pseudo header,12字节长,其中的内容来自于字节长,其中的内容来自于ip分组的头)进行校验。分组的头)进行校验。选项选项用于提供一种增加额外设置的方法,在常规的用于提供一种增加额外设置的方法,在常规的tcp头中并不头中并不包括。重要的选择有:包括。重要的选择有: mss选项(设定能接受的最大选项(设定能接受的最大tcp载荷能载荷能力;窗口比例选项(可扩大窗口尺寸);选择重发选项等。力;窗口比例选项(可扩大窗口尺寸);选择重发选项等。tcp数据段的头结构数据段的头结构tcp数据段的伪头结构数据段的伪头结构tcp采用三次握手的方法建立连接采用三次握手的方法建立连接服务器方执行
43、服务器方执行listen和和accept原语,被动监听;原语,被动监听;客户方执行客户方执行connect原语,产生一个原语,产生一个syn为为1和和ack为为0的的tcp段,表示连段,表示连接请求;接请求;服务器方的传输实体接收到这个服务器方的传输实体接收到这个tcp段后,首先检查是否有服务进程在段后,首先检查是否有服务进程在所请求的端口上监听,若没有,回答所请求的端口上监听,若没有,回答rst置位的置位的tcp段;段;若有服务进程在所请求的端口上监听,该服务进程可以决定是否接受该若有服务进程在所请求的端口上监听,该服务进程可以决定是否接受该请求。在接受后,发出一个请求。在接受后,发出一个s
44、yn置置1和和ack置置1的的tcp段表示连接确认,段表示连接确认,并请求与对方的连接;并请求与对方的连接;发起方收到确认后,发出一个发起方收到确认后,发出一个syn置置0和和ack置置1的的tcp段表示给对方的段表示给对方的连接确认;连接确认;若两个主机同时试图建立彼此间的连接,则只能建立一条连接。若两个主机同时试图建立彼此间的连接,则只能建立一条连接。初始连接序号的选择采用基于时钟的方案,每隔初始连接序号的选择采用基于时钟的方案,每隔4微妙初始连接序号加微妙初始连接序号加1。分组的最长寿命为分组的最长寿命为120秒。秒。tcp采用对称释放法释放连接采用对称释放法释放连接tcp的全双工连接可
45、看成一个双单工的连接,每个单工连接都独的全双工连接可看成一个双单工的连接,每个单工连接都独立地释放。立地释放。通信双方必须都向对方发送通信双方必须都向对方发送fin=1的的tcp段并得到对方的应答,段并得到对方的应答,连接才能被释放,有四个阶段。连接才能被释放,有四个阶段。可以将第一个可以将第一个ack数据段和第二数据段和第二个个fin数据段合并,从而变为三次数据段合并,从而变为三次握手。握手。为防止半连接,必须使用定时器计为防止半连接,必须使用定时器计时,对时,对fin数据段的应答在两个最数据段的应答在两个最大分组生命期内未到达,就释放连大分组生命期内未到达,就释放连接。对方也会超时释放。接
46、。对方也会超时释放。finack of finfinack of finhost1host2time建立和释放连接过程中的建立和释放连接过程中的11种状态种状态tcp连接连接管理有限管理有限状态机状态机tcp传输策略传输策略 tcp的窗口管理机制的窗口管理机制 基于确认和可变窗口大小;基于确认和可变窗口大小; 窗口大小为窗口大小为0时,正常情况下,发送方不能再发时,正常情况下,发送方不能再发tcp段,但有段,但有两个例外两个例外 紧急数据可以发送;紧急数据可以发送; 为防止死锁,发送方可以发送为防止死锁,发送方可以发送1字节的字节的tcp段,以便让接收方重段,以便让接收方重新声明确认号和窗口大
47、小。新声明确认号和窗口大小。 如何改进传输层的性能?如何改进传输层的性能? 策略策略1:发送方缓存应用程序的数据,等到形成一个比较大的:发送方缓存应用程序的数据,等到形成一个比较大的段再发出;段再发出; 策略策略2:在没有可能进行:在没有可能进行“捎带捎带”的情况下,接收方延迟发送的情况下,接收方延迟发送确认段;确认段;tcp传输策略传输策略 策略策略3:使用:使用nagle算法:当应用程序每次向传输实算法:当应用程序每次向传输实体发出一个字节时,传输实体发出第一个字节并缓体发出一个字节时,传输实体发出第一个字节并缓存所有其后的字节直至收到对第一个字节的确认;存所有其后的字节直至收到对第一个字
48、节的确认;然后将已缓存的所有字节组段发出并对再收到的字然后将已缓存的所有字节组段发出并对再收到的字节缓存,直至收到下一个确认;节缓存,直至收到下一个确认; 策略策略4:使用:使用clark算法解决傻窗口症状(算法解决傻窗口症状(silly window syndrome) 傻窗口症状:当应用程序一次从传输层实体读出一个字傻窗口症状:当应用程序一次从传输层实体读出一个字节时,传输层实体会产生一个一字节的窗口更新段,使节时,传输层实体会产生一个一字节的窗口更新段,使得发送方只能发送一个字节;得发送方只能发送一个字节; 解决办法:限制收方只有在具备一半的空缓存或最大段解决办法:限制收方只有在具备一半
49、的空缓存或最大段长的空缓存时,才产生一个窗口更新段。长的空缓存时,才产生一个窗口更新段。tcp的拥塞控制的拥塞控制由于当前网络传输介质的可靠性越来越高,所以由于当前网络传输介质的可靠性越来越高,所以tcp实体认为超实体认为超时就是网络拥塞造成的,可根据超时来判断是否发生拥塞。时就是网络拥塞造成的,可根据超时来判断是否发生拥塞。出现拥塞的两种情况出现拥塞的两种情况 快网络小缓存接收者快网络小缓存接收者 慢网络大缓存接收者慢网络大缓存接收者 导致网络拥塞的两个潜在因素是:网络能力和接收能力。导致网络拥塞的两个潜在因素是:网络能力和接收能力。tcp处理第一种拥塞的措施处理第一种拥塞的措施 在连接建立
50、时声明最大可接受段长度;在连接建立时声明最大可接受段长度; 利用可变滑动窗口协议防止出现拥塞;利用可变滑动窗口协议防止出现拥塞;tcp处理第二种拥塞的措施处理第二种拥塞的措施 发送方维护两个窗口:发送方维护两个窗口:可变发送窗口可变发送窗口和和拥塞窗口拥塞窗口,按两个窗口的最小,按两个窗口的最小值发送;值发送; 拥塞窗口依照拥塞窗口依照慢启动慢启动(slow start)算法和算法和拥塞避免拥塞避免(congestion avoidance)算法变化。)算法变化。拥塞控制算法拥塞控制算法慢启动(慢启动(slow start)算法)算法:建立连接时,拥塞窗口被初始化成该:建立连接时,拥塞窗口被初
51、始化成该连接支持的最大段长度,发送一个最大长度的段,若没有超时,连接支持的最大段长度,发送一个最大长度的段,若没有超时,则对拥塞窗口加倍扩大,发送两个最大长度的段,重复此过程,则对拥塞窗口加倍扩大,发送两个最大长度的段,重复此过程,直至最终达到设定的临界值或发生超时。直至最终达到设定的临界值或发生超时。internet的拥塞控制算法的拥塞控制算法:初始设置临界值(:初始设置临界值(threshold)为)为64kb,若发生超时,将临界值设为当前拥塞窗口的若发生超时,将临界值设为当前拥塞窗口的1/2,并将拥塞窗口恢,并将拥塞窗口恢复为最大段长度,执行慢启动算法,直至拥塞窗口达到临界值,复为最大段长度,执行慢启动算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西赣州市石城县2026年中考第二次模拟考试道德与法治(含解析)
- 2025铁塔代维考试核心考点配套试题及参考答案
- 2026年逾期换证考试短时间备考必刷题库及浓缩答案
- 江苏邮储2024校招笔试近3年真题汇编附逐题解析答案
- 全职备考2020幼儿园保健员面试全量题库带深度解析答案
- 2023年IQC常用表单考点笔试题及答案
- 2020菏泽医专单招综评高频考点模拟题附标准答案
- 2024年小升初冲刺城南旧日事阅读测试题及标准参考答案
- 团队建设管理课件
- 物业与装修公司消防协议书
- 中老年模特学习课件
- 2025年设备监理师职业资格考试(设备工程项目管理)历年参考题库含答案详解(5套)
- 食品药品检测技术
- 2025年西安科技大学专职辅导员招聘笔试备考试题(含答案详解)
- 2026届湖南省岳阳市岳阳县达标名校中考物理押题试卷含解析
- 2025年4月自考《思想道德修养与法律基础03706》真题试题和答案
- 表皮样囊肿与皮脂腺囊肿超声鉴别诊断
- 私企请假管理办法细则
- 2025年广东省中考物理试题卷(含答案)
- EPC项目总结资料
- 车排子地区新近系沙湾组油藏区块探井转开发井产能建设项目环评报告
评论
0/150
提交评论