应用层 HTTP FTP TELNET, SMTP, DNS, ECHO, NTP, SNMP, BOOTP... |
传输层TCP UDP |
互联层 IP ICMP [ARP IGMP] |
网络接口层 以太网 令牌环 FDDI |
应用服务 |
可靠的传输服务 |
无连接交付服务 |
版本 首部长度 服务类型 总长度 |
标识 标志 片偏移量 |
寿命 协议 首部校验和 |
源IP地址 |
目的IP地址 |
IP选项 填充 |
数据 |
... |
3.3 ARP
要为数据报确定一个目的地址,就必须检查ARP缓存表。
ARP工作流程:
解释本地IP地址:
(1)当一台主机要与别的主机通信时,初始化ARP请求。当该IP断定IP地址是本地时,源主机在ARP缓存中查找目标主机的硬件地址。
(2)要是找不到映射的话,ARP建立一个请求,源主机IP地址和硬件地址会被包括在请求中,该请求通过广播,使所有本地主机均能接收并处理。
(3)本地网上的每个主机都收到广播并寻找相符的IP地址。
(4)当目标主机断定请求中的IP地址与自己的相符时,直接发送一个ARP答复,将自己的硬件地址传给源主机。以源主机的IP地址和硬件地址更新它的ARP缓存。源主机收到回答后便建立起了通信。
解析远程IP地址
不同网络中的主机互相通信,ARP广播的是源主机的缺省网关。
目标IP地址是一个远程网络主机的话,ARP将广播一个路由器的地址。
(1)通信请求初始化时,得知目标IP地址为远程地址。源主机在本地路由表中查找,若无,源主机认为是缺省网关的IP地址。在ARP缓存中查找符合该网关记录的IP地址(硬件地址)。
(2)若没找到该网关的记录,ARP将广播请求网关地址而不是目标主机的地址。路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由器以传送到目标主机的网络,最终达到目标主机。
(3)在路由器上,由IP决定目标IP地址是本地还是远程。如果是本地,路由器用ARP(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用ARP获得此网关的硬件地址。数据包被直接发送到下一个目标主机。
(4)目标主机收到请求后,形成ICMP响应。因源主机在远程网上,将在本地路由表中查找源主机网的网关。找到网关后,ARP即获取它的硬件地址。
(5)如果此网关的硬件地址不在ARP缓存中,通过ARP广播获得。一旦它获得硬件地址,ICMP响应就送到路由器上,然后传到源主机TCP是一种可靠的、面向连接的、字节流协议,它利用端到端错误检测与纠正功能提供可靠的数据传输服务,因为它能验证数据在网络上是否以合适的序列正确地传输;
4.1.2 TCP报文段
源端口 目的端口 |
序号 |
确认号 |
首部长度 保留未用 码元比特 窗口 |
校验和 紧急指针 |
选项 填充 |
数据 |
... |
4.1.3
三次握手
四次握手
4.1.4
滑动窗口
4.2 UDP
UDP是一个不可靠的无连接数据报协议,就像IP一样,它能为应用程序提供低开销的无连接数据报传输服务。