lufei1108@yahoo.com.cn第4章传输层协议4.1客户/服务器交互模式s4.14.2网络应用程序的通信过程s4.24.3TCP协议s4.34.4UDP协议s4.4lufei1108@yahoo.com.cn第一节客户/服务器交互模式电话通信书信通信lufei1108@yahoo.com.cn第一节客户/服务器交互模式一个应用程序被动的等待,另一个应用程序通过请求启动通信过程的通信模式称作客户/服务器交互模式,简写为C/S模式安装有服务器程序的计算机称作服务器安装有客户程序的计算机称作客户机以浏览器作为客户端的网络应用程序通信模式称作浏览器/服务器交互模式,简称B/S模式1、客户/服务器交互模式的概念在C/S模式中,客户机和服务器的分界规则lufei1108@yahoo.com.cn主机A主机B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN1IP协议的作用范围运输层协议TCP和UDP的作用范围54321运输层提供应用进程间的逻辑通信应用进程应用进程IP层AP1AP2AP4端口端口54321AP3第一节客户/服务器交互模式2、传输层服务类型如何对主机上的程序进行识别呢lufei1108@yahoo.com.cn传输层协议和互联层协议的主要区别应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网第一节客户/服务器交互模式2、传输层服务类型互联层传输层lufei1108@yahoo.com.cnATM(AsynchronousTransferMode),异步传输模式,用于高速资料转换的协议ATM(AutomaticTellerMachine),自动取款机,电脑化的银行装置Internet层IPICMPIGMPARP网络接口层EthernetATM传输层UDPTCP应用层FTPHTTP应用层表示层传输层网络层链路层物理层会话层第一节客户/服务器交互模式2、传输层服务类型lufei1108@yahoo.com.cn第一节客户/服务器交互模式2、传输层服务类型连接型传输服务--TCP协议在传输数据之前首先建立起连接可以进行差错控制、流量控制,可以提供端到端的可靠性数据传输服务非连接型传输服务--UDP协议占用网络资源少控制简单,通信效率高可靠性差lufei1108@yahoo.com.cn第二节网络应用程序的通信过程1、应用程序通信协议客户端与服务器程序之间进行数据交换,必须对通信报文中的数据格式、字段含义进行严格定义。lufei1108@yahoo.com.cn第二节网络应用程序的通信过程1、应用程序通信协议lufei1108@yahoo.com.cn第二节网络应用程序的通信过程2、传输层接口参数(1)采用哪种传输服务方式;(2)接收方主机地址(IP地址);(3)接收该数据报文的网络应用程序进程。应用程序进程用端口号表示编程界面Socket在Socket编程界面中,应用程序提供给传输层的接口参数是“套接字”向传输层提交报文时需包含的内容lufei1108@yahoo.com.cn第二节网络应用程序的通信过程2、传输层接口参数套接字{协议类型,本地地址,本地端口,远地地址,远地端口}•协议类型:TCP或者UDP协议;•本地地址:本计算机的IP地址;•本地端口:该通信进程使用的端口号;•远地地址:对方主机的IP地址;•远地端口:对方通信进程使用的端口号;lufei1108@yahoo.com.cn硬件操作系统API函数库类库运行环境驱动应用程序第二节网络应用程序的通信过程2、传输层接口参数lufei1108@yahoo.com.cn第二节网络应用程序的通信过程3、C/S模式通信过程(1)面向连接的C/S模式通信过程A)向服务器进程发送建立连接请求;B)当连接建立成功后,进入数据传输状态;C)使用Write()过程发送报文;使用Read()过程等待接收应答报文;D)数据传送完毕,关闭连接。lufei1108@yahoo.com.cn第二节网络应用程序的通信过程3、C/S模式通信过程面向连接的C/S模式通信过程lufei1108@yahoo.com.cn第二节网络应用程序的通信过程3、C/S模式通信过程(2)面向无连接的C/S模式通信过程服务器进程处于等待接收数据状态;客户端需要发送数据时,直接将报文发送给服务器。lufei1108@yahoo.com.cn第二节网络应用程序的通信过程3、C/S模式通信过程(2)面向无连接的C/S模式通信过程lufei1108@yahoo.com.cn第三节TCP协议1、TCP协议中的差错控制(1)数据确认技术;(2)超时重传技术。lufei1108@yahoo.com.cn第三节TCP协议1、TCP协议中的差错控制(1)数据确认技术;确认字段含义:表示该编号之前的数据已经正确接收;发送方需要从该编号开始发送下一个报文。lufei1108@yahoo.com.cn(a)无差错情况A发送M1确认M1B发送M2发送M3确认M2确认M3A发送M1B超时重传M1发送M2确认M1丢弃有差错的报文(b)超时重传tttt第三节TCP协议1、TCP协议中的差错控制停止等待协议lufei1108@yahoo.com.cn请注意在发送完一个分组后,必须暂时保留已发送的分组的副本。分组和确认分组都必须进行编号。超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。第三节TCP协议1、TCP协议中的差错控制lufei1108@yahoo.com.cnA发送M1B超时重传M1发送M2丢弃重复的M1重传确认M1(a)确认丢失确认M1A发送M1B超时重传M1发送M2丢弃重复的M1重传确认M1(b)确认迟到确认M1收下迟到的确认但什么也不做tttt第三节TCP协议1、TCP协议中的差错控制lufei1108@yahoo.com.cn使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。这种可靠传输协议常称为自动重传请求ARQ(AutomaticRepeatreQuest)。ARQ表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组。第三节TCP协议1、TCP协议中的差错控制lufei1108@yahoo.com.cn信道利用率停止等待协议的优点是简单,但缺点是信道利用率太低。TDRTTATD+RTT+TABtt第三节TCP协议1、TCP协议中的差错控制lufei1108@yahoo.com.cn信道的利用率UADDTTTURTT第三节TCP协议1、TCP协议中的差错控制TDRTTATD+RTT+TABttlufei1108@yahoo.com.cn流水线传输发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。BttA第三节TCP协议1、TCP协议中的差错控制lufei1108@yahoo.com.cn流量控制接收窗口通告窗口发送窗口网络拥塞控制通告窗口拥塞控制窗口发送窗口第三节TCP协议2、TCP协议中的流量与网络拥塞控制lufei1108@yahoo.com.cn一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。流量控制(flowcontrol)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。利用滑动窗口机制可以很方便地在TCP连接上实现流量控制。第三节TCP协议2、TCP协议中的流量与网络拥塞控制lufei1108@yahoo.com.cn123456789101112(a)发送方维持发送窗口(发送窗口是5)发送窗口(b)收到一个确认后发送窗口向前滑动向前123456789101112发送窗口第三节TCP协议2、TCP协议中的流量与网络拥塞控制滑动窗口技术lufei1108@yahoo.com.cn例程:以字节为单位的滑动窗口前移不允许发送已发送并收到确认A的发送窗口=20允许发送的序号26272829303132333435363738394041424344454647484950515253545556B期望收到的序号前沿后沿前移收缩根据B给出的窗口值A构造出自己的发送窗口TCP标准强烈不赞成发送窗口前沿向后收缩lufei1108@yahoo.com.cn不允许发送已发送并收到确认A的发送窗口位置不变允许发送但尚未发送262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3不允许接收已发送确认并交付主机B的接收窗口允许接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口A发送了11个字节的数据P3–P1=A的发送窗口(又称为通知窗口)P2–P1=已发送但尚未收到确认的字节数P3–P2=允许发送但尚未发送的字节数(又称为可用窗口)lufei1108@yahoo.com.cn允许发送但尚未发送A的发送窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送并收到确认不允许发送已发送但未收到确认56P1P2P3允许接收B的接收窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送确认并交付主机不允许接收56未按序收到A收到新的确认号,发送窗口向前滑动先存下,等待缺少的数据的到达lufei1108@yahoo.com.cn不允许发送已发送并收到确认A的发送窗口已满,有效窗口为零262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3A的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。lufei1108@yahoo.com.cn需要强调三点A的发送窗口并不总是和B的接收窗口一样大(因为有一定的时间滞后)。TCP标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP要求接收方必须有累积确认的功能,这样可以减小传输开销。第三节TCP协议2、TCP协议中的流量与网络拥塞控制lufei1108@yahoo.com.cn在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。出现资源拥塞的条件:对资源需求的总和可用资源若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。第三节TCP协议3、TCP协议中的拥塞控制的一般原理lufei1108@yahoo.com.cn拥塞控制与流量控制的关系拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。第三节TCP协议3、TCP协议中的拥塞控制的一般原理lufei1108@yahoo.com.cn提供的负载吞吐量理想的拥塞控制实际的拥塞控制0死锁(吞吐量=0)无拥塞控制拥塞轻度拥塞第三节TCP协议3、TCP协议中的拥塞控制的一般原理lufei1108@yahoo.com.cn拥塞控制是很难设计的,因为它是一个动态的(而不是静态的)问题。当前网络