第三章 TCP/IP 协议栈
本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系
TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围
TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层 物理层 网络接入层
应用层概述 应用层 主机到主机层 Internet 层 文件传输 - TFTP * - FTP * - NFS E-Mail - SMTP 远程登陆 - Telnet * - SSH* 网络管理 - SNMP * 名称管理 - DNS* 网络接入层
主机到主机层概述 应用层 主机到主机层 Internet 层 Transmission Control Protocol (TCP) User Datagram Protocol (UDP) 面向连接 非面向连接 网络接入层
TCP 数据格式 Bit 0 Bit 15 Bit 16 Bit 31 Source port (16) Destination port (16) Sequence number (32) Header length (4) Acknowledgement number (32) Reserved (6) Code bits (6) Window (16) Checksum (16) Urgent (16) 20 Bytes Options (0 or 32 if any) Data (varies)
UDP 数据格式 Bit 1 0 Bit 15 Bit 16 Bit 31 Source port (16) Destination port (16) Length (16) Checksum (16) 8 Bytes Data (if any) 没有顺序号和确认号
端口号 应用层 F T P T E L N E T S M T P D N S T F T P S N M P R I P 传输层 21 23 25 53 69 161 TCP UDP 520 端口号
TCP 端口号 源端口 目标端口 Telnet Z Host A Host Z SP DP 1028 23 目标端口 = 23.
TCP 确认机制 发送方 接收方 滑动窗口 = 1
TCP 简单确认 发送方 发送 1 接收 1 接收方 滑动窗口 = 1
TCP 简单确认 发送方 发送 1 接收 ACK 2 接收 1 接收方 发送 ACK 2 滑动窗口 = 1
TCP 简单确认 发送方发送 1 接收 ACK 2 发送 2 接收方接收 1 发送 ACK 2 接收 2 滑动窗口 = 1
TCP 简单确认 发送方发送 1 接收 ACK 2 发送 2 接收 ACK 3 接收方接收 1 发送 ACK 2 接收 2 发送 ACK 3 滑动窗口 = 1
TCP 简单确认 发送方发送 1 接收 ACK 2 发送 2 接收 ACK 3 发送 3 接收方接收 1 发送 ACK 2 接收 2 发送 ACK 3 接收 3 滑动窗口 = 1
TCP 简单确认 发送方发送 1 接收 ACK 2 发送 2 接收 ACK 3 发送 3 接收 ACK 4 接收方接收 1 发送 ACK 2 接收 2 发送 ACK 3 接收 3 发送 ACK 4 滑动窗口 = 1
TCP 三次握手 Host A Host B 1 发送 SYN (seq=100 ctl=syn) 接收 SYN
TCP 三次握手 Host A Host B 1 发送 SYN (seq=100 ctl=syn) 接收 SYN 接收 SYN 发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack) 2
TCP 三次握手 Host A Host B 1 3 发送 SYN (seq=100 ctl=syn) 接收 SYN 建立会话 (seq=101 ack=301 ctl=ack) 接收 SYN 发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack) 2 TCP 连接建立
TCP 序列号和确认号 源端口 目标端口 序列号 # 确认号 # 我发送 #10. Source Dest. Seq. 1028 23 10 1 Ack.
TCP 序列号和确认号 源端口 目标端口 序列号 # 确认号 # 我发送 #10. 我已收到 #10, 现在我需要 #11. Source Dest. Seq. Ack. 1028 23 10 1 Source Dest. Seq. Ack. 23 1028 1 11
TCP 序列号和确认号 源端口 目标端口 序列号 # 确认号 # 我发送 #10. 我已收到 #10, 现在我需要 #11. Source Source Dest. Dest. Seq. Seq. Ack. Ack. 1028 23 10 1 Source Dest. Seq. Ack. 23 1028 1 11 1028 23 11 2
TCP 序列号和确认号 源端口 目标端口 序列号 # 确认号 # 我发送 #11 我已收到 #11, 现在我需要 #12. Source Source Dest. Dest. Seq. Seq. Ack. Ack. 1028 23 10 1 Source Dest. Seq. Ack. 23 1028 1 11 1028 23 11 2 Source Dest. Seq. Ack. 23 1028 2 12
TCP 滑动窗口 发送方 接收方
TCP 滑动窗口 发送方 Window size = 3 Send 1 Window size = 3 Send 2 Window size = 3 Send 3 接收方
TCP 滑动窗口 发送方 Window size = 3 Send 1 Window size = 3 Send 2 Window size = 3 Send 3 接收方 ACK 3 Window size = 2 数据 3 被丢弃
TCP 滑动窗口 发送方 Window size = 3 Send 1 Window size = 3 Send 2 Window size = 3 Send 3 Window size = 3 Send 3 Window size = 3 Send 4 接收方 ACK 3 Window size = 2 数据 3 被丢弃
TCP 滑动窗口 发送方 Window size = 3 Send 1 Window size = 3 Send 2 Window size = 3 Send 3 Window size = 3 Send 3 Window size = 3 Send 4 ACK 3 Window size = 2 数据 3 被丢弃 ACK 5 Window size = 2 接收方
Internet 层概述 应用层主机到主机层 Internet 层网络接入层 Internet Protocol (IP) Internet Control Message Protocol (ICMP) Address Resolution Protocol (ARP) Reverse Address Resolution Protocol (RARP) OSI 网络层对应的是 TCP/IP 的 internet 层
IP 数据 Bit 1 0 Bit 15 Bit 16 Bit 31 Version (4) Header Length (4) Identification (16) Priority & Type of Service (8) Total Length (16) Flags (3) Fragment offset (13) Time to live (8) Protocol (8) Header checksum (16) 20 Bytes Source IP Address (32) Destination IP Address (32) Options (0 or 32 if any) Data (varies if any)
协议域 Transport Layer TCP UDP Internet Layer 6 IP 17 Protocol Numbers 决定上层协议
ICMP 协议 Application Transport 1 ICMP Internet Destination Unreachable Echo (Ping) Other Network Access
ARP 协议 我需要知道 176.1 6.3.2 的物理地址. 172.16.3.1 172.16.3.2 IP: 172.16.3.2 =???
ARP 协议 我需要知道 176.1 6.3.2 的物理地址. 我知道你的请求, 这是我的物理地址 172.16.3.1 172.16.3.2 IP: 172.16.3.2 =???
ARP 协议 我需要知道 176.1 6.3.2 的物理地址. 我知道你的请求, 这是我的物理地址 172.16.3.1 172.16.3.2 IP: 172.16.3.2 =??? IP: 172.16.3.2 Ethernet: 0800.0020.1111
ARP 协议 我需要知道 176.1 6.3.2 的物理地址. 我知道你的请求, 这是我的物理地址 172.16.3.1 172.16.3.2 IP: 172.16.3.2 =??? IP: 172.16.3.2 Ethernet: 0800.0020.1111 映射 IP Ethernet Local ARP
RARP 协议 我的地址是多少? Ethernet: 0800.0020.1111 IP =???
RARP 协议 我的地址是多少? 我听到了广播你的地址是 172.16.3.25. Ethernet: 0800.0020.1111 IP =???
RARP 协议 我的地址是多少? 我听到了广播你的地址是 172.16.3.25. Ethernet: 0800.0020.1111 IP =??? Ethernet: 0800.0020.1111 IP: 172.16.3.25
RARP 协议 我的地址是多少? 我听到了广播你的地址是 172.16.3.25. Ethernet: 0800.0020.1111 IP =??? Ethernet: 0800.0020.1111 IP: 172.16.3.25 映射 Ethernet IP
本章总结 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系