Expectational acknowledgement is a simple way for two computers to keep track of what needs to be sent when exchanging packets. Since most transfers are of files which consist of many packets, the recieving computer needs to be able to reassemble the file after all of it has been sent. When a packet is sent, one of it's fields is a sequence number. This number tells the recieving computer where in the file the packet goes after it has been recieved. A simple transfer with expectational acknowledgement goes something like this:

Computer 1: send seq 1     (I'm sending packet 1)
Computer 2: recieve seq 1  (I just got packet 1)
Computer 2: send ack 2     (Ok, I got 1, send 2)
Computer 1: recieve ack 2  (Ok, looks like he needs packet 2)
Computer 1: send seq 2     (I'm sending packet 2)

This method allows for dropped packets to be retransmitted without unneccesary difficulty. The sender simply waits a certain amount of time, and resends if it doesn't get an ACK.