{'fraction_non_alphanumeric': 0.029142381348875937, 'fraction_numerical': 0.0033305578684429643, 'mean_word_length': 4.863414634146341, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
The End-to-End Argument and Application Design: The Role of Trust

The end-to-end argument was first put forward in the early 1980s as a core design principle of the Internet. The argument, as framed then, remains relevant and powerful: the fundamental architecture of the Internet endures, despite change in both underlying technologies and in applications. Nevertheless, the evolution of the Internet also shows the limits of foresight, and we now see that the Internet, the applications that run on top of the Internet, and the interpretation of the end-to-end argument itself have all greatly evolved.This paper concerns the evolution in thinking around the end-to-end argument, the design principles for modern Internet applications, and what the end-to-end argument has to do with application structure. We argue that while the literal reading of the early end-to-end argument does not directly offer guidance about the design of distributed applications and network services, there is a useful interpretation of the end-to-end argument that both informs the thinking about application design, and gives as well a perspective on the end-to-end argument in general that is valid in today’s world.