By Jeff Kabachinski, MS-T, BS-ETE, MCNE
The next part of our network communication review involves the Transmission Control Protocol—aka TCP, which resides at the transport layer (layer four) of the Open Systems Interconnection (OSI) model. In terms of networking, TCP does some pretty important things.
Port Addressing Architecture
TCP port addresses are two bytes long—written as one decimal number—and identify the network application that the TCP level data or payload is intended for. For example, the port address 80 identifies your browser’s “http” protocol. Note: The Internet Assigned Numbers Authority (IANA) lists all the port numbers in their Service Name and Transport Protocol Port Number Registry. (Say that three times fast!)
As more control information is added—in terms of the layer headers—the amount of data in the payload area is reduced. Recall that the maximum data payload size at the Ethernet level is only 1,522 bytes, and the maximum payload length at layer four is roughly 1,400 bytes. Obviously, most transmitted information will cause the sent file to break down into transmittable pieces. For an MR scan, we’ll need to break the picture file into 1,400-byte pieces, thereby sending approximately 3,500 packets for a small MR file of 5 megabytes. That’s where TCP takes over.
Reliable Data Transfer
A sequence number and an acknowledgement number follows the port addressing in the TCP packet. Since we must break large files into transportable pieces, it’s important to keep track of the entire transmission sequence.
The sending TCP application adds the packet number in the sequence number field. Occasionally, the sender will tell the recipient that it transmitted up to packet number 386, for instance. The receiving TCP app responds in the ACK field—perhaps saying, “I’ve received up through packet 382.” (Maybe a few packets were corrupted along the way and were thrown away by a switch or Ethernet circuitry.) The sender will then know that it needs to re-send packets 383 through 386. By using this handshaking method, the TCP function ensures that the original file arrives intact. The receiving TCP function will then reorder the packet pieces if they arrive out of numerical order.
TCP Port Addressing
As I mentioned, TCP has its own addressing at this level—with more than 65,000 available TCP port addresses. Again, the TCP port number or address is two bytes long, written as one decimal number.
The IANA assigns and manages port numbers 0 through 1,023—aka, the “well-known” ports. Look no further than the popular hyper text transfer protocol (HTTP)—which is port 80. Moreover, when you type in a URL (e.g., http://www.google.com),the TCP port number should be indicated after the “.com”. Officially, a colon should be added and the TCP port number should be used—in this case, port 80. However, since port 80 is such a well-known port, it doesn’t need to be stated.
In essence, any port number can be used for TCP/ Internet Protocol apps, as long as it’s clear which port is being used. Some other port examples include:
- File Transfer Protocol, or FTP: a protocol designed to transmit large-sized files, which uses port 20 for control of the process and port 21 for the data transfer
- Port 25 is assigned to Simple Mail Transfer Protocol (SMTP), which is used for relaying e-mail.
- Port 110 for the Post Office Protocol version 3 (POP3) is the process to retrieve e-mail from a remote mail server. SMTP and POP3 operate behind the scenes and are transparent to the user.
The next range of TCP port numbers—1,024 through 49,151—are requested to become IANA-registered ports. Again, all assigned and registered port numbers are listed at www.IANA.org. Note: numbers 49,152 to 65,535 are unassigned and are dubbed “ephemeral ports,” or those that are used or a temporary basis. As long as both the sender and receiver agree to use specific port numbers to complete a data transaction. these ports are open for use.
Suppose, for instance, that you need to send several data packets to one recipient. To transmit the information faster, you can use some of the unassigned port numbers to send several packets simultaneously on different ports. So, in addition, File Transfer Protocol can add on several upper-level TCP ports to transfer large data parcels. But take caution: While you can use any port number for any data communication, you’re asking for trouble—and serious breakdowns in communication—if you use a well-known or registered port for any other purpose.
TCP’s partner at the transport layer is User Datagram Protocol (UDP)— a connectionless protocol. We’ll explore its utilization in next month’s installment of Networking.
Jeff Kabachinski, MS-T, BS-ETE, MCNE, has more than 20 years of experience as an organizational development and training professional.