图解 TCP/IP 笔记
1. 网络基础知识
1.1 计算机网络出现的背景
1.1.1 计算机的普及与多样化
1.1.2 从独立模式到网络互联模式
根据规模可分为 WAN (Wide Area Network, 广域网) 和 LAN (Local Area Network, 局域网).
1.1.3 从计算机通信到信息通信
1.1.4 计算机网络的作用
1.2 计算机与网络发展的7个阶段
1.2.1 批处理系统
1.2.2 分时系统
1.2.3 计算机之间的通信
1.2.4 计算机网络的产生
1.2.5 互联网的普及
1.2.6 以互联网技术为中心的时代
1.2.7 从”单纯建立连接”到”安全建立连接”
1.2.8 手握金刚钻的 TCP/IP
1.3 协议
1.3.2 协议的必要性
1.3.3 协议如同人与人的对话
1.3.4 计算机中的协议
1.3.5 分组交换协议
1.4 协议由谁决定
1.4.1 计算机通信的诞生及其标准化
1.4.2 协议的标准化
1.5 协议分层与OSI参考模型
1.5.1 协议的分层
1.5.2 通过对话理解分层
1.5.3 OSI 参考模型
1.5.4 OSI 参考模型中各个分层的作用
- 应用层: 针对特定应用的协议. (电子邮件协议, 远程登陆协议, 文件传输协议等)
- 表示层: 主要负责数据格式的转换. 将设备固有的数据格式转换为网络标准传输格式. (接收不同表现形式的信息, 如文字流, 图像, 声音等.)
- 会话层: 通信管理. 负责建立和断开通信连接. 数据的分割等数据传输相关的管理. 管理传输层以下的分层. (何时建立连接, 何时断开连接以及保持多久的连接)
- 传输层: 起着可靠传输的作用. 只在通信双方节点上进行处理, 而无需在路由器上处理. (是否有数据丢失)
- 网络层: 将数据传输到目标地址, 负责寻址和路由选择. (经过哪个路由传递到目标地址?)
- 数据链路层: 将0, 1序列划分为具有意义的数据帧传送给对端, 互连设备之间传送和识别数据帧. (数据帧与比特流之间的转换)
- 物理层: 以”0”, “1”代表电压的高低, 灯光的闪灭. 界定连接器和网线的规格. (比特流与电子信号之间的切换)
1.6 OSI 参考模型通信处理举例
1.6.1 7 层通信
1.6.2 会话层以上的处理
1.7 传输方式的分类
1.7.1 面向有连接型与面向无连接型
1.7.2 电路交换与分组交换
1.7.3 根据接收端数量分类
- 单播 (Unicast) : 1 对 1 通信.
- 广播 (Broadcast) : 从 1 台主机发送给与之相连的所有其他主机.
- 多播 (Multicast) : 和广播类似, 不同之处在于多播要限定某一组主机作为接收端.
- 任播 (Anycast) : 在特定的多台主机中选出一台作为接收端的通信方式. 对选中的那台特定主机将返回一个单播信号, 随后发送端主机只和这台主机进行通信.
1.8 地址
1.8.1 地址的唯一性
1.8.2 地址的层次性
层次性有助于我们从大量的地址中快速定位到指定地址中, 有点类似于索引. 比如通信地址包含国名, 省名, 市名和区名等, 正是有了这种层次分类才能更加快速地定位某一个地址.
MAC 地址和 IP 地址在标识一个通信主体时虽然都具有唯一性, 但是它们当中只有 IP 地址具有层次性. (虽然 MAC 地址根据厂家啥的也有一点点层次性, 但是对于寻找地址没有起任何作用)
1.9 网络的构成要素
1.9.1 通信媒介与数据链路
1.9.2 网卡
任何一台计算机连接网络时, 必须要使用网卡, 全称为网络接口卡(NIC, Network Information Center), 有时也被叫做网络适配器, 网卡, LAN 卡.
1.9.3 中继器
中继器 (Repeater) 是在 OSI 模型的第 1 层 – 物理层面上延长网络的设备. 由电缆传来的电信号或光信号经中继器的波形调整和放大再传给另一个电缆. 它主要是对减弱的信号进行放大和发送, 即使数据链路层出现某些错误, 中继器仍然转发数据.
一般情况下, 中继器的两端连接的是相同的通信媒介, 但有的中继器也可以完成不同媒介之间的转接工作. 它不能在传输速度不同的媒介之间转发.
通过中继器进行的网络延长, 因为延迟等原因其距离不能无限扩大. design_rules_100_ethernet.
通过中继器而进行的网络延长, 其距离也并非可以无限扩大. 例如一个 10Mbps 的以太网最多可以用 4 个中继器分段连接, 而一个 100Mbps 的以太网则最多只能连两个中继器. (TODO: 为啥会这样? )
有些中继器提供多个端口服务. 这种中继器被称作中继集线器或集线器. (中继集线器也可以简称为集线器或Hub. 但现在人们常说的Hub更多是指 1.9.4 节所说的交换式集线器). 因此, 集线器也可也看作是多口中继器, 每个端口都可以成为一个中继器.
1.9.4 网桥 / 2 层交换机
网桥(连接一个网络与另一个网络)
- 网桥根据数据帧的内容转发数据给相邻的其他网络
- 网桥没有连接网段个数的限制
- 网桥基本上只用于连接相同类型的网络. 但是有时也可以连接传输速率不同的网络
网桥是在 OSI 模型的第 2 层 – 数据链路层面上连接两个网络的设备. 它能够识别数据链路层中的数据帧, 并将这些数据帧临时存储于内存, 再重新生成信号作为一个全新的帧转发给相连的另一个网段. 由于能够存储这些数据帧, 网桥能够连接 10BASE-T 与 100BASE-TX 等传输速率完全不同的数据链路, 并且不限制连接网段的个数.
数据链路的数据帧中有一个数据位叫做 FCS , 用 CRC 循环冗余校验码方式校验数据是否正确的送达了该网桥. 网桥通过检查这个域中的值, 将那些损坏的数据丢弃, 从而避免发送给其他的网段. 此外, 网桥还能通过地址自学机制和过滤功能控制网络流量.
有些网桥能够判断是否将数据报文转发给相邻的网段, 这种网桥被称作自学式网桥. 这类网桥会记住曾经通过自己转发的所有数据帧的 MAC 地址, 并保存到自己的内存表中. 由此, 可以判断哪个网段中包含持有哪类 MAC 地址的设备.
以太网等网络中经常使用的交换集线器(Hub, 具有网桥功能的 Hub 叫做交换集线器. 只有中继功能的 Hub 叫做集线器), 现在基本也属于网桥的一种. 交换集线器中连接电缆的每个端口都能提供类似网桥的功能.
1.9.5 路由器 / 3 层交换机
路由器是在 OSI 模型的第 3 层 – 网络层面上连接两个网络, 并对分组报文进行转发的设备. 网桥是根据物理地址 (MAC 地址) 进行处理, 而路由器 / 3 层交换机则是根据 IP 地址进行处理的. 由此, TCP / IP 中网络层的地址就成为了 IP 地址.
1.9 6 4 ~ 7 层交换机
4 ~ 7 层交换机负责处理 OSI 模型中从传输层至应用层的数据. 如果用 TCP / IP 分层模型来表述, 4 ~ 7 层交换机就是以 TCP 等协议的传输层及其上面的应用层为基础, 分析收发数据, 并对其进行特定的处理.
1.9.7 网关
网关不仅转发数据还负责对数据进行转换, 它通常会使用一个表示层或应用层网关, 在两个不能直接通信的协议之间进行翻译, 最终实现两者之间的通信.
1.10 现代网络实态
1.10.1 网络的构成
1.10.2 互联网通信
1.10.3 移动通信
1.10.4 从信息发布者的角度看网络
2. TCP/IP 基础知识
2.1 TCP / IP 出现的背景及其历史
2.1.1 从军用技术的应用谈起
2.1.2 ARPANET 的诞生
2.1.3 TCP / IP 的诞生
2.1.4 UNIX 系统的普及与互联网的扩张
2.1.5 商用互联网服务的启蒙
2.2 TCP / IP 的标准化
2.2.1 TCP / IP 的具体含义
2.2.2 TCP / IP 标准化精髓
2.2.3 TCP / IP 规范 – RFC
2.2.4 TCP / IP 的标准化流程
2.2.5 RFC 的获取方法
2.3 互联网基础知识
2.3.1 互联网定义
2.3.2 互联网与 TCP / IP 的关系
2.3.3 互联网的结构
2.3.4 ISP 和区域网
2.4 TCP / IP 协议分层模型
2.4.1 TCP / IP 与 OSI 参考模型
2.4.2 硬件 (物理层)
TCP / IP 的最底层是负责数据传输的硬件. 关于它的内容一直无法统一定义. 因为只要人们在物理层面上所使用的传输媒介不同(如使用网线或无线), 网络的带宽, 可靠性, 安全性, 延迟等都会有所不同, 而在这些方面又没有一个既定的指标.
2.4.3 网络接口层 (数据链路层)
把它当做让 NIC 起作用的”驱动程序”也无妨.
2.4.4 互联网层 (网络层)
互联网层使用 IP 协议, 它相当于 OSI 模型中的第 3 层网络层. IP 协议基于 IP 地址转发分包数据.
- IP: IP 是跨越网络传送数据包, 使整个互联网都能收到数据的协议. IP 协议使数据能够发送到地球的另一端, 这期间它使用 IP 地址作为主机的标识. IP 不具有重发机制, 即使分组数据包未能到达对端主机也不会重发, 因此属于非可靠性传输协议.
- ICMP: IP 数据包在发送途中一旦发生异常导致无法到达对端目标地址时, 需要给发送端发送一个发生异常的通知. ICMP 就是为这一功能而制定的.
- ARP: 从分组数据包的 IP 地址中解析出物理地址 (MAC地址) 的一种协议
2.4.5 传输层
传输层最主要的功能就是能够让应用程序之间实现通信. 为分清计算机内部是哪些应用程序在进行通信, 通常是使用端口号.
TCP: 面向有连接的传输层协议. 它可以保证两端通信主机之间的通信可达. 能正确处理在传输过程中丢包, 传输顺序乱掉等异常问题. 还能有效利用带宽, 缓解网络拥堵. 然而, 为了建立和断开连接, 有时它需要至少 7 次的发包收包, 导致网络流量的浪费. 此外, 为了提高网络的利用率, TCP 协议中定义了各种各样复杂的规范, 因此不利于视频会议 (音频, 视频的数据量既定) 等场合使用.
UDP: 面向无连接的传输层协议. UDP 不会关注对端是否真的收到了传送过去的数据, 如果需要检查对端是否收到分组数据包, 或者对端是否连接到网络, 则需要在应用程序中实现.
2.4.6 应用层 (会话层以上的分层)
TCP / IP 的分层中, 将 OSI 参考模型中的会话层, 表示层和应用层的功能都集中到了应用程序中实现.
2.5 TCP / IP 分层模型与通信示例
2.5.2 发送数据包
假设甲给乙发送电子邮件, 内容为: “早上好”. 而从 TCP / IP 通信上看, 是从一台计算机 A 向另一台计算机 B 发送电子邮件. 我们就通过这个例子来讲解一下 TCP / IP 通信的过程.
- 应用程序处理
启动应用程序新建邮件, 将收件人邮箱填好, 再由键盘输入邮件内容 “早上好” , 鼠标点击 “发送” 按钮就可以开始 TCP / IP 的通信了.
首先, 应用程序中会进行编码处理. 例如, 日文电子邮件使用 ISO-2022-JP 或 UTF-8 进行编码. 这些编码相当于 OSI 的表示层功能.
应用在发送邮件的那一刻建立 TCP 连接, 从而利用这个 TCP 连接发送数据. 它的过程首先是将应用的数据发送给下一层的 TCP, 再做实际的转发处理.
- 应用程序处理
- TCP 模块的处理
TCP 根据应用的指示, 负责建立连接, 发送数据以及断开连接. TCP 提供将应用层发来的数据顺利发送至对端的可靠传输.
为了实现 TCP 的这一功能, 需要在应用层数据的前端附加一个 TCP 首部. TCP 首部中包括源端口号和目标端口号 (用以识别发送主机跟接收主机上的应用), 序号 (用以发送的包中哪部分是数据) 以及校验和 (用以判断数据是否被损坏). 随后将附加了 TCP 首部的包再发送给 IP.
- TCP 模块的处理
- IP 模块的处理
IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据, 并在 TCP 首部的前端再加上自己的 IP 首部. 因此, IP 数据包中 IP 首部后面紧跟着 TCP 首部, 然后才是应用的数据首部和数据本身. IP 首部中包含接收端 IP 地址以及发送端 IP 地址. 紧随 IP 首部的还有用来判断其后面数据是 TCP 还是 UDP 的信息.
IP 包生成后, 参考路由控制表决定接受此 IP 包的路由或主机. 随后, IP 包将被发送给连接这些路由器或主机网络接口的驱动程序, 以实现真正发送数据.
如果尚不知道接收端的 MAC 地址, 可以利用 ARP 查找. 只要知道了对端的 MAC 地址, 就可以将 MAC 地址和 IP 地址交给以太网的驱动程序, 实现数据传输.
- IP 模块的处理
- 网络接口 (以太网驱动) 的处理
从 IP 传过来的 IP 包, 对于以太网驱动来说不过就是数据. 给这数据附加上以太网首部并进行发送处理. 以太网首部中包含接收端 MAC 地址, 发送端 MAC 地址以及标志以太网类型的以太网数据的协议. 根据上述信息产生的以太网数据包将通过物理层传输给接收端. 发送处理中的 FCS 由硬件计算, 添加到包的最后. 设置 FCS 的目的是为了判断数据包是否由于噪声而被破坏.
2.5.3 经过数据链路的包
包流动时, 从前往后依次被附加了以太网包首部, IP 包首部, TCP 包首部 (或者 UDP 包首部) 以及应用自己的包首部和数据. 而包的最后则追加了以太网包尾.
2.5.4 数据包接收处理
包的接收流程是发送流程的逆序过程.
- 网络接口 (以太网驱动) 的处理
主机收到以太网包以后, 首先从以太网的包首部找到 MAC 地址判断是否为发给自己的包. 如果不是发给自己的包则丢弃数据.
而如果接收到了恰好是发给自己的包, 就查找以太网包首部中的类型域从而确定以太网协议所传送过来的数据类型. 在这个例子中数据类型显然是 IP 包, 因此再将数据传给处理 IP 的子程序, 如果这时不是 IP 而是其他诸如 ARP 的协议, 就把数据传给 ARP 处理. 总之, 如果以太网包首部的类型域包含了一个无法识别的协议类型, 则丢弃数据.
- 网络接口 (以太网驱动) 的处理
- IP 模块的处理
IP 模块收到 IP 包首部及后面的数据部分以后, 也做类似的处理. 如果判断得出首部中的 IP 地址与自己的 IP 地址匹配, 则可接收数据并从中查找上一层的协议. 如果上一层是 TCP 就将 IP 包首部之后的部分传给 TCP 处理. 如果是 UDP 则将 IP 包首部后面的部分传给 UDP 处理. 对于有路由器的情况下, 接收端地址往往不是自己的地址, 此时, 需要借助路由控制表, 在调查应该送达的主机或路由器以后再转发数据.
- IP 模块的处理
- TCP 模块的处理
在 TCP 模块中, 首先会计算一下校验和, 判断数据是否被破坏. 然后检查是否在按照序号接收数据. 最后检查端口号, 确定具体的应用程序.
数据接收完毕后, 接收端则发送一个 “确认回执” 给发送端. 如果这个回执信息未能达到发送端, 那么发送端会认为接收端没有接收到数据而一直反复发送.
数据被完整地接收以后, 会传给由端口号识别的应用程序.
- TCP 模块的处理
- 应用程序的处理
接收端应用程序会直接接收发送端发送的数据. 通过解析数据可以获知邮件的收件人地址是乙的地址. 如果主机 B 上没有乙的邮件信箱, 那么主机 B 返回给发送端一个 “无效收件地址” 的报错信息.
但在这个例子中, 主机 B 上恰好有乙的收件箱, 所以主机 B 和收件人乙能够收到电子邮件的正文. 邮件会被保存到本机的硬盘上. 如果保存也能正常进行, 那么接收端会返回一个 “处理正常” 的回执给发送端. 反之, 一旦出现磁盘满, 邮件未能成功保存等问题, 就会返回一个 “处理异常” 的回执给发送端.
由此, 用户乙就可以利用主机 B 上的邮件客户端, 接收并阅读由主机 A 上的用户甲所发送过来的电子邮件 – “早上好”.
- 应用程序的处理
3. 数据链路
3.1 数据链路的作用
3.2 数据链路相关技术
3.2.1 MAC 地址
3.2.2 共享介质型网络
3.2.3 非共享介质网络
3.2.4 根据 MAC 地址转发
3.2.5 环路检测技术
3.2.6 VLAN
3.3 以太网
3.3.1 以太网连接形式
3.3.2 以太网的分类
3.3.3 以太网的历史
3.3.4 以太网帧格式
3.4 无线通信
3.4 1 无线通信的种类
3.4.2 IEEE802. 11
3.4.3 IEEE802. 11b 和 IEEE802. 11g
是 2.4GHz 频段中的无线局域网标准. 它们的最大传输速度分别可达到 11Mbps (IEEE802. 11b) 和 54Mbps (IEEE802. 11g), 通信距离可以达到 30 ~ 50 米左右.
3.4.4 IEEE802. 11a
物理层利用 5GHz 频段, 最大传输速度可达到 54Mbps 的一种无线通信标准. 它与 IEEE802. 11b/g 存在一定的兼容性问题, 但是市面上已经有支持这两方面的基站产品. 而且它不使用 2.4GHz 频段 (微波炉使用的频段), 因此也不易受干扰.
3.4.5 IEEE802. 11n
在 IEEE802. 11g 和 IEEE802. 11a 的基础上, 采用同步多条天线的 MIMO 技术, 实现高速无线通信的一种标准. 在物理层使用 2.4GHz 或 5GHz 频段.
在使用 5GHz 频段的情况下, 若能不受其他 2.4GHz 频段系统的干扰, 最大可达到 IEEE802. 11a/b/g 的几倍带宽, 最大传输速度甚至可以达到 150Mps.
3.4.6 使用无线 LAN 时的注意事项
3.4.7 蓝牙
使用 2.4GHz 频率无线电波的一种标准.
3.4.8 WiMAX
3.4.9 ZigBee
3.5 PPP
3.5.1 PPP 定义
3.5.2 LCP 与 NCP
3.5.3 PPP 的帧格式
3.5.4 PPPoE
单纯的以太网没有验证功能, 也没有建立和断开连接的处理, 因此无法按时计费. 而如果采用 PPPoE 管理以太网连接, 就可以利用 PPP 的验证等功能使各家 ISP 可以有效地管理终端用户的使用.
3.6 其他数据链路
3.6.1 ATM
3.6.2 POS
3.6.3 FDDI
3.6.4 Token Ring
3.6.5 100VG-AnyLAN
3.6.6 光纤通道
3.6.7 HIPPI
3.6.8 IEEE1394
3.6.9 HDMI
3.6.10 iSCSI
3.6.11 InfiniBand
3.6.12 DOCSIS
3.6.13 高速 PLC
3.7 公共网络
3.7.1 模拟电话线路
3.7.2 移动通信服务
3.7.3 ADSL
3.7.4 FTTH
3.7.5 有线电视
3.7.6 专线
3.7.7 VPN
3.7.8 公共无线 LAN
3.7.9 其他公共无线通信服务
4. IP 协议
4.1 IP 即网际协议
4.1.1. IP 相当于 OSI 参考模型的第 3 层
4.1.2 网络层与数据链路层的关系
IP 基础知识
4.2.1 IP 地址属于网络层地址
4.2.2 路由控制
4.2.3 数据链路的抽象化
4.2.4 IP 属于面向无连接型
IP 面向无连接. 即在发包之前, 不需要建立与对端目标地址之间的连接. 上层如果遇到需要发送给 IP 的数据, 该数据会立即被压缩成 IP 包发送出去.
在面向有连接的情况下, 需要事先建立连接. 如果对端主机关机或不存在, 也就不可能建立连接.
而面对无连接的情况则不同. 即使对端主机关机或不存在, 数据包还是会被发送出去.
4.3 IP 地址的基础知识
4.3.1 IP 地址的定义
4.3.2 IP 地址由网络和主机两部分标识组成
4.3.3 IP 地址的分类
4.3.4 广播地址
4.3.5 IP 多播
4.3.6 子网掩码
4.3.7 CIDR 与 VLSM
4.3.8 全局地址与私有地址
4.3.9 全局地址由谁决定
4.4 路由控制
4.4.1 IP 地址与路由控制
路由控制表中记录着网络地址与下一步应该发送至路由器的地址.
4.4.2 路由控制表的聚合
利用子网掩码, 通过路由信息的聚合可以有效地减少路由表的条目.
4.5 IP 分割处理与再构成处理
4.5.1 数据链路不同, MTU 则相异
4.5.2 IP 报文的分片与重组
数据包经过不同路径, 它们的最大传输单元 (MTU) 不一样, 因此对于同一个数据包可能采用不同的分片策略.
4.5.3 路径 MTU 发现
4.6 IPv6
4.6.1 IPv6 的必要性
4.6.2 IPv6 的特点
4.6.3 IPv6 中 IP 地址的标记方法
4.6.4 IPv6 地址的结构
4.6.5 全局单播地址
世界上唯一的一个地址.
4.6.6 链路本地单播地址
不经过路由器, 在同一个数据链路内唯一的地址.
4.6.7 唯一本地地址
不进行互联网通信时所使用的地址.
4.6.8 IPv6 分段处理
4.7 IPv4 首部
4.8 IPv6 首部格式
IPv6 中为了减轻路由器的负担, 省略了首部校验和字段. 因此路由器不再需要计算校验和, 从而也提高了包的转发效率.
5. IP 协议相关技术
IP (Internet Protocol) 旨在让最终目标主机收到数据包, 但是在这一过程中仅仅有 IP 是无法实现通信的. 必须还有能够解析主机名称和 MAC 地址的功能, 以及数据包在发送过程中异常情况处理的功能. 此外, 还会涉及 IP 必不可少的其他功能.
本章主要介绍作为 IP 的辅助和扩展规范的 DNS, ARP, ICMP 以及 DHCP 等协议.
5.1 仅凭 IP 无法完成通信
5.2 DNS
5.2.1 IP 地址不便记忆
一开始是主机定期更新本机的 hosts 文件, 从而通过主机名获取 IP 地址.
5.2.2 DNS 的产生
在上述背景之下, 产生了一个可以有效管理主机名和 IP 地址之间对应关系的系统, 那就是 DNS 系统. 它可以维护一个用来表示组织内部主机名和 IP 地址之间对应关系的数据库.
5.2.3 域名的构成
5.2.4 DNS 查询
5.2.5 DNS 如同互联网中的分布式数据库
5.3 ARP
5.3.1 ARP 概要
5.3.2 ARP 的工作机制
5.3.3 IP 地址和 MAC 地址缺一不可?
5.3.4 RARP
RARP 是将 ARP 反过来, 从 MAC 地址定位 IP 地址的一种协议. 例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到.
5.3.5 代理 ARP
5.4 ICMP
5.4.1 辅助 IP 的 ICMP
架构 IP 网络时需要特别注意两点: 确认网络是否正常工作, 以及遇到异常时进行问题诊断.
例如, 一个刚刚搭建好的网络, 需要验证该网络的设置是否正确. 此外, 为了确保网络能够按照预期正常工作, 一旦遇到什么问题需要立即制止问题的蔓延. 为了减轻网络管理员的负担, 这些都是必不可少的功能.
ICMP 的主要功能包括, 确认 IP 包是否成功送达目标地址, 通知在发送过程当中 IP 包被废弃的具体原因, 改善网络设置等. (但 ICMP 是基于尽力交付的 IP 上进行工作的, 而且在网络安全优先于便利性的环境里往往无法使用 ICMP , 因此不宜过分依赖 ICMP)
ICMP 的消息大致可以分为两类: 一类是通知出错原因的错误消息, 另一类是用于诊断的查询消息.
5.4.2 主要的 ICMP 消息
5.4.3 其他 ICMP 消息
5.4.4 ICMPv6
5.5 DHCP
5.5.1 DHCP 实现即插即用
5.5.2 DHCP 的工作机制
- DHCP 客户端: 广播发现包, 目标地址 255.255.255.255 源地址 0.0.0.0 (未知)
- DHCP 服务器: 返回提供包
- DHCP 客户端: 广播请求包
- DHCP 服务器: 返回允许的提供包
为什么要区分两个阶段? 简单来说 DHCP 客户端在广播发现包时可能会收到多台 DHCP 服务器的返回提供包.
为了检查所要分配的 IP 地址以及已经分配了的 IP 地址是否可用, DHCP 服务器或 DHCP 客户端必须具备以下功能:
DHCP 服务器
在分配 IP 地址前发送 ICMP 回请求包, 确认没有返回应答.(如果 IP 冲突会收到回复)DHCP 客户端:
针对从 DHCP 那里获得的 IP 地址发送 ARP 请求包, 确认没有返回应答.(如果 IP 冲突会收到对方的广播回复)
5.5.3 DHCP 中继代理
一个企业或学校等较大规模组织机构的网络环境当中, 一般会有多个以太网 (无线 LAN) 网段. 这种情况下对每个网段设置 DHCP 服务器将会难以维护. 这种情况往往需要将 DHCP 统一管理, 具体方法可以使用 DHCP 中继代理来实现. 有了 DHCP 中继代理以后, 对不同网段的 IP 地址分配也可以由一个 DHCP 服务器统一进行管理和运维.
5.6 NAT
5.6 NAT 定义
NAT (Network Address Translator) 是用于在本地网络中使用私有地址, 在连接互联网时转而使用全局 IP 地址的技术. 除转换 IP 地址外, 还出现了可以转换 TCP, UDP 端口号的 NAPT (Network Address Ports Translator) 技术, 由此可以实现用一个全局 IP 地址与多个主机的通信.
5.6.2 NAT 的工作机制
5.6.3 NAT-PT (NAPT-PT)
是将 IPv6 的首部转换为 IPv4 的首部的一种技术.