TCP/IP



TCP/IP is actually a suite, or stack, of protocols that interconnect and work together to provide for reliable and efficient data communications across an internetwork. The major protocols of the TCP/IP suite are:

  • Transmission Control Protocol (TCP)
  • User Datagram Protocol (UDP)
  • Domain Name System (DNS)
  • Internet Protocol (IP)
  • Address Resolutions Protocol (ARP)
  • File Transport Protocol (FTP)
  • Simple Mail Transport Protocol (SMTP)
  • Post Office Protocol (POP3)
  • Interactive Mail Access Protocol (IMAP)
  • Internet Control Message Protocol (ICMP)
  • Routing Information Protocol (RIP)
  • Open Shortest Path First (OSPF)
  • Hypertext Transfer Protocol (HTTP)
  • TCP/IP Utilities (PING, Telnet, IPCONFIG, ARP, and more)
  • How the TCP/IP Protocol Stack Maps to the OSI Model
    OSI Layers TCP/IP Protocols
    Application, Presentation, Session Telnet, FTP, SMTP, SNMP, DNS, HTTP
    Transport TCP, UDP
    Network IP, ICMP, ARP, RARP
    Data Link, Physical Ethernet, Token Ring, FDDI*
    * These are networking technologies that function at the Data Link and Physical layers.
    They aren't TCP/IP protocols or a part of the TCP/IP protocol stack.


    Application Layer Protocols

    FTP

    FTP is a reliable, connection-oriented tool used to copy files from one computer to another over a TCP/IP network, such as the Internet of an intranet.

    Another flavor of FTP is Trivial File Transfer Protocol (TFTP), which is an unreliable (maining delivery is not guaranteed) file trasfer protocol. Cisco reouters use TFTP to store and retrieve configuration files from a TFTP server.

    Telnet

    Telnet is a terminal emulation protocol used on TCP/IP-based networks to remotely log into a remote device to run a program or manipulate data. Telnet was originally developed for ARPAnet and is an inherent part of the TCP/IP communications protocol. In the Cisco world, Telnet is used to access and configure routers from remote locations.


    Transport Layer Protocols

    Network protocols are either connection-oriented or connectionless.

  • Connection-oriented protocols - require that a direct connection be established between two devices before data can begin to transfer between the devices. Packets are transferred using a prescribed sequence of actions that include an acknowledgment to signal when a packet arrives, and possibly resending the packet if there are errors. This method is reliable and, as a result of its reliability and the overhead involved, much slower than connectionless protocols.
  • Connectionless protocols - are largely based on your faith in the technology. Packets are sent over the network without regard to whether they actually arrive at their destinations. There are no acknowledgments or guarantees, but you can send a datagram to many different destinations at the same time. Connectionless protocols are fast because no time is used in establishing and tearing down connections. Connectionless protocols are also referred to as best-effort protocols.
  • Connection-Oriented and Connectionless Protocols
    Protocol Type
    FTP Connection-oriented
    IP Connectionless
    IPX Connectionless
    TCP Connection-oriented
    UDP Connectionless
    SPX Connection-oriented

    Establishing a connection-oriented connection involves the process of setting up sequence and acknowledgment fields and agreeing upon the port numbers to be used. This is accomplished by a three-step handshake process that works like this:

  • Handshake one: Host 1 sends a synchronization message to Host 2
  • Handshake two: Host 2 acknowledges Host 1's synchronization message and sends back its own synchronization message.
  • Handshake three: Host 1 acknowledges Host 2's synchronizattion message.


  • At this point, the connection is successfully established and the applications can begin transferring data.

    Both TCP and UDP use port number to move information along to the application layer.

    The registering body, IANA (Internet Assigned Numbers Authority), divides port numbers into three groups:

  • Well-known ports - are the most commonly used TCP/IP ports. These ports are in the range of 0 through 1023. These ports can be used only by system processes or privileged programs. Well-known ports are TCP ports but are usually registered to UDP services as well.
  • Registered ports - are in the range of 1024 through 49151. Registered ports are used on most systems by user programs to create and control logical connections between proprietary programs.
  • Dynamic (private) ports - are in the range of 49152 through 65525. These ports are unregistered and can be used dynamically for private connections.
  • Additional informaiton to know about port numbers:

  • Port numbers below 256 are assigned to public applications.
  • Port numbers 256 - 1023 are assigned to companies for saleable applications
  • Port numbers above 1023 are dynamically assigned in the host application
  • Source and destination port numbers don't have to be the same
  • Well-Known Ports
    Port Number Application
    21 FTP
    23 Telnet
    25 SMTP
    69 TFTP
    80 HTTP

    Transmission Control Protocol (TCP)

    TCP is a connection-oriented reliable, delivery protocol that ensures that packets arrive at their destination error-free. Using TCP is similar to sending a registered letter. When you send the letter, you know for sure that it will get to its destination and that you'll be notivied that it got there in good condition.

    What to know about TCP:

  • Connection-oriented
  • Reliable transfer
  • Error-checking
  • Full-duplex transmission
  • Flow control
  • Multiplexing
  • On the Transport layer, packets are referred to as segments. The image below depicts the format of the TCP segment:

    TCP Segment Description
    Field Lenght in Bits Purpose
    Source port 16 The number of the calling port
    Destination port 16 The number of the calling port
    Sequence number 32 Used to ensure correct sequencing of data
    Acknowledgment # 32 Sequence number of the next expected TCP octet
    HLEN 4 Header lenght
    Reserved 6 Set to zero
    Code bits 6 Functions that set up and terminate the session
    Window 16 Size of window sender can accept
    Checksum 16 Sum of header and data fields (error correction feature)
    Urgent Pointer 16 End of the urgent data
    Option 0 or 32 Maximum TCP segment size
    Data - Data from upper layers

    User Datagram Protocol (UDP)

    Remember that UDP is connectionless and unreliable.

    UDP Datagram

    UDP Datagram Description
    Field Size in Bits Purpose
    Source port 16 The number of the calling port
    Destination port 16 The number of the called port
    Length 16 The length of the datagram
    Checksum 16 Sum of header and data fields (error correction feature)
    Data - Data from upper layers


    Network Layer Protocols


    A number of TCP/IP protocols operate on the Network layer of the OSI Model, including IP, ARP, RARP, BOOTP, and ICMP. Remember, the OSI Network layer is concerned with routing messages across the internetwork.

    Internet Protocol (IP)

    Where TCP is connection-oriented, IP is connectionless. IP provides for the best-effort delivery of the packets (or datagrams) that it creates from the setments it receives from the Transport layer protocols. The IP protocol provides for logical addressing on the Network layer.

    The IP packet (or datagram) is variable length, and its format is shown below:



    Back