I figured out something about myself today. When someone says something is difficult, I have a harder time doing it because I slow down and become more error prone. However, when I receive no warning of the difficulty of a problem, I usually solve it methodically or with a flash of insight.
During the midterm in networking, I solved the now infamously difficult packet dialation question, which was never directly covered in the course, perfectly. The grader even wrote "Excellent!" on my paper.
During the final for the same class, the teacher told us that number 2 was a doozy. I saved it for last and carefully solved it... twice, and checked my answers between the two versions. I spent over an hour methodically fact checking my assumptions and modifying my answer to fit what I knew about TCP from the RFC.
Well, in the shower a few minutes ago, I realized I completely mis-guessed some of the guidelines stated in the RFC...
I also ended up doing slow start instead of additive increase even when I DREW A GRAPH (which was correct) to help me step through all the events during packet loss.
But that's not all, I also assumed that buffered packets (on the receiver's end) would allow the nextByteExpected pointer to jump over contigous already-received segments of data... although I don't know if that assumption contributed to making my answer wrong.
I thought I was going to get an A in that class too. Ughhhhhhh!!
Update, I got an A-.