Jim's
Tutorials

Spring 2011
course
navigation

journal-20-4-11

I read about Address Resolution Protocol. It seems a little insecure. What if a computer just said "Oh that's me" to every ARP request?
I also looked into tunneling a bit more. I think its working but I'm a little fuzzy on which port number means what and don't know how to tell if it's working.
I looked at nmap a bit. Its interesting how automated these things are. It seems like it would be easy for a TCP implementation to log such attacks by noticing the characteristic packets.
I was thinking about a final project and I think playing with Twisted would be fun.

More Realistic Selective Acknowledgement Example

Last week I tried fleshing out an idea I had about how to mimic Selective Acknowledgement using window sizes. I don't think it works as well as I hoped because I was using unrealistic numbers. To get a better sense I'm using numbers taken from the example packet trace here. I didn't copy the trace packet for packet because there were no packets dropped and it therefore wouldn't be useful. Rather I used the numbers as guidelines for my example. The Seq/Ack numbers are relative to make them easier to read but other than that they should be acurrate.
1 Alice: Sequence number: 0 Acknowledgement number: N/A Header length: 40 bytes SYN Window Size: 32768 bytes Options: (20 bytes) Maximum segment size: 1460 bytes 2 Bob: Sequence number: 0 Acknowledgement number: 0 Header length: 40 bytes SYN ACK Window Size: 32120 Options: (20 bytes) Maximum segment size: 1460 bytes 3 Alice: Sequence number: 1 Acknowledgement number: 1 Header length: 32 bytes ACK Window Size: 33304 4 Alice: Sequence number: 1 Acknowledgement number: 1 Header length: 32 bytes ACK Window Size: 33304 1428 bytes of data 5 Alice: Sequence number: 1429 Acknowledgement number: 1 Header length: 32 bytes ACK Window Size: 33304 1428 bytes of data 6 Alice: Sequence number: 2857 Acknowledgement number: 1 Header length: 32 bytes ACK Window Size: 33304 1428 bytes of data 7 Alice: Sequence number: 4285 Acknowledgement number: 1 Header length: 32 bytes ACK Window Size: 33304 1428 bytes of data
What happens at this point if Bob didn't receive Packet #5. Clearly if Selective Acknowledgement is turned on then he can send the following
8 Bob: Sequence number: 1 Acknowledgement number: 1429 Header length: 32 bytes ACK Window Size: 32152 Options: Selective Acknowledgement from 2857 to 5713
However if he can't then my alternative would be something like:
8 Bob: Sequence number: 1 Acknowledgement number: 1429 Header length: 32 bytes ACK Window Size: 1428
This would cause Alice to return just the missing data but at quite a cost. Alice couldn't start sending data from 5713 on until she had received packet 8, sent packet 9 and then received packet 10. That's 1.5 round trips. This might be useful in an application where the application layer messages that were being exchanged rarely exceeded the 1440 byte maximum for one packet and thus the TCP stream was basically already going this slow (perhaps a simple instant messaging app). However for any application that might, for example, need to send large files (e.g. several megabytes) this would be totally impractical.
http://cs.marlboro.edu/ courses/ spring2011/jims_tutorials/ sam/ journal-20-4-11
last modified Friday April 22 2011 11:24 am EDT