Tue Dec 30 2003, 21:28 PM
This script sends an one-second SpeakFreely audio sample ("This is a test of SpeakFreely") to the specified IP address, port 2074. Used codec is GSM, no encryption. Rich on quantization noise.
Local IP address by Java applet (reliable when available):
Local IP address java applet supplied from http://reglos.de/myaddress.
If it says "ERROR", I don't know why.
Local IP address by X-Forwarded-For:
External IP address by REMOTE_ADDR: echo($REMOTE_ADDR); ?>
This indicates how the server sees you. If this mismatches against the one detected by the applet, you may be behind NAT.
|127.0.0.1||Localhost. Local address of every machine. "Me".|
|255.255.255.255||Broadcast to all|
|10.*.*.*||LANs; indicates you are behind NAT|
|192.168.*.*||LANs; indicates you are behind NAT|
|172.(16-31).*.*||LANs; indicates you are behind NAT. Unusual range.|
|169.254.*.*||Assigned by Windows when DHCP unavailable. If you can access the Net, you are behind NAT.|
|224.239.*.*||Reserved for multicast, not used for LANs|
|240.255.*.*||Reserved by IANA|
connected into the Internet (or LAN, if the LAN uses TCP/IP - which in vast majority of cases is so). IP address can be imagined as a house number/address. The number itself is a 32-bit number, usually written down as a sequence of 4 8-bit numbers separated by dots; so no number is greater than 255.port number: Port number is the number of port on which a service is listening. Can be
imagined as the number of office door in the house specified by the IP address. The door may be locked (no service there), or open (and then there is a daemon sitting behind them, prepared to receive and handle the incoming connections as they trickle or pour in). By requesting a service, you have to specify both IP address and port number; when you don't specify the latter, it's usually implicitly specified as the default for the given service you want: 80 for HTTP (web), 2074 for SpeakFreely, 22 for SSH, 21 for FTP, 53 for DNS. Assignment between service and port is completely arbitrary, however The port number works together with the protocol; a service on TCP port X can be something entirely different than service on the same port number but UDP.protocol: Protocol is the class of connection requested. The most common protocols are:
|IP||Internet Protocol - the protocol for internet connection. Parent of all following ones.
Serves to get the packets of the following protocols where they belong. Doesn't do any kind of checking, as it's the duty of the higher-level protocols it's parent of.
|TCP||Transmission Control Protocol - for services where reliable delivery of data is needed. Doesn't lose data, but has higher delays than UDP. Used by vast majority of services - HTTP (web), SMTP/POP/IMAP (email), vast majority of chat/messaging programs. Can be tunneled through a HTTPS proxy.|
|UDP||User Datagram Protocol - for fire-and-forget packet delivery. There is no checking if the data got to the other side, no reordering of the packets. So there are no delays associated with this, but it also means packets can be lost without detection (in which case TCP resends them again). Speakfreely uses it. Also it's used by DNS. Cannot be tunneled through a HTTPS proxy.|
|ICMP||Internet Control Message Protocol - similar to UDP but without ports. Usually not used to carry data, as it is intended for communication of system-level messages related to the connections (eg, that the given port isn't available). Used by ping and Windows traceroute. Often filtered on the firewalls for security reasons.|
the Internet, and looks as one IP address from the side of the Internet. One public IP then can "masquerade" as dozens, or even hundreds, of local IPs. Many ISPs offer NATted addresses as lower-cost but reduced-usability option, some of them even having the nerve of touting it as "firewall" (which it technically can serve as, but you can't do a lot of things you can do when your machine is visible from the outside). NAT is often performed by an ADSL modem/router, so there can be even single-computer networks using NAT.Port mapping: When a packet or connection request comes to the external (visible from the Internet) side
of the NAT performing gateway, the gateway doesn't know for what computer:port on its internal (visible from the LAN) side it is intended, unless it's explicitly specified; this specification is called "port mapping". The firewall is told that all incoming packets for port X have to be relayed to machine 10.0.0.1:X, for port Y to machine 10.0.0.4:1234, etc. To work through NAT, the program has to behave "nicely" - initiate the connection from the outside, and use the same port number for both sending and receiving data; common for TCP client sessions (eg. web browsing), but not the default behavior with SpeakFreely, except the newest version here.HowStuffWorks - How Network Address Translation Works