互联网及其应用4-2-传输控制和socket课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《互联网及其应用4-2-传输控制和socket课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 互联网 及其 应用 传输 控制 socket 课件
- 资源描述:
-
1、lTCP实现:实现:l利用底层使用IP提供的不可靠服务,为应用程序提供一个可靠的数据传输服务l解决互联网中的数据丢失和延迟问题以提供有效的数据传输l不能让底层的网络和路由过载l编写应用程序向本机某个编写应用程序向本机某个I/O设备发送数设备发送数据,依赖底层计算机系统确保传输可靠据,依赖底层计算机系统确保传输可靠,不需要验证数据是否到达,系统保证数不需要验证数据是否到达,系统保证数据不丢失据不丢失,重复和乱序重复和乱序l希望希望:编写互联网程序遵循同样标准和常编写互联网程序遵循同样标准和常规技术规技术,把网络接口作为常规把网络接口作为常规I/Ol要求要求:互联网软件互联网软件(协议协议)来保证
2、来保证l实现实现:传输协议传输协议(TCP)实现可靠性实现可靠性,应用程应用程序发送和接受数据就和传输协议打交道序发送和接受数据就和传输协议打交道 应用层应用层传输层传输层网络层网络层数据链路层数据链路层物理层物理层面向信息面向信息处理处理面向面向通信通信用户用户功能功能网络网络功能功能两种观点划分高层与低层两种观点划分高层与低层 基本功能:提供端到端(进程基本功能:提供端到端(进程-进程)的进程)的可靠可靠通信,即向高层用户通信,即向高层用户 屏屏 蔽通信子网的细节,提供通用的传输接口。弥补了网络层所蔽通信子网的细节,提供通用的传输接口。弥补了网络层所提供服务的不足:剩余差错率和信号失败率,
3、数据传输速率、吞吐量和传输提供服务的不足:剩余差错率和信号失败率,数据传输速率、吞吐量和传输时延,适配会话层协议数据单元和网络层协议数据单元。时延,适配会话层协议数据单元和网络层协议数据单元。功能:传输连接的建立和释放、多路复用与分割、功能:传输连接的建立和释放、多路复用与分割、分段和重新组装、组块和分块、分段和重新组装、组块和分块、端到端的顺序控制、差错检测及恢复、端到端的顺序控制、差错检测及恢复、QOS监测。监测。传输协议的简单传输协议的简单/复杂决定于子网提供服务的多少复杂决定于子网提供服务的多少。通用的传输接口通用的传输接口传输协议传输协议 2传输协议传输协议 1网络层服务网络层服务
4、1网络层服务网络层服务 2l面向连接面向连接:首先请求一个到目的地的连接首先请求一个到目的地的连接l点对点通信点对点通信:(point to point),两个端点两个端点l完全可靠完全可靠:确保正确传输确保正确传输l全双工通信全双工通信:在两个方向上缓冲数据在两个方向上缓冲数据l流接口流接口:允许连续的字节流穿过连接允许连续的字节流穿过连接,不提供记录式表示不提供记录式表示法法l可靠的连接建立可靠的连接建立(机器重启机器重启,两个连接数据两个连接数据)l完美的连接终止完美的连接终止:TCP确保在关闭连接之前传递数据的确保在关闭连接之前传递数据的所有数据的可靠性所有数据的可靠性lTCP是端对端
5、协议是端对端协议:直接从一个机器的应用到另一个机直接从一个机器的应用到另一个机器的应用的连接器的应用的连接l虚连接虚连接(virtual connection):软件实现软件实现,软件通过信息软件通过信息来提供连接来提供连接lTCP使用使用IP来携带消息来携带消息,每一个每一个TCP消息封装在数据报消息封装在数据报后通过互联网后通过互联网l虚连接的每一端都需要虚连接的每一端都需要TCP软件软件,中间路由器不需要中间路由器不需要,正正常情况下常情况下IP不阅读不阅读TCP内容内容,IP仅作为数据来传递仅作为数据来传递传输服务用户传输服务用户传输服务用户传输服务用户 应用层应用层抽象机器抽象机器.
6、传输服务提供者(传输实体)传输服务提供者(传输实体)传输服务访问点传输服务访问点TSAP连接端点连接端点 传输服务传输服务-向用户提供高效、可靠、价格合理的服务。向用户提供高效、可靠、价格合理的服务。网络网络物理信道物理信道数据链路层数据链路层的环境的环境传输层传输层的环境的环境结点结点1结点结点2主机主机A主机主机Bl端到端到端(运输层)协议端(运输层)协议l提供不同主机的进程之间的逻辑通信服务l网络层协议提供主机间的逻辑通信l包括如下功能:l复用l连接管理l分段/重组l可靠递交l流量控制l拥塞控制IP 层端口 a端口 b端口 c基于端口的复用UDPUDP 数据报到达应用 1应用 2应用 3
7、 连接建立时延:从传输用户提出连接请求到接收到连接证实的时间连接建立时延:从传输用户提出连接请求到接收到连接证实的时间 建立连接失败可能性:在最大连接建立时延内连接未能建立的比例建立连接失败可能性:在最大连接建立时延内连接未能建立的比例 吞吐量:在一段时间间隔内,每秒传送的用户数据字节数吞吐量:在一段时间间隔内,每秒传送的用户数据字节数 转接时延:从源主机传输用户发出消息到目的主机传输用户接收到转接时延:从源主机传输用户发出消息到目的主机传输用户接收到该消息的时间该消息的时间 残余差错率:丢失和出错消息占全部发送的消息的比例残余差错率:丢失和出错消息占全部发送的消息的比例 保护:防止未经授权的
8、第三方读取或修改传输的数据保护:防止未经授权的第三方读取或修改传输的数据 优先级:有优先级的传输和同级用户的公平优先级:有优先级的传输和同级用户的公平 恢复力:在内部故障或拥塞时,传输层自发终止连接、重新连接的恢复力:在内部故障或拥塞时,传输层自发终止连接、重新连接的可能性可能性传输用户(客户端)与服务器建立连接的过程示例传输用户(客户端)与服务器建立连接的过程示例应用进程应用进程服务器服务器TSAP 6TSAP 122NSAP XNSAP Y传输层传输层传输层传输层网络层网络层网络层网络层(1)服务器以服务器以TSAP122为地址,为地址,等待呼入等待呼入(2)HOST 1的应用进程发出连接
9、的应用进程发出连接请求,源地址为请求,源地址为TSAP6,目的地目的地址为址为TSAP122(3)HOST 1的传输实体通过的传输实体通过NSAP在在HOST 1与与HOST 2之间之间建立网络连接建立网络连接(4)HOST 1的传输实体将应用进的传输实体将应用进程的连接请求传送给程的连接请求传送给HOST 2的的传输实体传输实体(5)HOST 2的传输实体询问应用的传输实体询问应用服务器是否同意建立传输连接服务器是否同意建立传输连接HOST 1HOST 2 TCP(传输控制协议):提供面向连接服务传输控制协议):提供面向连接服务 UDP(用户数据报协议):提供无连接服务用户数据报协议):提供
10、无连接服务 端口:端口:TSAP=端口号端口号+NSAP地址地址 熟知(公认)端口:常用的应用服务的端口熟知(公认)端口:常用的应用服务的端口RPCSNMPTFTPSMTPFTPTELNET()()()()()()()()()()()()11116169252123 UDPTCPABC IP=202.112.103.47端口端口500端口端口501 IP=202.112.103.47端口端口500 IP=202.112.103.225端口端口23连连接接7ECHO回送37TIME时间42NAMESERVER 主机名字服务器53DOMAIN域名服务器67BOOTPS启动协议服务69TFTP简单文
11、件传输161SNMPSNMP 网络监控20FTP-DATA文件传输协议(数据连接)21FTP文件传输协议(控制连接)23TELNET远程登录终端37TIME时间43NICNAMEwhois 程序79FINGERfinger 程序80HTTPWEB 服务UDP熟知端口号TCP熟知端口号 031位位31015源端口源端口目的端口目的端口 发送序号发送序号18 确认序号确认序号检查和检查和 选项和填充(选项和填充(0)首部首部长度长度URGACKPSHRSTSYNFIN保留保留窗口大小窗口大小紧急指针紧急指针数据(可选)数据(可选)源端口源端口/目的端口:目的端口:TSAP地址地址 发送序号:所发送
12、的数据的第一字节的序号发送序号:所发送的数据的第一字节的序号 确认序号:期望收到的数据(下一个消息)的第一字节的序号确认序号:期望收到的数据(下一个消息)的第一字节的序号 首部长度:单位为首部长度:单位为32位(双字)位(双字)控制字段:控制字段:紧急位(紧急位(URG):):1表示加急数据,此时紧急指针的值为加急表示加急数据,此时紧急指针的值为加急 数据的最后一个字节的序号数据的最后一个字节的序号 确认位(确认位(ACK):):1表示确认序号字段有意义表示确认序号字段有意义 急迫位(急迫位(PSH):):1表示请求接收端的传输实体尽快交付应用层表示请求接收端的传输实体尽快交付应用层 重建位(
13、重建位(RST):):1表示出现严重差错,必须释放连接,重建表示出现严重差错,必须释放连接,重建 同步位(同步位(SYN):):SYN=1,ACK=0 表示连接请求消息表示连接请求消息 SYN=1,ACK=1 表示同意建立连接消息表示同意建立连接消息 终止位(终止位(FIN):):1表示数据已发送完,要求释放连接表示数据已发送完,要求释放连接 窗口大小:通知发送方接收窗口的大小,即最多可以发送的字节数窗口大小:通知发送方接收窗口的大小,即最多可以发送的字节数 检查和:检查和:12B的伪首部的伪首部+首部首部+数据数据 l码元比特字段码元比特字段(CODE BITS)6bitl指出报文段的目的和
14、内容,给出报文头中其他字段的解释URG ACK PSH RST SYNFIN发送方字节流结束序号同步连接复位报文端请求急迫操作确认字段可用紧急指针字段可用l理论证明理论证明:三次握手是包丢失三次握手是包丢失,重复重复,延迟情况下确保非模糊协定的冲要条件延迟情况下确保非模糊协定的冲要条件主机主机 1主机主机 2SYN=1,ACK=0 Send_Seq=xSYN=1,ACK=1 Send_Seq=y,Ack_Seq=x+1通知应用通知应用进程进程主机主机 1主机主机 2应用进程应用进程要求连接要求连接通知应用通知应用进程进程Ack_Seq=y+1SYN=1,ACK=0,Send_Seq=xSYN=
15、1,ACK=0,Send_Seq=ySYN=1,ACK=1 Send_Seq=x,Ack_Seq=y+1SYN=1,ACK=1 Send_Seq=y,Ack_Seq=x+1正常连接情形正常连接情形呼叫冲突:两个主机在相同的呼叫冲突:两个主机在相同的一对一对 SOCKET之间建立连接之间建立连接 初始序号的设置:基于时钟的方法初始序号的设置:基于时钟的方法RESET主机主机 1主机主机 2FIN=1,Send_Seq=xAck_Seq=x+1应用进程应用进程要求释放要求释放连接连接通知应用通知应用进程进程应用进程应用进程要求释放要求释放连接连接通知应用通知应用进程进程FIN=1,Send_Seq
16、=yAck_Seq=y+1整个连接整个连接释放释放 采用定时器方法,处理确认丢失的情况采用定时器方法,处理确认丢失的情况CLOSEDLISTENSYN RCVDSYN SENTESTABLISHEDFIN WAIT1FIN WAIT2CLOSINGCLOSE WAITLAST ACKTIMED WAITCLOSED客户应用进程请求连接客户应用进程请求连接3 次握手建立连接次握手建立连接释放连接请求释放连接请求对方应答对方应答收到对方的收到对方的释放请求释放请求超时超时LISTEN收到连接请求收到连接请求收到客户端的确认收到客户端的确认收到对方的释放请求收到对方的释放请求释放连接请求释放连接请求
17、对方应答对方应答收到对方的收到对方的释放请求释放请求对方应答对方应答 对方请求对方请求+应答应答释放连接请求释放连接请求拒绝连接拒绝连接请求建立连接请求建立连接同时建立连接同时建立连接l 可靠性可靠性:通过重发解决包丢失通过重发解决包丢失,定时和确认机制定时和确认机制l广域网传输延迟比局域网的增加和不定广域网传输延迟比局域网的增加和不定l适应性重发适应性重发:TCP监视当前连接的延迟监视当前连接的延迟(roud-trap delay,统计统计),改变重发定时器适应条件变化改变重发定时器适应条件变化(1)如果每收到应用进程的消息即发送,对于短消息,会浪费带宽如果每收到应用进程的消息即发送,对于短
18、消息,会浪费带宽 解决:解决:A.推迟发送确认和窗口更新消息,以捎带信息推迟发送确认和窗口更新消息,以捎带信息 B.Nagle 算法,尽量把短消息组合发送算法,尽量把短消息组合发送(2)“傻瓜窗口傻瓜窗口”问题,接收端每次只能向应用进程交付少量消息,问题,接收端每次只能向应用进程交付少量消息,窗口更新消息只提供少量缓存,导致低效窗口更新消息只提供少量缓存,导致低效 解决:解决:Chark 方法,禁止接收方频繁发送窗口更新消息,有一定方法,禁止接收方频繁发送窗口更新消息,有一定 空闲缓存后再发送空闲缓存后再发送lTCP采用窗口机制来控制数据流采用窗口机制来控制数据流l窗口窗口:建立连接的每一端分
19、配一个缓冲区保持输入数据建立连接的每一端分配一个缓冲区保持输入数据,并将缓冲区的尺寸发送给并将缓冲区的尺寸发送给另一方另一方;发送确认时发送确认时,包含自己剩余的缓冲区尺寸包含自己剩余的缓冲区尺寸,窗口通告窗口通告(window advertisement)发送端发送端接收端接收端Send_Seq=0(0-2047)Ack_Seq=2048,WIN=2048应用进程应用进程交付交付3KAck_Seq=4096,WIN=0向应用进程交付向应用进程交付2K空闲缓存空闲缓存4K2KSend_Seq=2048(2048-4095)0Ack_Seq=4096,WIN=20482K暂停发送暂停发送Send
20、_Seq=4096(4096-5119)1K(1)缓存大小和分配方式:固定大小缓存、可变大小缓存;为每个连接只分配缓存大小和分配方式:固定大小缓存、可变大小缓存;为每个连接只分配 一个缓存、多个连接公用缓存。一个缓存、多个连接公用缓存。(2)低带宽突发业务,在发送端缓存;高速信息传输,在接收端缓存低带宽突发业务,在发送端缓存;高速信息传输,在接收端缓存(3)动态缓存分配:接收端通知发送端所分配动态缓存分配:接收端通知发送端所分配/剩余的空闲缓存数量,无剩余的空闲缓存数量,无 空闲缓存时,发送端暂停发送空闲缓存时,发送端暂停发送主机主机 1主机主机 2要求要求 8个缓存个缓存BUF=4SEQ=0
展开阅读全文