|
|
|
|
Homework 4
Out: Wednesday February 18
Due: Wednesday February 25, 11:59PM
Turnin: Online
You might reasonably wonder how you can be expected to answer
this question. It shouldn't involve any programming, or any reading of code.
These resources might be useful, though:
- The Wikipedia STUN entry
has an overview of STUN, and links to more detailed information, if needed
- Most usefully, it has a jumbo colored flowchart
- You can obtain jstun and run it
yourself. Trying that on a home machine might be interesting.
- If you want to run it on
attu , say:
$ java -jar /cse/courses/cse461/09wi/jstun-0.7.1.jar
The log file will be created as logging.txt .
Here is a (slightly edited) trace from a jstun run.
Feb 16, 2009 10:33:04 AM de.javawi.jstun.test.DiscoveryTest test1
FINER: Test 1: Binding Request sent.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.header.MessageHeader parseHeader
FINER: Binding Response received.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.attribute.MappedAddress parse
FINER: Message Attribute: Mapped Address parsed: Address 72.244.204.235, Port 52598.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.attribute.SourceAddress parse
FINER: Message Attribute: Source Address parsed: Address 81.169.175.165, Port 3478.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.attribute.ChangedAddress parse
FINER: Message Attribute: Changed Address parsed: Address 85.214.94.119, Port 3479.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.test.DiscoveryTest test1
Feb 16, 2009 10:33:05 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:05 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:06 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:06 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:07 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:07 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:09 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:09 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:10 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:10 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:12 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:12 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:14 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response.
Feb 16, 2009 10:33:14 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Binding Request sent.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.test.DiscoveryTest test2
FINER: Test 2: Socket timeout while receiving the response. Maximum retry limit exceed. Give up.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.test.DiscoveryTest test1Redo
FINER: Test 1 redo with changed address: Binding Request sent.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.header.MessageHeader parseHeader
FINER: Binding Response received.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.attribute.MappedAddress parse
FINER: Message Attribute: Mapped Address parsed: Address 72.244.204.235, Port 52598.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.attribute.SourceAddress parse
FINER: Message Attribute: Source Address parsed: Address 85.214.94.119, Port 3479.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.attribute.ChangedAddress parse
FINER: Message Attribute: Changed Address parsed: Address 81.169.175.165, Port 3478.
Feb 16, 2009 10:33:15 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:16 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:16 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:16 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:16 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:18 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:18 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:19 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:19 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:21 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:21 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:23 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:23 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:24 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response.
Feb 16, 2009 10:33:24 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Binding Request sent.
Feb 16, 2009 10:33:26 AM de.javawi.jstun.test.DiscoveryTest test3
FINER: Test 3: Socket timeout while receiving the response. Maximum retry limit exceed. Give up.
- What kind of NAT'ing, if any, is there between the host on which
this run was made and the Internet? Very briefly explain.
-
Based on the kind of NAT, does it appear possible for this host to communicate
directly with another NAT'ed host (on a different network)? Very briefly explain.
- A NAT must eventually remove mappings from public (external) ports to
private network addresses (the IP and port on the private side of the NAT).
One way to do this is by timeout.
Consider the timeout-based approach. How would it work? What would be good
about it? What would be bad?
-
The man on the street "knows" that there are two kinds of IP addresses,
static and dynamic, and thinks that if a machine has a dynamic address it
may change from time to time (while a static one will not).
In fact, addresses assigned dynamically, though DHCP, may not change - DHCP
can be set up so
that a machine is guaranteed to get the same IP address every time it
boots.
Why would you want to (a) have the same address every time the machine
obtains an address,
but (b) at the same time want to assign the address dynamically
(i.e., using DHCP)?
(Note: most, perhaps all, CSE machines are operated this way.)
|