《传输层协议》PPT课件.ppt
《《传输层协议》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《传输层协议》PPT课件.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 传输层协议8.1 进程间通信进程间通信8.2 TCP段格式段格式8.3 TCP连接的建立和拆除连接的建立和拆除8.4 TCP流量控制流量控制8.5 TCP拥塞控制拥塞控制8.6 TCP差错控制差错控制8.7 TCP状态转换图状态转换图8.8 用户数据报协议用户数据报协议UDP8.1 进程间通信进程间通信由于在一台计算机中同时存在多个进程,要进由于在一台计算机中同时存在多个进程,要进行进程间的通信,行进程间的通信,首先要解决进程的标识问题首先要解决进程的标识问题。TCPTCP和和UDPUDP采用协议采用协议端口端口来标识某一主机上的通来标识某一主机上的通信进程。信进程。必须给出必须给出全
2、局惟一全局惟一的信宿端的进程标识符。的信宿端的进程标识符。主主机可以用机可以用IPIP地址进行标识地址进行标识,IPIP地址是全局惟一地址是全局惟一的,再给主机上的进程赋予一个的,再给主机上的进程赋予一个本地惟一的标本地惟一的标识符识符端口号端口号,二者加起来,便形成了进程的,二者加起来,便形成了进程的全局惟一标识符。全局惟一标识符。端口端口:传输层服务访问点:传输层服务访问点TSAP。从内部实现看,端口是一种从内部实现看,端口是一种抽象的软件结构抽象的软件结构(数据数据结构和结构和I/O缓冲区缓冲区)从通信对方看,端口是从通信对方看,端口是通信进程的标识通信进程的标识,应用进,应用进程通过系
3、统调用与端口建立关联后,传输层传给程通过系统调用与端口建立关联后,传输层传给该端口的数据都会被相应的应用进程所接收该端口的数据都会被相应的应用进程所接收从本地应用进程看,端口是进程从本地应用进程看,端口是进程访问传输服务的访问传输服务的入口点入口点。每个端口拥有一个每个端口拥有一个端口号端口号(port number),),端口号是端口号是16比特比特的标识符,因此,端口号的的标识符,因此,端口号的取值范围是从取值范围是从0到到65535。端口分配端口分配有两种基本的方式:全局端口分配和有两种基本的方式:全局端口分配和本地端口分配。本地端口分配。TCP和和UDP都是都是提供进程通信能力提供进程
4、通信能力的传输层协议,的传输层协议,各各有一套有一套端口号,都是从端口号,都是从0到到65535。同一个端口在同一个端口在TCP和和UDP中可能对应于中可能对应于不同不同类型的应类型的应用进程,也可能对应于用进程,也可能对应于相同相同类型的应用进程。为了区类型的应用进程。为了区别别TCP和和UDP的进程,除了给出主机的进程,除了给出主机IP地址和端口号地址和端口号之外,还要之外,还要指明协议指明协议。因特网中要全局惟一地标识一个进程必须采用一个因特网中要全局惟一地标识一个进程必须采用一个三三元组元组:(协议,主机地址,端口号):(协议,主机地址,端口号)网络通信是两个网络通信是两个进程之间的通
5、信进程之间的通信,两个通信的进程构,两个通信的进程构成一个成一个关联关联。这个关联应该包含两个三元组,由于通。这个关联应该包含两个三元组,由于通信双方采用的协议必须是相同的,可以用一个信双方采用的协议必须是相同的,可以用一个五元组五元组来描述两个进程的关联:(协议来描述两个进程的关联:(协议,本地主机地址本地主机地址,本地本地端口号端口号,远地主机地址远地主机地址,远地端口号)远地端口号)因特网通信进程间的因特网通信进程间的相互作用模式相互作用模式:客户客户/服服务器模型务器模型。客户。客户/服务器模型相互服务器模型相互作用的过程作用的过程是:客户向服务器发出服务请求,服务器完成是:客户向服务
6、器发出服务请求,服务器完成客户所要求的操作,然后给出响应。客户所要求的操作,然后给出响应。服务器一般先于客户端启动,为了让客户能够服务器一般先于客户端启动,为了让客户能够找到服务器,服务器必须使用一个找到服务器,服务器必须使用一个客户熟知的客户熟知的地址地址,客户可以根据此地址向服务器提出服务,客户可以根据此地址向服务器提出服务请求。请求。熟知地址的含义:熟知地址的含义:协议协议是双方约定的协议,主是双方约定的协议,主机机IP地址地址是固定且公开的,是固定且公开的,端口号端口号是大家所熟是大家所熟知的。知的。每一个标准的服务器都拥有一个熟知的端口号,每一个标准的服务器都拥有一个熟知的端口号,不
7、同主机上相同服务器的端口号是相同的。客不同主机上相同服务器的端口号是相同的。客户进程一般采用户进程一般采用临时端口号临时端口号,而不采用熟知的,而不采用熟知的端口号。临时端口是使用时向操作系统端口号。临时端口是使用时向操作系统申请申请,由操作系统由操作系统分配分配,使用使用完后再完后再交交由操作系统管由操作系统管理的端口。因此,只要同一时间同一主机上的理的端口。因此,只要同一时间同一主机上的应用进程数量不超过可分配的临时端口数量就应用进程数量不超过可分配的临时端口数量就能保证系统的正常运行。能保证系统的正常运行。熟知端口所占端口号不多,以全局方式进行分熟知端口所占端口号不多,以全局方式进行分配
8、。配。TCP和和UDP规定,规定,小于小于1024的端口号用的端口号用作熟知端口,熟知端口又称为作熟知端口,熟知端口又称为保留端口保留端口。从从1024到到65535编号的端口为临时端口,编号的端口为临时端口,临时端口又称为临时端口又称为自由端口自由端口。临时端口占。临时端口占全部端口的绝大部分,以本地方式进行全部端口的绝大部分,以本地方式进行分配。当进程要与远地进程通信时,首分配。当进程要与远地进程通信时,首先申请一个临时端口,然后根据全局分先申请一个临时端口,然后根据全局分配的熟知端口号与远地服务器建立联系,配的熟知端口号与远地服务器建立联系,传输数据。传输数据。TCP/IP结合了两种端口
9、分配方式结合了两种端口分配方式,既保,既保证了灵活性,又方便了建立通信进程间证了灵活性,又方便了建立通信进程间的联系。的联系。01023Well-known102449151Registered4915265535Dynamic面向报文的面向报文的 UDP发送方发送方 UDP 对应用程序交下来的报文,在添对应用程序交下来的报文,在添加首部后就向下交付加首部后就向下交付 IP 层。层。UDP 对应用层交对应用层交下来的报文,既不合并,也不拆分,而是保留下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这些报文的边界。应用层交给应用层交给 UDP 多长的报文,多长的报文,UDP 就照样发就照
10、样发送,即一次发送一个报文。送,即一次发送一个报文。接收方接收方 UDP 对对 IP 层交上来的层交上来的 UDP 用户数据用户数据报,在去除首部后就原封不动地交付上层的应报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。用进程,一次交付一个完整的报文。应用程序必须选择合适大小的报文。应用程序必须选择合适大小的报文。TCP要将数据分为分组,要将数据分为分组,TCP所采用的分组称所采用的分组称为为TCP段。段。TCP段不定长段不定长,被封装在,被封装在IP数据报数据报中传输。中传输。IP数据报不能保证数据的按序到达,数据报不能保证数据的按序到达,还可能造成数据的丢失或毁坏,
11、这些问题经过还可能造成数据的丢失或毁坏,这些问题经过TCP协议的处理后,对上层提供的是协议的处理后,对上层提供的是可靠的无可靠的无差错的服务差错的服务。返回返回 TCP 面向流的概念面向流的概念7 68HTCP 面向流的概念面向流的概念 发送 TCP 报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109 H加上 TCP 首部构成 TCP 报文段TCPTCP字节流字节流H表示 TCP 报文段的首部x表示序号为 x 的数据字节TCP 连接应当注意应当注意TCP 连接是一条虚连接而不是一条真正的物理连连接是一条虚连接而
12、不是一条真正的物理连接。接。TCP 对应用进程一次把多长的报文发送到对应用进程一次把多长的报文发送到TCP 的的缓存中是不关心的。缓存中是不关心的。TCP 根据对方给出的窗口值和当前网络拥塞的程根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(度来决定一个报文段应包含多少个字节(UDP 发发送的报文长度是应用进程给出的)。送的报文长度是应用进程给出的)。TCP 可把太长的数据块划分短一些再传送。可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发也可等待积累有足够多的字节后再构成报文段发送出去。送出去。TCP 可靠通信的具体实现可靠通信的
13、具体实现 TCP 连接的每一端都必须设有两个窗口连接的每一端都必须设有两个窗口一个一个发送窗口发送窗口和一个和一个接收窗口接收窗口。TCP 的可靠传输机制用的可靠传输机制用字节的序号字节的序号进行进行控制。控制。TCP 所有的确认都是所有的确认都是基于序号基于序号而而不是基于报文段。不是基于报文段。TCP 两端的四个窗口经常处于两端的四个窗口经常处于动态变化动态变化之中。之中。TCP连接的往返时间连接的往返时间 RTT 也也不是固定不不是固定不变的变的。需要使用特定的算法估算较为合。需要使用特定的算法估算较为合理的重传时间。理的重传时间。8.2 TCP段格式段格式TCP将应用层的数据分块并封装
14、成将应用层的数据分块并封装成TCP段进行段进行发送。发送。TCP段段=段首部段首部+数据数据段首部段首部(20到到60字节字节)=定长部分定长部分+变长部分变长部分定长部分定长部分长度:长度:20字节字节变长部分变长部分=选项选项+填充,长度填充,长度:0到到40字节之间。字节之间。TCP段格式中各个字段的含义和作用:段格式中各个字段的含义和作用:TCP首部20 字节的固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 数据部分TCP 首部TC
15、P 报文段IP 数据部分IP 首部发送在前TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充源端口和目的端口字段各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充序号字段占 4 字节。TCP 连接
16、中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充数据偏
17、移(即首部长度)占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充保留字段占 6 位,保留为今后使用,但目前应置为 0。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8
18、 16 24 31填 充紧急 URG 当 URG 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充确认 ACK 只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSH
19、ACKURG位 0 8 16 24 31填 充推送 PSH(PuSH)接收 TCP 收到 PSH=1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充复位 RST(ReSeT)当 RST 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长
20、 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充同步 SYN 同步 SYN=1 表示这是一个连接请求或连接接受报文。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充终止 FIN(FINis)用来释放一个连接。FIN 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度
21、可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充窗口字段 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项
22、 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充选项字段 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”MSS(Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。其他选项n窗口扩大选项 占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于TCP 首部中的窗口位数增大到(16+S),相当于把窗口
23、值向左移动 S 位后获得实际的窗口大小。n时间戳选项占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。n选择确认选项在后面的 5.6.3 节介绍。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充填充字段 这是为了使整个首部长度是 4 字节的整数倍。TCP伪首部的伪首部的信息来自信息来自IP数据报的首部数据报的首部,协议字,协议字段指明当前协议为段指明当前协议为TCP(6)。TCP段的发送端和段的发送端
24、和接收端在计算校验和时都会加上伪首部信息。若接收端在计算校验和时都会加上伪首部信息。若接收端验证校验和是正确的,则说明数据到达了接收端验证校验和是正确的,则说明数据到达了正确主机上正确协议的正确端口正确主机上正确协议的正确端口。8.3 TCP连接的建立和拆除连接的建立和拆除8.3.1 TCP连接的建立连接的建立为了实现数据的为了实现数据的可靠传输可靠传输,TCP要在应用进程要在应用进程间建立传输间建立传输连接连接。从理论上讲,建立传输连接只需要一个请求和从理论上讲,建立传输连接只需要一个请求和一个响应就可以了。但是由于通信子网的问题,一个响应就可以了。但是由于通信子网的问题,请求有可能丢失,为
25、了解决请求的丢失问题,请求有可能丢失,为了解决请求的丢失问题,常用的办法是常用的办法是超时重传超时重传。客户发出连接请求时,启动一个客户发出连接请求时,启动一个定时器定时器,一旦,一旦定时器超时,客户将被迫再次发起连接请求,定时器超时,客户将被迫再次发起连接请求,会导致会导致重复连接重复连接。解决解决重复连接的办法:三次握手方法。重复连接的办法:三次握手方法。三次握手方法要求三次握手方法要求对所有报文进行编号对所有报文进行编号,TCP采用的方法是给采用的方法是给每个字节一个每个字节一个32比特的序号比特的序号。每次建立连接时都产生一个新的每次建立连接时都产生一个新的初始序号初始序号。序号字段位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输层协议 传输 协议 PPT 课件
限制150内