1、End-To-End Arguments in System Design,谢柯 SY1106723,What is End-To-End Argument,在网络环境下,功能的实现应该放到哪一个层次上? 通信子系统(The communication subsystem) 客户端(The Client) 联合实现(As a joint venture) 独立实现(Redundantly each doing its own version) 反对功能在下层实现,被称为“End-To-End Argument”,文件传输的例子,计算机A,计算机B,从计算机A磁盘上读取文件传送到计算机B的磁盘上
2、 传输过程中可能出现什么问题呢?,文件传输过程中可能出现的问题,1. 由于硬件错误可能出现的文件读取错误问题。 2. 文件系统,传输程序,以及通信系统在文件数据拷贝过程中可能会出现问题。 3. 处理器或者内存在拷贝、缓存的时候可能出现暂时错误问题。 4. 通信系统在传输过程中数据包可能出现位错误,丢包或者包传输多次的问题。 5. 在传输过程中主机可能出现崩溃问题。,解决方案,通过副本拷贝,超时重传,信息冗余,崩溃恢复解决以上问题 由于并不是所有的程序都能保证完全正确的,所以第2个威胁仍然不能解除 考虑到以上这些威胁真正发生的概率可能很小,那么采取上面列出的方法就不实用了,端到端检查和重传,如果
3、在底层保证可靠信息传输,那么第4个威胁就可消除了,但是其他的威胁仍然需要高层文件传输程序来解决。 在发送端A,发送文件数据和checksum,在接收端B,接受并写入数据,然后B读出文件数据,将checksum这个值发送给A,在A端若这个值与原来的值相同则整个传输结束,否则重传文件,性能分析,然而并不能简单地下结论说底层在数据可靠传输中就不应该起作用。在一些并不是很可靠地网络环境中,在底层做一些可靠传输的工作就能使整体性能有很大的提升。 关键的问题在于底层并不需要提供绝对的可靠传输。 通过性能的分析来决定在底层实现功能还是在应用程序中实现,最终使整个系统有比较好的整体性能。,其他例子,交付保证(
4、Delivery guarantees) 数据的安全传输(Secure transmission of data) 重复信息过滤(Duplicate message suppression) FIFO信息交付顺序的保证(Guaranteeing FIFO message delivery) 事务管理(Transaction management),Identifying the ends,考虑一个传输声音的功能。 如果端节点是人的话,那么这时传输数据需要先考虑实时性,而后再是正确性。可以容忍传输过程中的包损坏,噪音干扰。(端到端方式) 如果端节点是录音程序的话那么应该先考虑正确性,而后再考虑实时性,可以容忍延迟,不能容忍包损坏错误。(底层实现可靠性) 所以,端到端方式并不是绝对准则,而仅仅是帮助程序和协议设计分析的方法。,Conclusions,端到端方式在其他系统领域中的应用 RISC体系结构 Open operating system 端到端方式应该看作组织分层体系的一系列原则的一部分。,Thank you.,