1、15:12:0812lThe task of the transport layer:To provide efficient,reliable,cost-effective data transport from source machine to the destination machine345l最终目标为用户(应用进程)提供有效、可靠、价格合理的服务网络层、传输层和应用层l传输服务类型:面向连接,三个阶段:建立连接、数据传输和释放连接无连接lOSI模型划分为2大部分:1-4层:传输服务提供者(Transport service provider)5-7层:传输服务用户(Transpo
2、rt service user)6传输服务与网络服务的区别 网络服务不太可靠,而面向连接的传输服务则是可靠的 服务对象不同 网络层的数据交换比传输层复杂的多一个简单传输服务的原语:7传输协议数据TPDUTPDU,分组和帧的嵌套:8A state diagram for a simple connection management scheme.Transitions labeled in italics are caused by packet arrivals.The solid lines show the clients state sequence.The dashed lines s
3、how the servers state sequence.Disconnection Asymmetric Symmetric9106-6-111121314l与数据链路层的差异与数据链路层的差异两者都要解决:差错控制、分组顺序、流量控制等问题路由、目的地址连接建立过程子网的存储能力(数据缓冲、流量控制)数量上的差别15Ports:end pointsTSAP:Transport Service Access PointNSAP:16lName Server(Directory Server):用于查找TSAP地址l地址空间层次型地址地址=如:+86,571,7952114平面型地址通过二
4、级映射(如 DNS服务器)来定位机器1718l一个复杂的过程一个复杂的过程:延迟的重复分组的干扰l解决方法:废弃使用过的传输地址给每个连接分配一个连接标识符l缺陷:每个传输实体长时间保存历史信息。如果系统崩溃,将造成信息丢失l改进技术,删除在子网中“徘徊”的过时分组:将分组的生命周期限制在一个已知的最大值内:受限制的子网设计在每个分组内设计一个站段计数器为每个分组加上时间标记1920Three protocol scenarios for establishing a connection using a three-way handshake.CR denotes CONNECTION RE
5、QUEST.(a)Normal operation,(b)Old CONNECTION REQUEST appearing out of nowhere.(c)Duplicate CONNECTION REQUEST and duplicate ACK.21 终止连接的两种方法:终止连接的两种方法:非对称释放-可能导致丢失数据-see fig 6-12对称释放 适用于固定数量的数据发送,且知道何时完毕2223 实际应用,三次握手-see fig 6-14并非绝对无误,但却令人满意三次握手的不足:第一个DR和所有N次的重发,最终造成半连通半连通的连接 协议失败消除半连通的办法消除半连通的办法:在
6、一段时间内没有受到任何TPDU,便自动释放连接246-14,a,b2526l考虑连接在使用过程中的管理问题l通过滑动窗口和其它机制l数据缓冲的方法:-see fig 6-15固定大小可变大小循环缓冲区l另一个可能的瓶颈:子网的运载容量27(a)Chained fixed-size buffers.(b)Chained variable-sized buffers.(c)One large circular buffer per connection.282930l从网络和路由器中恢复如果网络层提供数据报服务,传输实体留有丢失的TPDU的副本如果网络层提供面向连接的服务,重建新的虚电路,重发丢失
7、的TPDUl从主机或服务器崩溃中恢复,存在着复杂的问题-see fig 6-18l结论:从第N层崩溃中恢复只能由第N+1层来完成,并且只能由第N+1层留有足够状态信息的情况下才能完成313233l5条原语Connum=LISTEN(local)Connum=CONNECT(local,remote)Status=SEND(connum,buffer,bytes)Status=RECEIVE(connum,buffer,bytes)Status=DISCONNECT(connum)34 选用面向连接的网络服务 与网络层的接口:to_net 和 from_net 网络层分组类型-see fig 6
8、-19 网络层通过 enable_transport_layer 和 disable_transport_layer控制传输层对其调用353637383940信用报文 (Credit Message)41424344The example protocol as a finite state machine.Each entry has an optional predicate,an optional action,and the new state.The tilde indicates that no major action is taken.An overbar above a pr
9、edicate indicate the negation of the predicate.Blank entries correspond to impossible or invalid events.45The example protocol in graphical form.Transitions that leave the connection state unchanged have been omitted for simplicity.4647无连接的传输协议无连接的传输协议UDP(User Data Protocol)UDP(User Data Protocol)发送
10、封装的原始发送封装的原始IPIP数据报数据报发送时无需建立连接发送时无需建立连接UDPUDP数据段包括:数据段包括:8 8字节头字节头+数据部分数据部分头格式头格式-see fig 6-23see fig 6-23 484950515253545556PortProtocolUse21FTPFile transfer23TelnetRemote login25SMTPE-mail69TFTPTrivial File Transfer Protocol79FingerLookup info about a user80HTTPWorld Wide Web110POP-3Remote e-mail
11、 access119NNTPUSENET news575859606162636-316465666768TCP connection management finite state machine.The heavy solid line is the normal path for a client.The heavy dashed line is the normal path for a server.The light lines are unusual events.Each transition is labeled by the event causing it and the
12、 action resulting from it,separated by a slash.(event/action)69Event/Action(Comments)Event:a user initiated system call(CONNECT,LISTEN,SEND,or CLOSE)A segment arrival(SYN,FIN,ACK,or RST)A timeout of twice the maximum packet lifetimeAction:The sending of a control segment(SYN,FIN,or RST)Nothing(indic
13、ated by“-”)70n分析分析:u沿客户端的路径沿客户端的路径(粗实线粗实线)1.客户端应用发出客户端应用发出CONNECT请求请求,本地本地TCP实体创建一个连接记录实体创建一个连接记录,然后然后发送发送SYN数据段到服务器端数据段到服务器端 CONNECT/SYN(第一次握手第一次握手),并标记为并标记为SYN SENT状态状态2.当当SYN+ACK(SYN=1,ACK=1)数据段到达后数据段到达后,TCP实体发出最后一个实体发出最后一个ACK数据段数据段SYN+ACK/ACK(第三次握手第三次握手),状态进入状态进入ESTABLISHED.现在可开始数据发送和接收了现在可开始数据发
14、送和接收了.3.完成数据收发任务后完成数据收发任务后,客户端执行客户端执行CLOSE原语原语,使当地使当地TCP实体发送出实体发送出FIN数据段数据段CLOSE/FIN,并等待相应的并等待相应的ACK数据段数据段(主动关闭主动关闭),进入进入FIN WAIT1状态状态4.ACK到达后到达后ACK/-,转移到转移到FIN WAIT2状态状态,连接在一个方向上断开了连接在一个方向上断开了.5.另一方面也需要断开连接时另一方面也需要断开连接时,会发出会发出FIN数据段数据段,并得并得ACK确认确认FIN/ACK.现在双方均已断开连接现在双方均已断开连接.6.TCP需要等待一个最大的分组生命期需要等待
15、一个最大的分组生命期,确保该连接的所有分组全部消失确保该连接的所有分组全部消失(TIMED WAIT),防止出现确认丢失防止出现确认丢失,此时已没有任何此时已没有任何Event/Action了了-/-7.当定时器超时后当定时器超时后,进入进入CLOSED状态状态,TCP删除该连接记录删除该连接记录,回到起始回到起始71n分析分析:u沿服务端的路径沿服务端的路径(粗虚线粗虚线)1.服务器执行服务器执行LISTEN原语原语,并等待连接请求到来并等待连接请求到来LISTEN/-.状状态态:LISTEN2.一个一个SYN数据段到达后数据段到达后,将被确认将被确认 SYN/SYN+ACK(第二次握手第二
16、次握手),并且服务器进入并且服务器进入SYN REVD状态状态3.当服务器发出的当服务器发出的SYN也被确认也被确认ACK/-后后,三次握手便完成了三次握手便完成了,服务服务器进入器进入ESTABLISHED状态状态,现在可开始数据发送和接收了现在可开始数据发送和接收了.4.客户端完成数据发送任务后客户端完成数据发送任务后,执行执行CLOSE原语原语,发送一个发送一个FIN数据段数据段到达服务器端到达服务器端.(被动关闭被动关闭).服务器给出响应服务器给出响应FIN/ACK后后,便进入便进入CLOSE WAIT状态状态.5.服务器也执行服务器也执行CLOSE原语原语,向客户端发出一个向客户端发出一个FIN CLOSE/FIN,进入进入LAST ACK状态状态6.收到客户端的确认后收到客户端的确认后ACK/-,服务期便释放该连接服务期便释放该连接,进入进入CLSOED状态状态,删除连接记录删除连接记录7273solve the problemsender a byte at a time7475767778798081828384858687888990919293949596979899100101102103104105