• IP addresses as unreliable geography


  • Minimize clients
  • Control in the buffer
  • Slowest speed can be really slow

Thing you are designing has a few different states

  • Separate loops
  • Jump between the different states using loops

Within the states
Start with local - what messages needed?

  • What feedback will I need/lose first?

Functions for what I want to do

  • Disconnect - Off
    • Turns connected loop off
  • Connect - On
    • Turns connected loop on, then switches between the states

One loop while connected
One loop while not connected

Multiple states

  • status "switch" statement

Downsides to knowing if controls are working

  • User needs to know if user is listening to me ON/OFF LED
  • Bridge socket while running/listening for serial

Change client to telnet calls

  • phys i/o separate from Network i/o

Last button

  • Don't send for longer time or shorter than 80 milliseconds

Analog pins as digital outputs

  • Keep track of time
  • Look for changes in the button
    • left/right
    • x/y sensor
    • timing on sensor
  • Is local variable a long
  • Millis in first

What you care about--LED monitor on Arduino or Processing

  • PC client
    • Button - PC client - Connection!
  • What am I reporting to the user?

Doesn't have to do a loop
But, status is almost all: Local/Intermediate/Remote

PETCUBE Example & Critique
[Remote video/laser control device aimed at cat owners who wish to view, communicate with, and play with, their cats remotely]

  • Tele-epistemology?
  • Is it real enough to inspire action?

Potential problems

  • Network lag
  • Interaction should be reliable enough to encourage "belief"
  • "Ownership" should be based on uniqueness not just proximity.
  • Many experiences do not scale

Importance of engagement and feedback on engagement for user and all those communicating within the network(s).

Adam's - Pi and python-based controller.
Tom later moved through this code and emphasized the points below, along with further details I did not capture:

  • Emphasis on clean coding--structuring code so that it is easily understood and easy to update.
  • Sectioning by function--call/response, etc.

Entertainment controllers:
Sam's - Marionette controller:

  • Cross structure with contacts on four ends--Pair controls x/other pair controls y for movement.
    • What happens when all four contacts are met at the same time? Problem!

Natasha's - Mini-drum controller

Physical Fitness controllers: Ting's - Situp controller:

  • Situp executed on molded foam mini-chaise controls game piece movement

Rios's - "Hula/Bootie" controller

  • Hip motion sensing through braided rope controls game piece movement

Brief history of Internet

  • Late 1960s - ARPANET created via consortium of UCLA, UCSB, SRI, UofUtah; use of IMPs (interface minicomputers)
  • Mid 1970s - Moves to control of US Defense Dept. in 70s.
  • 1980s - Build-out of the Internet backbone; Top-level domains and country domains established.
  • 1991--beginning of commercial use Internet

IETF - 1986- Internet Engineering Task Force - "Just a list"

  • Run entirely by discussion and consensus. Annual meeting/informal group

ISOC - The Internet Society Formal Representation for the less-formal bodies contained within it.

  • These organizations are made up of many working groups and committees.
  • Large, non-profit, consensus-based confederation of working groups set up to review, establish and enforce Internet standards and protocols

Under ISOC, now: IETF and IESG, the Internet Engineering Steering Group, which oversees IETF.
In theory, anyone can join. In actuality, the top committees contain powerful people from industry, as well as academics and scientists.
RFC's - Requests for Comments:

  • Primary means of submitting ideas and new suggestions/innovations/protocols to the governing bodies/working groups.
  • Reviewed by the RFC Editor and are discussed via email lists.

ISOC - IESG - IETF (near-term protocols)

  • Longer-term items roll to the Internet Research Task Force (IRTF), which has its own steering group.
  • Anyone ? can join.
  • Steering group is made up of those active in the discussion?

IAB - Internet Architecture Board - Overall large group. (Now not-for-profit corp in DC)

  • Originally the advising board for DARPA.
    • Mostly migrated now from DARPA to ISOC.
  • Physical-layer protocols "Best practice protocols"
    • Criticism regarding tampering with these in the form of myriad "backdoors" on DARPA's watch in the initial build of countrywide networks.

ICANN - (Not-for-profit corp in Calif. & DC) Internet Corporation for Assigned Names and Numbers - Non-profit with same charge as IANA

  • 16 members - 2 year term?

IANA - Internet Assigned Numbers Authority - Original management of domain naming, now part of ICANN.

  • Implements recommendations in this sphere.
  • EX: Hires Verisign to run root server or 16 redundant root servers.

ISOC & ICANN engage in a lot of back and forth--great deal of cross-pollination\\

  • Additionally, 5 regional bodies
    • (Africa,--etc. what works in their regions-recommendations)
  • Another ex: Brazil--ISOC/ICANN moved offshore, with Brazil's discovery of bugging, Internet spying
  • The large companies involved in Internet and communications all participate in ISOC/ICANN discussion groups
    • Ex: Open wrt - Mesh protocols/controlling traffic through your site

(W3C, which some believed had a more primary role in Internet decision-making, is one of the working groups within IETF)

Related Books of Interest:

  • Future of Ideas - Lawrence Lessig
  • Captive Audience - Susan Crawford


"Ping" - Most basic

  • Does not work on Wi-Fi at NYU as it has been blocked to avoid Denial-of-Service attacks, and this may be true of Wi-Fi implementations as well.
  • Sends out ICMP (Internet Control Message Protocol) packet to ask if another is "alive"
  • Ping - [posix command (portable operating systems interface) => interoperability x-OS]
    • EX form: ping 10 IPAddress
    • This would try to send message to the named IP address
    • Roundtrip detail would appear at the end of the line

"Time to live" (TTL)

  • Does not go direct to the device unless you are directly connected to the device.
  • Ping used in denial of service attacks, as referenced above.

"Time to live" (revisited)

  • If ping an address on the same subnet it will take less time
  • If it goes through 15 hops, count down ensues
  • Default is 64 tries before your "request" times out.
  • No hop back - Does it hop back?
    • Sends ping with low time to live - gets it back - "time out" packet and who's the last one who got it.

QUESTION: "How do we know it's going to take the same route each time?"

"We don't - We'll see just a 'typical class'." A typical route of many that may be taken.
-> Internet's 19 degrees of separation

TTL from 34 >> 19 and get the improved time?

NO-Igoe: Just because there are 3 hops to Google doesn't mean you have reached the inner sanctum

Ping - no pass-along but rather a pattern of what's going on.

Traceroute -Interesting to check

  • Electric Imp
  • Manage network connections in browser - you do MACS - "do that"
    *"I thought Yahoo Pipes was good…."

Use "squirrel" like C (?) but not as good.\\ The stronger the mental modes to the client, but text still is the default
Temboo - Graphical means to check out


  • Web-based trace route

Host Trace:

  • Web-based, originating from server of host.
  • Start at their address

Proxy Trace:

  • Start with your machine, trace forward ???
  • Not necessarily going to be accurate, but see where it is going.


  • Run a bunch of trace routes from school and home
  • Look for patterns
  • Pick sites you look at each day
  • Are there common carriers?
    • Who? Major carriers?

Sometimes you will get "a blank" - You won't always get a reply.

Some servers/routers are set up to reject or block particular packets.

You may see **** after a server - Unlikely to be able to trace route it. But try again? Post findings on wiki.

In-class examples/attempts:

  • Using nslookup
      • multiple servers rejected
    • check "whois?" as well
    • You can also see granular info via Telco's information

Unfindable Servers:

  • How look into further?
  • Using a server HTTP or not?
  • The individual IP address
    • Default # of hops is 64 but different operating systems - different crawls

Keep trying till it gets to the max # of hops

Often sites load balance across multiple entities ("best practice" in many large orgs. today?)

Keep trying till it gets to the maximum # of hops.

Tools to use to build network maps and further investigation: