1. 网关接收去往其他网络的数据报过程:
- 1.如果目的地址与源地址在同一个网段,源计算机就把数据包直接发送给目的计算机。IP 地址被 ARP 解析为物理地址,数据被直接发送到目的网络适配器。
- 2.如果目的地址与源地址不在一个网段上,就执行如下过程。
- a)直接将数据报发送到网关。网关是位于局域网网段上的一个设备,能够把数据报转发到其他网段(网关基本上也算是一个路由器)。网关地址被 ARP 解析为物理地址,数据被发送到网关的网络适配器。
- b)数据报通过网关被路由到较高级别的网段,再次重复上述过程。如果目的地址在这个新网段里,数据就被发送到目的,否则数据报就会被发送到另一个网关。
- c)数据报经过一系列网关被转发到目的网段,目的 IP 地址被 ARP 解析为物理地址,数据被发送到目的网络适配器。
2. 一些概念:
- 网际协议, 即 IP 协议提供了一种分层的、与硬件无关的寻址系统,具有在复杂的路由式网络中传递数据所需的服务。TCP/IP 网络上的每个网络适配器都有一个唯一的 IP 地址。
- 网络必须提供一种方式来判断 IP 地址的哪一部分是网络 ID,哪一部分是主机 ID。该问题最初的解决方案是把 IP 地址划分为一系列地址类。A 类地址使用地址前 8 位作为网络 ID,B 类地址使用前 16 位,C 类地址使用前 24 位。
- 最近新出现的无类别域间路由选择(CIDR)技术让上述地址分类系统基本上变得毫无意义,它目前在 Internet 上非常流行,为 IP 地址提供了一种简单、灵活和明确的标识。
- 目标是一致的:把 IP 地址区分为网络 ID 与主机 ID。
- 尽管开放的 Interne t正在向全面支持 IPv6 转型,NAT 的广泛使用(以及充分使用 IPv6 增强特性的应用程序并不多见)意味着 IPv4 在可以见到的未来仍然会有一席之地。
3. IP报头字段
- IP 报头的最小长度: 20 字节
4. 一些概念:
- 子网:TCP/IP 地址空间的逻辑划分。
- 网际协议(IP):网际层的重要协议,用于数据报的寻址、传递和路由。
- IP 地址是一个 32 位的地址,被分为 4 个 8 位段(八位组)。
- A类地址:IP 地址的前 8 位表示网络 ID,后 24 位表示主机 ID。
- B类地址:IP 地址的前 16 位表示网络 ID,后 16 位表示主机 ID。
- C类地址:IP 地址的前 24 位表示网络 ID,后 8 位表示主机 ID。
- 如果 32 位的地址以 0 开头,它就是 A 类地址;
- 如果 32 位的地址以 10 开头,它就是 B 类地址;
- 如果 32 位的地址以 110 开头,它就是 C 类地址。
- D 类地址用于多播。多播是把一个消息发送到网络的子网,这与广播是不同的,后者需要网络上全部节点都进行处理。
- D 类地址最前面的 4 位是 1110,对应于十进制数值是224~239。
- E 类网络是实验性质的,一般不用于生产环境。E 类网络地址最前面的 5 位是 11110,对应于十进制数值是240~247。
- 全 0 的主机 ID 表示网络本身
- 全 1 的主机 ID 表示广播。广播是向网络中全部主机发送的消息。
- 以十进制值 127 开头的地址是环回地址。
- 目的地址为环回地址的消息是由本地 TCP/IP软件发送的,其目的在于测试TCP/IP软件是否工作正常。ping 功能的使用。通常使用的环回地址是 127.0.0.1。
5. Internet 控制消息协议 (ICMP)
- 路由器利用 ICMP 消息把问题通知给源 IP
- 最常见的 ICMP 消息:
- Echo Request (回显请求)
- Echo Reply (回显应答)
- Source Quench(源抑制):路由器可以利用 ICMP 向源 IP 发送 Source Quench 消息,让它降低发送数据的速度。
- Destination Unreachable(目的不可到达):如果路由器收到一个不能传递的数据报,ICMP 就会向源 IP 返回一个 Destination Unreachable 消息。路由器不能传递消息的原因之一是网络由于设备故障或维修而关闭。
- Time Exceeded(超时):当数据报由于 TTL 为 0 而被抛弃时,ICMP 就会向源 IP 发送这个消息。这表示对于当前 TTL 值来说,到达目标需要经过太多的路由器;或者是说明路由表出了问题,导致数据报在同一台路由器上连续循环。
- Fragmentation Needed(需要分段):路由器必须要对数据报进行分段才能把它转发到下一台路由器或目的地,这时ICMP就会发送这条消息。
- 测试连接的 ping 指令:ping 向某个 IP 地址发送一个数据报,并且要求目的计算机在响应中返回所发送的数据。ping 实际使用的命令是 ICMP 的 Echo Request 和 Echo Reply。