




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 传输层协议及技术本章知识点 传输层基本概念 地位,作用,协议, socket, 端口 TCP协议 TCP可靠通信和会话管理:TCP报文,流量控制,三次握手连接,全双工释放连接 UDP协议 UDP报文,UDP应用6.1 传输层基本概念传输层基本概念6.1.1 传输层角色和服务 从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 介于通信子网和资源子网之间,对高层用户屏蔽了通信细节 传输层工作的繁简取决于通信子网提供的服务的类型 跟踪源主机和目的主机上应用程序间的每次通信 将数据分段,并管理每个片段;将分段数据重组为应用程序数据
2、流物理层网络层传输层应用层数据链路层传输的使用者传输的提供者资源子网通信子网6.1.2 6.1.2 传输层协议与网络层协议的差异 传输层协议处理应用进程之间通信的事务 网络层协议处理主机之间的通信事务6.1.3 6.1.3 传输层作用传输层作用 传输层为相互通信的应用进程提供了逻辑通信 54321传输层提供应用进程间的逻辑通信主机 A主机 B应用进程应用进程IP 层AP1AP2AP4端口端口54321AP3两个主机进行通信最终要实现两个主机中的应用进程互相通信。 应用进程之间的通信又称为端到端的通信6.1.4 多路复用/分用服务 应用层运输层网络层TCP 报文段UDP用户数据报应用进程 TCP
3、 报文段 应用进程端口端口TCP 分用UDP 分用IP 分用IP 数据报IP 数据报发送方接收方传输层协议能够提供应用的多路复用/分用服务复用/分用应用应用程序使用socket套接字收发数据 发送端:应用程序将数据送入socket 接收端:应用程序从socket提取数据 Socket上的一个重要组成部分就是端口传输层端口 端口Internet Assigned Numbers Authority(IANA)负责分配端口1)用来标志应用进程;本地有效;2)发送端:应用进程通过端口将数据交给传输层发送3)接收端:传输层通过端口将接收到的数据交给应用进程 端口面向服务端口号:16bit,范围0-65
4、5351)知名端口:知名端01023(0-255公共应用,256-1023商业公司) HTTP:80、FTP:21、DNS:53、SMTP:25、TELNET:232)注册端口:程序设计师设计的应用程序使用哪个port,为了不和其他应用程序冲突,可在IANA网站上注册1024491512)一般端口:client应用程序启动,由操作系统分配一个动态的端口给应用程序使用。应用程序结束后归还 netstat 命令 netstat a显示所有活动的tcp连接以及计算机监听的tcp和udp端口 netstat n 以数字形式显示所有活动的tcp连接的地址和端口号 netstat -o 表示显示活动的tc
5、p连接并包括每个连接的进程id(pid)Windows常用端口含义tcp135:远程过程调用rpcudp4000/8000:QQ客户端和服务器端tcp139:提供文件共享 Port number :Used for Identifying the Conversations Socket:IP 地址地址+端口号端口号 (IP 地址地址+传输层协议传输层协议+端口号端口号 )6.2 传输层协议概述传输层协议概述3.2 Internet传输层协议 Internet协议集传输层提供的服务 面向连接的服务:这种服务通常意味着服务是可靠的 无连接的服务:通信信道是不可靠的,通常适用于:内部数据收集; 外
6、部数据发布;请求响应;实时应用传输层协议?应用层传输层发送进程接收进程接收进程数据数据全双工可靠信道数据数据使用 TCP 协议使用 UDP 协议不可靠信道发送进程UDP和TCP的最主要的功能是将IP提供的端到端传递服务扩展到进程级TCP和UDP 用户数据报协议UDP (User Datagram Protocol )(无连接的服务)1)负责进程进程数据传递2)差错检测 传输控制协议TCP(Transmission Control Protocol)(面向连接的服务)1)进程进程数据传递2)差错检测3)可靠数据传递4)面向连接5)拥塞控制TCP和UDP数据传输单元 TCP 传送的协议数据单元是
7、TCP 报文段(segment) UDP 传送的协议数据单元是 UDP 报文或用户数据报。协议工作方式 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式(QQ通信) TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源6.3 传输层协议传输层协议-TCP协议协议6.3 可靠传输与TCP协议本节主要熟练掌握可靠数据传输;掌握连接管理;熟练掌握TCP协议 传输控制协议TCP 报文格式 传输特性 会话管理连接的建立、连接的释放 可靠数据传输早期的应用由于线路的质量很差,需要在数据链路层实现可靠传输
8、,但是由于现在的链路的高可靠性和高带宽,可以将纠错放在高层传输层处理.流量控制6.3.1 传输控制协议TCPTCP是可靠的面向连接的端到端字节流传输协议 RFC 793:基本TCP定义 -RFC 1122:修改和改进 RFC 1323:扩展定义 -RFC 2018、RFC 2581:最新改进 TCP定义了交换数据报文和确认报文的格式;保证数据正确传送的过程 TCP规定了如何识别给定机器上的多个目标进程;如何处理丢失或重复等差错情况;如何初始化一个数据流传输;如何协商结束数据流出传输 TCP协议的特点面向连接;连接是全双工的;连接是端到端的;有缓冲的发送;无结构的字节流 TCP报文结构TCP s
9、egment确认号期待传输的下一个TCP字节的编号。源端口呼叫方的端口号。序号保证到达数据正确顺序的数字。目的端口被叫方的端口号。HLEN报头字数,字长为32位。代码位: 控制功能(例如建立和终止一个会话)。如:RST,ACK,SYN,FIN保留设置为0。校验和根据报头与数据字段计算出的校验和。数据上层协议数据。可选项当前定义的一个选项。如:segment的最大长度等待确认消息之前可以发送多少字节的数据紧急指针指示紧急数据的结束。20字节固定首部紧急比特紧急比特 URG URG 当当 URG URG 1 1 时,表明紧急指针字段有时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快
10、传送效。它告诉系统此报文段中有紧急数据,应尽快传送( (相当相当于高优先级的数据于高优先级的数据) )。 TCP首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认比特确认比特 ACK ACK 只有当只有当 ACK ACK 1 1 时确认号字段才有时确认号字段才有 效。当效。当 ACK ACK 0 0 时,确认号无效。时,确认号无效。 TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确
11、认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充推送比特推送比特 PSH (PuSH) PSH (PuSH) 接收接收 TCP TCP 收到推送比特置收到推送比特置 1 1 的报的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都文段,就尽快地交付给接收应用进程,而不再等到整个缓存都 填满了后再向上交付。填满了后再向上交付。 TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充复位比特复位比特 RS
12、T (ReSeT) RST (ReSeT) 当当 RST RST 1 1 时,表明时,表明 TCP TCP 连接中连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,出现严重差错(如由于主机崩溃或其他原因),必须释放连接, 然后再重新建立传输连接然后再重新建立传输连接。 TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特同步比特 SYN SYN 同步比特同步比特 SYN SYN 置为置为 1 1,就表示这是一个,就表示这
13、是一个 连接请求或连接接受报文连接请求或连接接受报文。 TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充终止比特终止比特 FIN (FINal) FIN (FINal) 用来释放一个连接。当用来释放一个连接。当FIN FIN 1 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。传输连接。 TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可
14、变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充关于MSS(max segment size)选项字段 每个连接方通常都在握手的第一步中指明这个选项。它指明本端所能接收的最大长度的报文段 . 最大段长MSS 太小降低网络利用率,太大降低网络性能MSS的选择1)连接两端位于同一物理网络:选择的MSS应使IP数据报的大小与网络MTU相适应 MSS =MTU (直连LAN) TCP头 IP 以太网MSS150020201460B(不包含选项字段)2)连接两端位于不同的物理网段,最好设置为途径网路的最小MTU值或缺省值(5
15、36B)3)连接两端必须协商MSS6.3.2 TCP传输连接和释放连接 建立连接的必要性:通信子网的不可靠性 传输连接就有三个阶段,即:连接建立、数据传送和连接释放。传输连接的管理就是使传输连接的建立和释放都能正常地进行。TCP提供全双工服务 连接建立过程中要解决以下三个问题: 要使每一方能够确知对方的存在。 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。 能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。连接建立的通常采用的方法:三次握手正常三次握手建立连接TCP 的连接和建立都是采用客户服务器方式(C/S) 主动发起连接建立的应用进程叫做客户(client
16、)。 被动等待连接建立的应用进程叫做服务器(server) X表示主叫方的初始序号,y表示被叫方初始序号SYN, SEQ = x主机 BSYN, ACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y 1被动打开主动打开确认确认主机 A连接请求CRestablishedSyn_sentSyn_receivedSyn_sent ackSyn_received建立连接的过程 A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x。 B 的 TCP 收到连接请求报文段后,如
17、同意,则发回确认。 B 在确认报文段中应将 SYN 置为 1,其确认号应为 x 1,同时也为自己选择序号 y。 A 收到此报文段后,向 B 给出确认,其确认号应为 y 1。 A 的 TCP 通知上层应用进程,连接已经建立。 当运行服务器进程的主机 B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程,连接已经建立。 SYN用于初始化连接时,segment只包含一个字节的数据应用应用:DOS攻击攻击(syn flooding) 单点单点TCP 连接释放的过程 FIN, SEQ = xACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y 1应用进程
18、释放连接A 不再发送报文FIN, ACK, SEQ = y, ACK = x + 1主机 B主机 A通知主机应用进程应用进程释放连接B 不再发送报文确认确认从 A 到 B 的连接就释放了,连接处于半关闭状态。相当于 A 向 B 说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。” 至此,整个连接已经全部释放。6.3.3 TCP的可靠传输与流量控制 TCP是在不可靠的IP之上实现可靠传输服务,以确保一个进程从缓存中读取的字节流与发送方一致。 可靠传输协议的要素:确认,否定确认,定时器(单一),序号,滑动窗口,校验 TCP头部的sequence number/ACK.number用于可靠
19、传输 TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号TCP的重传与确认 TCP采用累计确认的方式(演示) 确认丢失不一定会导致发送方重发数据同时发送,ACK=100丢失,在超时发生前,收到了一个确认号为110的确认报文,那么主机A知道主机B收到了119 以及之前所有的字节,所以主机A不 会重传TCP的重传与确认 TCP没有否定确认机制,接收端只能通过重复确认来报告出错情况 累计确认缺点:发送方不能确定哪些段已经成功传送了,这样在超时触发重传中当一个报文丢失会迫使发方等待很长时间才
20、能重传丢失的分组,效率比较的低TCP的快速重传 当接收方收到不连续数据块时,会对已收到的作3次确认,称为冗余ACK 发送方检测到三个重复ACK立即重传该ACK所指的段TCP的流量控制 TCP为应用程序提供了流量控制消除发方使得接收方缓存溢出的可能性 发送方和接收方都有接收窗口来提供流量控制,此缓冲空间的大小是随时间变化的。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小) TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。 在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上
21、限。收到确认即可前移1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送指针 发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。 发送端只要收到了对方的确认,发送窗口就可前移。 发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。收到确认即可前移1002003004005006007008009001012013014015016017018011可发送不可发送指针100200300400500600700800900101201301
22、4015016017018011发送窗口可发送不可发送指针发送窗口前移 发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。 现在发送端还可发送 300 字节。 已发送并被确认已发送但未被确认1002003004005006007008009001012013014015016017018011已发送并被确认已发送但未被确认可发送不可发送指针1002003004005006007008009001012013014015016017018011已发送并被确认可发送不可发送指针发送窗口前移发送窗口缩小 发送端收到了对方对前 400 字节数据的确认,但对方通
23、知发送端必须把窗口减小到 400 字节。 现在发送端最多还可发送 400 字节的数据。 利用可变窗口大小进行流量控制双方确定的窗口值是 400 主机 A不允许 A 再发送(到序号 600 的数据都已收到)SEQ = 1SEQ = 201SEQ = 401SEQ = 301SEQ = 101SEQ = 501ACK = 201, WIN = 300ACK = 601, WIN = 0ACK = 501, WIN = 200主机 B允许 A 再发送 300 字节(序号 201 至 500)A 还能发送 200 字节A 还能发送 200 字节(序号 301 至 500)A 还能发送 300 字节A 还能发送 100 字节(序号 401 至 500)A 超时重发,但不能发送序号 500 以后的数据允许 A 再发送 200 字节(序号 501 至 700)A 还能发送 100 字节(序号 501 至 700)SEQ = 201丢失! TCP的流量控制和缓冲策略传输层需要对数据确认,但确认并不代表送到上层应用进程。所以缓冲区与确认没有联系死锁解决:发送方发送一个字节数据通知对方重新声明(注意:下图的ACK表示的是已经收到的报文的最后一个字节)6.4用户数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人店铺用人合同标准文本
- 产品展示协议合同标准文本
- 养生馆转让合同标准文本
- 养殖企业合同标准文本
- 中介养老服务合同标准文本
- 使用权房屋出售合同标准文本
- 增强品牌影响力的实施方法计划
- 农村房子包工合同标准文本
- 2025年标准书面承包合同范本示例
- 年度教育教学工作计划4篇
- 班组班前安全教育记录表
- 教科版科学五年级下册全册全套课件【最新版】
- 胎儿颈项透明层(NT)的超声诊断课件
- 工程移交单(标准样本)
- 《最好的未来》合唱曲谱
- 常用材料折弯系数表大全
- 小班语言《坐火车》课件
- FIDIC合同《设计采购施工(EPC)交钥匙工程合同条件》(中英文对照版)
- 环境监测课件:第3章 空气和废气监测2
- 航空航天概论(课堂PPT)
- 律师刑事诉讼格式文书一至十九
评论
0/150
提交评论