MODEMS
We need modems because telephones are analog and the signals must be changed to digital. Modems are used for this transformation. Telephone transmission is limited by frequency and bandwidth. Frequency is the measurement of how quickly the state of the wire can be changed. The range of frequency of a telephone is 8KHz. Bandwidth is how many bits can be sent at a time. You measure the speed of bits sent in bps (bits per second). Baud is how many times the state of the wire changes. You cannot flip phone lines more than 8000 times per second. If you send more bits at a time, it increases the bps.
Common Speeds for Modems
300: 1 bit at 300 baud.
1200-9600: accomplished by increasing the number of signals sent.
14.4-28.8: Accomplished by compression. Modems compress data coming in and going out. The actual bps is 9600 but since it's compressed more information is sent. The speed is an average as a result of different compression techniques.
33.6: Is a hybrid of compression and changing the baud rate. This is the highest speed phone lines can handle.
56K: This speed is not really true because phone lines can only handle 53K. 56K is accomplished by using asymmetric communication. Most of the bandwidth is used for downloading since that is what most of the Internet is used for.
New Techniques to Increase Speed
ISDN: This technique involves using a purely digital phone system. The telephone itself converts your voice to digital. It can travel digitally to the source without interference. With an ISDN line, you don't need a modem because it's already in digital form. You do have to buy an ISDN terminating box to which you can connect a phone, fax, computer, etc. ISDN can handle multiple phone connections simultaneously.
Cable: Cable lines have a tremendous bandwidth. Right now communication is very asymmetric.
ATM: This changes the phone system to use digital information. It's based on copper.
Error Checking - File Transfer Protocols
When sending information, some bits may accidentally flip. This will cause the wrong information to be sent. There are some ways of monitoring whether a bit has been flipped.
X-modem: This is a protocol that uses a check sum method. The sending machine send 128 bytes. The receiver adds the bytes up and sends over a check sum. The sender sees if the check sum matches and sends over and acknowledgment (ACK). If it does not check, it sends a NACK and the message must be resent. This requires tremendous overhead. Another problem is that more than one bit may flip and it may look like it's OK when it isn't.
Y-modem: This protocol is based on CRC (Cyclic Redundancy Check). CRC is a mathematical formula that is very difficult to fake. 1K is sent at a time. The only drawback is that it's more likely that one of 1000 byes are going to change than 128 bytes.
Z-modem: This is Y-modem which can send multiple files. It send the file and the file name.
Compression Techniques
Compression is used in order to take information and squeeze it into less space. The less space it takes up, the quicker it is to send over. The time of compression must be weighed against the time it takes to send it. Today compression is very quick, so we don't have to worry about it being slower to compress it and send it.
RLE (Run Length Encoding): You can do compressions if there's redundancy. You can group patterns and take away information that you don't need. You can introduce a new character to stand for a pattern. As a result, a dictionary must be sent with the file. Lossy compression is when you compress something and don't want to restore it to the original. Lossy compression is much more efficient than lossless compression. Another characteristic of compression is it's symmetry. With symmetric compression, it takes the same amount of time to compress it and decompress it (used for talking over the Internet). Asymmetric compression is usually used to take a longer time to compress it but it can decompress quickly (used for MPEG). Things sent over the Internet must be lossless and symmetric.
Huffman Encoding (Variable Length Encoding): You see the smallest way you can represent the most frequent character at the expense of the least frequent. The lengths are chosen base don the frequencies of the letters. You must see the whole document before encoding so you can scan it to see the frequencies. If you can't scan the document beforehand, you can determine which are going to be the most common letters. You can keep changing the code as you read more in (variable changing). The codes are created by constructing a tree. This tree (dictionary) must be sent along with the files.