Properly generate ISNs, properly handle case where socket does not read all received data, set timeout for synack, modified timeout code
Merged with Neeraj's changes