protocol and timeout calculation DONE