TCP/IP Architecture
It is an open protocol.
It allows public access to network protocols.
It allows integration between platforms over a network.
It is vendor independent.
The TCP/IP architecture is a different architecture than the OSI model. It comprises of four levels.
Application - Telnet, FTP, Gopher, SMTP, HTTP, MIME, POP, DNS, SNMP
Transport - TCP, UDP
Internet - IP, ARP
Network Interface - Ethernet, Token Ring, FDDI, X.25, ISDN, ATM, PPP, SLIP
Transport TCP, UDP
(corresponds roughly to OSI Transport and Session Layer)
TCP is a sophisticated full-duplex (both directions of transmission are used simultaneously) protocol that chops the file to be transmitted into pieces called 'segments' that can be as small as 21 bytes and as big as 64,000 bytes. Each segment is sequenced by the sending TCP and acknowledged by the receiving TCP. The receiving TCP is controlling the flow of segments by allocating a 'window' of 'so many bytes' that the transmitter can send at any time. In addition, TCP can flag data as "urgent" or "externally urgent/to be pushed", and can negotiate maximum segment size. The segments are transmitted in sequence and checked for accuracy (with an error checking code called CRC or "Cyclic Redundancy Check") and retransmissions are requested when errors are detected.
TCP performs the packetizing
- 24 byte header of control information (192 bit)
- located only at hosts, not routers
- connection-oriented provides a virtual circuit communication service
- every application are referred to by a port number HTTP is port 80
- chops the file to be transmitted into pieces called segments segmentation of application data
- uses CRC checksum error correction
- end-to-end transport
- piggybacked acknowledgements
- flow control through credit allocation
- can flag the priority of the segments
- UDP User Datagram Protocol a simple packetizing protocol
- like TCP but includes a header with no sequencing or error correction information
Internet IP, ARP
(corresponds to OSI Network Layer)
IP makes the segments into datagrams by writing the IP headers, then sends the datagrams to a 'default router' (which the TCP/IP nerds call a gateway). Each router examines each datagram's IP header and compares the destination IP address to that of the network under its supervision. If the addresses match, than the router admits the packet in and sends it on the network to the destination host. If not, the router looks in some tables to find the next hop router (post office) where to send(route) the datagram. The last router (the one that matched the destination IP address to its network) has to physically deliver the datagram to the destination IP address host. Since there is absolutely no correspondence between an IP address and a MAC (Medium Access Control) physical address, the router has to have a table like a directory that shows which MAC address corresponds to which IP address. This table is called an Address Resolution Protocol (ARP) table. If the host's address is not in the table, the router will send an "ARP" packet asking "Host IP address - what's your MAC address, buddy?" The host responds (or some proxy for that host), and then the router sends the IP datagram to the physical MAC address found in the response.
- IP provides a datagram (connectionless) transport across the network
- IP is responsible for addressing and routing
- McDaniel Notes
- Located at hosts and routers
- Data unit fragmentation permitted at network routers
- Reliability option increases likelihood of datagram delivery
- Routing protocols
- Exterior router protocol external to subnetwork
- Border gateway protocol
- Interior router protocol internal to subnetwork
- There are currently two forms of IP
- IPv4: which has a 192 bit header
- IPv6: which has a 320 bit header
IP Addressing
It encapsulates TCP packet in an IP datagram which contains a header with "lots" of information including Source Address and Destination Address (which are both 32 bits in length)
To accommodate different size networks, there are five classes of Internet addresses
- Class A 0.x.x.x large size networks
- Class B 0.0.x.x moderate size networks
- Class C 0.0.0.x small size networks
- Class D used for IP multicasting sending a single datagram to multiple hosts
- Class E reserved for special purposes and are not assigned to organizations
Dynamic Addressing
- supplies a network layer address to a computer each time the computer connects to the network
- Bootp Bootstrap Protocol
- DHCP Dynamic Host Control Protocol
Address Resolution
- Translation of application layer addresses of the destination into network layer addresses and translate it into a data link layer address
- Server Name Resolution (DNS
www.cnn.com à
141.141.141.141)
When TCP/IP needs to translate an application layer address into an IP address, it sends a special TCP-level packet to the nearest DNS server who either returns the IP address or forwards the request to another DNS server.
- Data Link Layer Address Resolution (ARP 141.141.141.141 à
Data link layer address)
- To send a message, the network layer software must know the data link layer address of the destination computer. To find out this address, the TCP/IP software sends a broadcast message using ARP (Address Resolution Protocol) that says, "Who ever is IP address xxx.xxx.xxx.xxx, please send me your data link layer address"
- Host sends an ARP request packet advertising the destination IP address asking for the associated data link layer address
- The destination machine will recognize its own IP address and send an ARP response along with its data link layer address
IP Routing
The process of determining the route or path through the network that a message will travel from the sending computer to the receiving computer
- Centralized routing all routing decisions are made by one central computer
- Decentralized routing routing decisions are made by individual nodes
- Static routing the routing table is developed by the network manager and ONLY changes when computers are added to or removed from the network
- Dynamic routing the routing table is constantly being updated to reflect changing network conditions.
- IP Routing Protocols
- RIP Routing Information Protocol a dynamic routing protocol that works by counting the number of computers in the possible routes and choosing the route with the least number of computers. Used by IPX/SPX and TCP/IP.
- ICMP Internet Control Message Protocol uses combination of broadcast messages and messages to specific computers to exchange routing information
- OSPF Open Shortest Path First uses number of computers and network traffic and error rates to determine best route
- Drawbacks
- Requires more processing by each computer in the network
- Transmission of status information wastes network protocols
- Connectionless routing each packet is treated separately and makes its own way through the network
- sequence number is put on the packet to ensure the right sequence
- TCP/IP only IP is needed and the TCP packet is replaced with a UDP (User Diagram Protocol) which means the application layer does TCPs job of ensuring that all packets are received and in the right order using buffers
- Connection-oriented routing a virtual circuit is set up between the two computers and all packets follow the same route.
- Greater overhead because of the need to "open" and "close" the virtual circuit
- TCP/IP TCP establishes the virtual circuit with the destination and informs IP to route all messages along this virtual circuit
Network Interface
SLIP Serial Link Internet Protocol
Provides asynchronous communication over duplex circuits. Usually used with dial-up connections.
- de facto standard
- packet framing protocol
- no error checking
- no addressing information
- no data compression
PPP Point to Point Protocol
Provides synchronous or asynchronous communication over duplex circuits. Can be used with dialed circuit, dedicated or circuit switched networks.
- Uses the HDLC encapsulation standard when encapsulating IP datagrams
- Is a type of HDLC data link protocol
- Uses full duplex protocols
- Uses CRC-16 error checking
- Supports data compression
- Has network layer address negotiation
- Uses a LCP (Link Control Protocol) for establishing, configuring, and testing the data-link connections
Application -
Telnet, FTP, Gopher, SMTP, HTTP, Finger, POP, DNS, SNMP
SMTP Simple Mail Transfer Protocol
a store and forward service
uses DNS resolution
message contents are hidden by an envelope and the message is unaltered except for
standardization of the message characters to 7-bit ASCII
recording of the transit path
message components
list of mail destinations
RFC 822 header with recipients
Message body
protocols used for accessing SMTP servers
POP3 Post Office Protocol 3
- Light weight mail retrieval protocol
- Necessitated by intermittently connected remote destinations
- POP service receives messages on the behalf of a remote user
- Splits the User Agent: one half at the mailbox server and the other half at remote user
- TCP/IP port 109
IMAP Interactive Mail Access Protocol
- Server is capable of associated one or more mailboxes with a client
- Server can send unsolicited messages to the client
- Server can perform operations that in the POP model are reserved for the client. EG Searches
- Server can support bulletin board facility
- Compared with POP, server load is high and the network load is light
Other mail protocol standards
ITU-T (CCITT) X.400 Message Handling System
ITU-T (CCITT) X.500 Directory Service
Europe standards
LDAP Lightweight Directory Access Protocol
Internet access to X.500
MIME Multi-purpose Internet Mail Extension
SMTP deficiencies
No binary files
No extended language characters
Message size restrictions
Inconsistent ASCII to EBCIDIC translation
Gateways to ITU-T X.400 incapable of managing non-textual data
Some SMTP implementations violate RFC-721
- Forced line wrap, removal of trailing white space
HTTP Hypertext Transfer Protocol
base protocol for WWW
client/server transaction oriented
server is stateless
typical implementation establishes connection using TCP/IP, executes transaction, then releases connection
Three modes of operation:
User agent establishes connection with origin server
An intermediate system between UA and server
Caches on either user agent, server or intermediate system
SNMP Simple Network Management Protocol
- used to communicate management information between the network management stations and the agents in the network elements.
- requires only an unreliable datagram service and every message is entirely and independently represented by a single transport datagram (such as UDP)
- Accesses Management Information Bases which are located at the network element
- an SNMP message consists of a version identifier, an SNMP community name and a PDU (Protocol Data Unit)
- the PDU basically the action to be taken EG. GetRequest, GetNextRequest, SetRequest,
McDaniel Notes
- It is a framework upon which heterogeneous SNMP-compliant management components can be built
- Manager server gets and sets values of management objects
- May manage a number of autonomous systems that have their own management servers
- Management objects are stored hierarchically
- Object attributes are stored in 2-dimensional tables