6. TCP/IP Protocol Stack Application Presentation Session Transport Network Data Link Physical 7 6 5 4 3 2 1 Application Transport Internet Network Interface OSI Reference Model 6 5 4 3 Ethernet, 802.3, 802.5, FDDI, and so on. TCP/IP Conceptual Layers
7. Application Layer Overview *Used by the router File Transfer - TFTP * - FTP - NFS E-Mail - SMTP Remote Login - Telnet * - rlogin Network Management - SNMP * Name Management - DNS* Application Transport Internet Network Interface Hardware
14. TCP Handshake/Open Connection Send SYN (seq=100 ctl=SYN) SYN received Send SYN (seq=300 ack=101 ctl=syn,ack) Host A Host B SYN received 1 2
15. TCP Handshake/Open Connection Send SYN (seq=100 ctl=SYN) SYN received Send SYN (seq=300 ack=101 ctl=syn,ack) Established (seq=101 ack=301 ctl=ack) Host A Host B SYN received 1 2 3
16. TCP Handshake/Open Connection Send SYN (seq=100 ctl=SYN) SYN received Send SYN (seq=300 ack=101 ctl=syn,ack) Established (seq=101 ack=301 ctl=ack) Host A Host B Established (seq=101 ack=301 ctl=ack Data) SYN received 1 2 3 4
29. TCP Sequence and Acknowledgment Numbers I just sent #10. Source Port Dest. Port … Sequence # Acknowledgement # 1028 23 Source Dest. 10 Seq. 0 Ack. …
30. TCP Sequence and Acknowledgment Numbers I just sent #10. I just got #10, now I need #11. Source Port Dest. Port … Sequence # Acknowledgement # 1028 23 Source Dest. 10 Seq. 1 Ack. … 1028 23 Source Dest. 11 Seq. 1 Ack. …
31. TCP Sequence and Acknowledgment Numbers I just sent #10. I just got #10, now I need #11. Source Port Dest. Port … Sequence # Acknowledgement # 1028 23 Source Dest. 10 Seq. 1 Ack. … 1028 23 Source Dest. 11 Seq. 2 Ack. … 1028 23 Source Dest. 11 Seq. 1 Ack. …
35. IP Datagram # Bits 6 16 32 4 16 6 32 VERS HLEN Type of Service Total Length Identi- fication Flags Frag Offset TTL 4 # Bits 16 32 4 16 32 Protocol Header Checksum Source IP Address Destination IP Address IP Options Data… 4
36.
37. Internet Control Message Protocol Application Transport Internet Network Interface Hardware ICMP Destination Unreachable Echo (Ping) Other
38.
39.
40.
41.
42. Address Resolution Protocol 172.16.3.1 172.16.3.2 IP: 172.16.3.2 = ??? I need the Ethernet address of 176.16.3.2.
43. Address Resolution Protocol 172.16.3.1 172.16.3.2 IP: 172.16.3.2 = ??? I need the Ethernet address of 176.16.3.2. I heard that broadcast. The message is for me. Here is my Ethernet address.
44. Address Resolution Protocol 172.16.3.1 IP: 172.16.3.2 Ethernet: 0800.0020.1111 172.16.3.2 IP: 172.16.3.2 = ??? I need the Ethernet address of 176.16.3.2. I heard that broadcast. The message is for me. Here is my Ethernet address.
47. Reverse ARP Ethernet: 0800.0020.1111 IP = ??? What is my IP address? I heard that broadcast. Your IP address is 172.16.3.25.
48. Reverse ARP Ethernet: 0800.0020.1111 IP: 172.16.3.25 Ethernet: 0800.0020.1111 IP = ??? What is my IP address? I heard that broadcast. Your IP address is 172.16.3.25.
The TCP/IP suite of protocols was developed as part of the research done by the Defense Advanced Research Projects Agency (DARPA). Later TCP/IP was included with the Berkeley Software Distribution (BSD) of UNIX. The Internet protocols can be used to communicate across any set of interconnected networks. They are equally well-suited for both LAN and WAN communications. The Internet protocol suite includes not only layer three and four specifications (such as IP and TCP), but also specifications for such common applications as mail, terminal emulation, and file transfer.
The TCP/IP suite of protocols was developed as part of the research done by the Defense Advanced Research Projects Agency (DARPA). Later TCP/IP was included with the Berkeley Software Distribution (BSD) of UNIX. The Internet protocols can be used to communicate across any set of interconnected networks. They are equally well-suited for both LAN and WAN communications. The Internet protocol suite includes not only layer three and four specifications (such as IP and TCP), but also specifications for such common applications as mail, terminal emulation, and file transfer.
The TCP/IP protocol stack maps closely to the OSI reference model in the lower layers. All standard physical and data-link protocols are supported.
Application protocols exist for file transfer, e-mail, and remote login. Network management is also supported at the application layer.
Two protocols are provided at the transport layer: TCP and UDP Transmission Control Protocol (TCP) is a connection-oriented, reliable protocol. Virtual circuit service is provided between end-user applications. User Datagram Protocol (UDP) is connectionless and "unreliable." No software checking for datagram delivery is provided at this layer; hence, the description "unreliable."
Field definitions in the TCP segment: Source Port—number of the calling port Destination Port—number of the called port Sequence number—number used to ensure correct sequencing of the arriving data Acknowledgment number—next expected TCP octet HLEN—number of 32-bit words in the header Reserved—set to zero Code Bits—control functions (such as setup and termination of a session) Window—number of octets that the sender is willing to accept Checksum—calculated checksum of the header Urgent Pointer—points to the end of the urgent data Options—one currently defined: maximum TCP segment size
Both TCP and UDP use port (or socket) numbers to pass information to the upper layers. “ Well-known” port numbers are defined in RFC 1340, thus simplifying application developement. Some ports are reserved in both TCP and UDP, but applications may not be written to support them.
End systems use port numbers to select the proper application. Originating source port numbers are assigned by the transmitting host, usually some number greater than 1023.
Both ends of the connection are synchronized with this sequence. By exchanging beginning sequence numbers, any lost data may be recovered.
Both ends of the connection are synchronized with this sequence. By exchanging beginning sequence numbers, any lost data may be recovered.
Both ends of the connection are synchronized with this sequence. By exchanging beginning sequence numbers, any lost data may be recovered.
Both ends of the connection are synchronized with this sequence. By exchanging beginning sequence numbers, any lost data may be recovered.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
With a window size of one, each segment must be acknowledged before another segment is transmitted. This results in inefficient use of bandwidth by the hosts.
A larger window size allows more data to be transmitted pending acknowledgment. No further transmission will occur until at least one acknowledgment is received. A sliding window results in more efficient utilization of bandwidth by the hosts.
A larger window size allows more data to be transmitted pending acknowledgment. No further transmission will occur until at least one acknowledgment is received. A sliding window results in more efficient utilization of bandwidth by the hosts.
A larger window size allows more data to be transmitted pending acknowledgment. No further transmission will occur until at least one acknowledgment is received. A sliding window results in more efficient utilization of bandwidth by the hosts.
A larger window size allows more data to be transmitted pending acknowledgment. No further transmission will occur until at least one acknowledgment is received. A sliding window results in more efficient utilization of bandwidth by the hosts.
A larger window size allows more data to be transmitted pending acknowledgment. No further transmission will occur until at least one acknowledgment is received. A sliding window results in more efficient utilization of bandwidth by the hosts.
TCP provides sequencing of segments with a forward reference acknowledgement. Segments that are not acknowledged within a given time period result in retransmission.
TCP provides sequencing of segments with a forward reference acknowledgement. Segments that are not acknowledged within a given time period result in retransmission.
TCP provides sequencing of segments with a forward reference acknowledgement. Segments that are not acknowledged within a given time period result in retransmission.
User Datagram Protocol (UDP) uses no windowing or acknowledgments. Application layer protocols may provide for reliability. Protocols that utilize UDP include TFTP, SNMP, Network File System (NFS), and Domain Name Service (DNS).
Several protocols operate at the Internet layer: IP provides connectionless, best-effort delivery routing of datagrams. ARP determines data link layer address for known IP addresses. RARP determines network addresses when datalink addresses are known. ICMP provides control and messaging capabilities.
VERS—version number HLEN—header length in 32-bit words Type of Service—specifies how the datagram should be handled Total Length—total length (header + data) Identification, Flags, Frag Offset—work together to allow fragmentation of datagrams due to differing MTUs in the Internet TTL—time to live Protocol—upper-layer protocol (layer four) Header Checksum—integrity check on the header Source and Destination IP addresses—the 32-bit IP addresses IP Options—provide network testing, debugging, security and others
The protocol field determines the layer four protocol being carried within an IP datagram.
The Internet Control Message Protocol is implemented by all TCP/IP hosts. ICMP messages are carried in IP datagrams and are used to send error and control messages.