A reliable data transfer protocol implementation using UDP sockets, we implemented two modes, mode1: stop and wait, mode2: selective reapet