The gcc compiler complains about the use of exit() in the code.
Change exit() to exit(0) if this is a problem.
The compiler complains about the use of the time variable in your code.
Some compilers will do this. You can change the name of the emulator's time variable to simtime or something like that.
My timer doesn't work. Sometimes it times out immediately after I set it (without waiting), other times, it does not time out at the right time. What's up?
The most common timer problem is that students call the timer routine and pass it an integer time value (wrong), instead of a double (as specified). 
You say that we can access your time variable for diagnostics, but it seems that accessing it in managing our timer interrupt list would also be useful. Can we use time for this purpose?
Yes.
Why is there a timer on the B side?
This is there in case you want to implement bi-directional data transfer, in which case you would want a timer for the B->A data path.
How concerned does our code need to be with synchronizing the sequence numbers between A and B sides? Does our B side code assume that Connection Establishment (three-way handshake) has already taken place, establishing the first packet sequence number ? In other words can we just assume that the first packet should always have a certain sequence number? Can we pick that number arbitrarily?
You can assume that the three way handshake has already taken place. You can hard-code an initial sequence number into your sender and receiver.
When I submitted my assignment I could not get a proper output because the program core dumped..... I could not figure out why I was getting a segmentation fault so ....
Offhand I'm not sure whether this applies to your code, but it seems most of the problems with seg. faults on  this lab stemmed from programs that printed out char *'s without ensuring those pointed to null-terminated strings. (For example, the messages -- packet payloads -- supplied by the network emulator were not null-terminated) This is a classic difficulty that trips up many programmers who've recently moved to C from a more safe language.
I am using Java and I am getting type warnings...
The version of Java on our csa2/csa3 clusters is Java 1.8. There are some new features introduced by Java 1.8. The one you should be aware of is that Java 1.8 adds type checking for Vectors. For instance, if you want to use Vector p to store Integer objects, in previous versions you should write Vector p = new Vector(). But in Java 1.8, to avoid warnings, you should write Vector<Integer> p = new Vector<Integer>().