Хоть вы меня за яйца подвесьте, но в сетевых протоколах² самое сложное -- грамотное завершение соединения, а в хранилищах данных -- грамотное восстановление после падения¹. Остальное -- выполнение собственно задач протокола/хранилища и обеспечение корректности завершения/восстановления -- поровну.
¹ -- интересно, есть ли глубокое философское объяснение подобной "дуальности" (завершение соединения vs начало работы с хранилищем).
² -- кроме udp.
@anonymous зіс