资源描述
传输协议(传输协议(TCP)l是协议栈中单独的一层l概念上处于应用层和IP层的中间2024/6/281术语术语lIP提供计算机到计算机间的通信服务源和目的地址都是计算机称为 machine-to-machine的通信lTransport Protocols提供应用程序到应用程序间的通信服务需要扩展寻址机制来识别应用程序称为 end-to-end 的通信2024/6/282传输协议的功能传输协议的功能l识别发送和接收应用程序l可选的提供如下服务可靠性流控制阻塞控制l注意:不是所有的传输协议都能提供以上的功能l“可靠”的语义:数据在传输时不丢失、不乱序、不被复制。不同于“安全”。2024/6/283两种主要的传输协议两种主要的传输协议 l传输控制协议(TCP)l用户数据报协议(UDP)l主要不同处应用程序接口不同功能不同2024/6/284用户数据报协议用户数据报协议(User Datagram Protocol,UDP)l提供不可靠(unreliable)传输服务不可靠:意味服务时可能会有丢包、坏包等情况发生,UDP不对此负责。l只需最少的额外负荷计算量通讯量l适用于:局域网应用程序2024/6/285UDP detailsl采用无连接服务模式面向消息的服务接口l每条消息被封装到IP数据包中lUDP 报头中标记了发送程序接收程序2024/6/286标示应用程序标示应用程序l不能扩展IP地址已经没有不用的位l不能使用依赖于操作系统的东西Process IDTask numberJob namel必须适用于所有的计算机系统2024/6/287标示应用程序标示应用程序(续续)l创造新的抽象只用于 TCP/IP协议栈明确区分和标示发送者和接收者l方法:为每一个应用程序分配唯一的整数标识称为 protocol port number2024/6/288协议端口协议端口l服务器按标准使用端口总是使用相同的端口号使用低端口号l客户端从协议软件得到不用的端口使用高端口号如何查看服务器上有哪些端口可供使用?2024/6/289协议端口范例协议端口范例l53号端口被指派用来服务于域名服务程序DNSl使用DNS的应用程序得到端口28900lUDP 数据包从应用程序发送到DNS服务器有源端口28900目的端口 53l当DNS服务器做出应答,数据处理后数据包有源端口 53目的端口 289002024/6/2810传输控制协议传输控制协议(TCP)l英特网使用的主要传输协议l广泛地使用l提供完全可靠的传输服务应用程序不必担心IP包的复制、丢失等问题2024/6/2811TCP 特特点点l面向连接的服务l点对点l全双工通信l流接口:应用程序通过它发送持续的字节序列。l流分解成segmentsl每个segment被封装在IP数据包中传输l使用协议端口来识别应用程序2024/6/2812TCP 特特点总结点总结TCP provides a completely reliable(no data duplication or loss),connection-oriented,full-duplex stream transport service that allows two application programs to form a connection,send data in either direction,and then terminate the connectionTCP 提供完全可靠的(无数据被复制或丢失),面向连接的,全双工流式传输服务,允许两个应用程序建立一个连接,双向传输数据,然后结束这一连接。每一个TCP连接均可可靠的开始、优雅地结束,所以数据在连接关闭前均可被可靠的传输。2024/6/2813TCP和其他协议之间的关联和其他协议之间的关联l一台计算机上的TCP实体使用IP和另外一台计算机上的TCP实体进行通讯.2024/6/2814明显的矛盾明显的矛盾lIP提供不可靠的尽力传输服务lTCP 使用IPl而TCP 提供完全可靠的传输l这怎么可能?l系统重启后,如何区分上一个连接的数据包?2024/6/2815达达成成可靠性可靠性l可靠的连接启动l可靠的数据传输l完美的连接关闭2024/6/2816可靠数据传输可靠数据传输l确认 当数据到达时候,接收者返回短消息称为 acknowledgmentl重发消息一发送,发送者起动计时器如果在确认消息到达前计时器终止,发送者将重发消息2024/6/2817重传重传图解图解2024/6/2818在在重传重传前前TCP会等多久会等多久?l确认信息到达的时间依赖于与目的地的距离lLAN:几毫秒l卫星?当前的流量条件l可能同时打开多个连接l流量条件可能迅速改变2024/6/2819要点要点数据到达目的地以及返回确认所需要的延迟依赖于网络上流量和离目的地的距离.因为TCP允许多应用程序和多个目的地进行并发通讯,导致流量状况的不断变化,因此TCP必须处理迅速变化的多种不同延迟.2024/6/2820解决重传问题解决重传问题lTCP发明以前,重传延迟使用固定值往往较大。显然不好l最好能根据不断变化的条件而改变检测并估计每个连接的往返时间使用当前的估计来设置重发计时器称为;自适应重传lTCP成功的关键2024/6/2821自适应重传的图解自适应重传的图解l延时(空闲时间)依赖于对当前回路的估计2024/6/2822TCP 流控制流控制l接收者宣告可用的缓冲区大小称为 windowl发送者在确认信息到达前可以发出整个窗口大小的内容2024/6/2823窗口宣告窗口宣告l每个确认信息都包含了新窗口信息称为 window advertisement可以为0(称为 closed window)l解释:我已经收到x了,你还可以发y字节的数据.2024/6/2824Illustration of Window Advertisement2024/6/2825连接启动和关闭连接启动和关闭l连接启动必须为可靠的l连接关闭必须为完美的l难2024/6/2826为什么启动和关闭连接困难为什么启动和关闭连接困难l分段可能被丢失复制延迟无顺序的递送任一方程序可以崩溃任一方程序可以被重新启动l需要避免重复的“shut down”消息影响后面的连接2024/6/2827TCP 启动启动/关闭连接问题的解决关闭连接问题的解决l使用三次消息交换l称为3次握手协议l是明确、可靠的启动和明确、完美的关闭连接的必要和充分条件l采用两个特殊的分段SYN 用于启动连接FIN 用于关闭每次新连接,均采用一个新的32位随机数保证每一旧数据包干扰新连接。2024/6/2828用于关闭连接的用于关闭连接的3次握手次握手在每个方向上发送的确认用于保证所有的数据在连接关闭前均已到达2024/6/2829TCP 数据段格式数据段格式l所有的TCP有相同的格式数据确认信息SYN(启动)FIN(关闭)l数据段分为两部分报头有效负载(0或多于0字节的数据)2024/6/2830TCP数据段格式数据段格式(续续)l报头包含协议端口号,用来识别l发送端应用l接收端应用指明消息类型的位标记,比如lSYNlFINlACK用于窗口宣告,确认信息等的域.2024/6/2831TCP数据段数据段l序列号SEQUENCE NUMBER用于指明数据在在流中什么位置l很少数据段包含OPTIONS2024/6/2832SUMMARYl传输协议处于应用层协议和网际协议之间lTCP/IP包含两种传输协议用户数据报协议(UDP)传输控制协议(TCP)lUDP不可靠的面向消息的接口2024/6/2833SUMMARY(续续)lTCP英特网上使用的主要传输协议完全可靠的面向流的接口使用自适应重传机制2024/6/2834SUMMARY(续续)l协议端口整数用于识别发送和接收应用允许多应用明确的,并发的通讯2024/6/2835谢谢!
展开阅读全文