编辑推荐
适读人群 :本书适合作为高等院校计算机网络及相关专业课程的教材,也适合网络管理员、运维人员、工程师、系统设计师和管理者以及其他需要了解网络知识的技术人员(如芯片设计者、电信工程师、软件工程师等)参考。 1. 新颖、现代的流行话题。读者可以了解*新网络设备、操作系统、路由协议(包括MPLS,BGP,组播)以及*新的网络服务和实现(如IPSec,VPN和VoIP)2. 看图说话。提供实际的图例,通过一个运行网络配置的例子,介绍TCP/IP如何工作。超过330个图例。书中含有大量图片、截屏图、拓扑结构和独特的开章图例,帮助读者理解相关概念。3. 完全基于实际网络。本书包含一个完整和现代的网络,大量资料来自网络中的真实设备。
内容简介
本书讲解各种网络协议如何在更大、更复杂的现代网络中实际应用并不断发展。综合运用自20世纪90年代中期以来的所有网络新技术构建了一个复杂的网络,通过使用服务器和路由器等设备,以一个网络为例详细解释了TCP/IP协议如何运行。示例网络与真实运转网络的配置是一致的,包括服务器、路由器和工作站,其中每个对象都是来自于真实运行在网络中的互联实体。
作者简介
Walter Goralski,是Juniper Network的高级工程师和技术编辑,负责各种项目的文档规范,其中包括组播的服务质量,以及Metro以太网。在网络领域有40多年从业经验。
目录
第一部分 网 络 基 础
第1章 协议和分层
1.1 本书中的网络
1.1.1 网络设备的远程访问
1.1.2 传输文件到路由器
1.1.3 命令行界面和图形用户界面
1.1.4 Ethereal和数据包的捕获
1.1.5 第一次探索网络
1.2 协议
1.2.1 标准和组织
1.2.2 征求意见稿和互联网工程任务组
1.3 互联网的管理
1.4 分层
1.4.1 简单组网
1.4.2 协议分层
1.5 TCP/IP协议族
1.5.1 TCP/IP参考模型分层
1.5.2 协议和接口
1.5.3 封装
1.6 TCP/IP分层
1.6.1 物理层
1.6.2 数据链路层
1.6.3 网络层
1.6.4 传输层
1.6.5 应用层
1.6.6 会话支持
1.6.7 内部表示转换
1.6.8 TCP/IP中的应用程序
1.7 TCP/IP协议族
1.8 留给读者的问题
第2章 TCP/IP协议和设备
2.1 网络的协议栈
2.2 分层、 协议、 端口和套接字
2.3 TCP/IP协议栈
2.4 客户端服务器模型
2.5 TCP/IP协议层和客户端服务器
2.6 IP层
2.7 传输层
2.7.1 传输控制协议
2.7.2 用户数据报协议
2.8 应用层
2.9 网桥、 路由器和交换机
2.9.1 局域网分段
2.9.2 网桥
2.9.3 路由器
2.9.4 局域网交换机
2.9.5 虚拟局域网
2.9.6 VLAN帧标签
2.10留给读者的问题
第3章 网络链路技术
3.1 示例网络的连接
3.1.1 显示以太网流量
3.1.2 显示SONET链路
3.1.3 显示DSL链路
3.1.4 显示无线链路
3.1.5 帧和链路层
3.2 数据链路层
3.3 以太网的演进
3.3.1 Ethernet II和IEEE 802.3帧
3.3.2 MAC地址
3.4 数字用户线(DSL)的演进
3.4.1 点到点协议(PPP)和数字用户线(DSL)
3.4.2 PPP成帧
3.4.3 DSL封装
3.4.4 DSL构成
3.5 同步光纤网络(SONET)的演进
3.5.1 网络错误的说明
3.5.2 基于SONET/SDH的分组封装
3.6 无线局域网和IEEE 802.11
3.6.1 WiFi
3.6.2 IEEE 802.11 MAC层协议
3.6.3 IEEE 802.11帧
3.7 留给读者的问题
第二部分 核 心 协 议
第4章 IPv4和IPv6寻址
4.1 IP寻址
4.2 网络/主机边界
4.3 IPv4地址
4.3.1 IPv4私有地址
4.3.2 理解IPv4地址
4.4 IPv6地址
4.4.1 IPv6地址的特征
4.4.2 IPv6地址类型和表示方法
4.4.3 IPv6地址前缀
4.5 子网划分和超网划分
4.5.1 IPv4中的子网划分
4.5.2 子网划分基础
4.5.3 CIDR和VLSM
4.6 IPv6寻址细节
4.6.1 IP地址分配
4.7 留给读者的问题
第5章 地址解析协议
5.1 ARP和局域网
5.2 ARP报文
5.3 ARP操作案例
5.4 ARP的变种
5.4.1 代理ARP协议
5.4.2 反向地址解析协议
5.4.3 广域网的ARP协议
5.5 ARP和IPv6
5.5.1 邻居发现协议
5.5.2 ND地址解析
5.6 留给读者的问题
第6章 IPv4和IPv6头部
6.1 分组头部和地址
6.2 IPv4分组头部
6.3 分片和IPv4
6.3.1 分片和最大传输单元
6.3.2 分片和重组
6.3.3 路径MTU的确定
6.4 一个分片的例子
6.4.1 IPv4的局限
6.4.2 IPv6头部结构
6.5 IPv4头部和IPv6头部的比较
6.5.1 IPv6头部改动
6.6 IPv6和分片
6.7 留给读者的问题
第7章 网际控制报文协议
7.1 ICMP和ping
7.2 ICMP消息格式
7.2.1 ICMP消息字段
7.2.2 ICMP类型字段和代码字段
7.3 ICMP消息的发送
7.3.1 必须发送ICMP的情况
7.3.2 不能发送ICMP的情况
7.4 ping
7.5 traceroute
7.6 路径MTU
7.7 ICMPv6
7.7.1 基本的ICMPv6消息
7.7.2 邻居发现和自动配置
7.7.3 路由和邻居发现
7.7.4 接口地址
7.7.5 邻居请求和宣告
7.8 留给读者的问题
第8章 路由
8.1 路由器和路由表
8.2 主机和路由表
8.3 直接和间接交付
8.3.1 路由选择
8.3.2 没有路由的直接交付
8.3.3 间接交付和路由器
8.4 留给读者的问题
第9章 IP分组转发
9.1 路由器架构
9.1.1 基本的路由架构
9.1.2 另一种路由器架构
9.2 路由器访问
9.2.1 控制台端口
9.2.2 辅助端口
9.2.3 网络
9.3 转发表查找
9.4 双栈、 隧道和IPv6
9.4.1 双协议栈
9.4.2 隧道
9.5 隧道机制
9.6 为过渡所做的考虑
9.7 留给读者的问题
第10章 用户数据报协议
10.1 UDP端口和套接字
10.2 UDP用来做什么
10.3 UDP包头
10.4 IPv4和IPv6的注意事项
10.5 端口号
10.5.1 熟知端口
10.5.2 套接字
10.6 UDP操作
10.7 UDP溢出
10.8 留给读者的问题
第11章 传输控制协议
11.1 TCP与连接
11.2 TCP头部
11.3 TCP的机制
11.4 连接和三次握手
11.4.1 连接建立
11.4.2 数据传输
11.4.3 关闭连接
11.5 流量控制
11.5.1 TCP的窗口
11.5.2 流量控制和拥塞控制
11.6 性能算法
11.7 TCP和FTP
11.8 留给读者的问题
第12章 多路复用和套接字
12.1 层和应用
12.2 套接字接口
12.2.1 套接字库
12.2.2 TCP流服务调用
12.3 套接字接口: 是好还是坏
12.3.1 原始套接字的“威胁”
12.3.2 套接字库(不同操作系统)
12.4 Windows套接字接口
12.4.1 TCP/IP和Windows
12.4.2 Windows的套接字
12.5 基于Linux的套接字
12.6 留给读者的问题
第三部分 路由和路由协议
第13章 路由和对等节点
13.1 网络层路由和交换
13.2 面向连接的和无连接的网络
13.2.1 服务质量
13.3 主机路由表
13.3.1 路由表和FreeBSD
13.3.2 路由表和RedHat Linux
13.3.3 路由和Windows XP
13.4 互联网和自治域系统
13.5 当今的互联网
13.6 路由策略的作用
13.7 对等节点
13.8 选择一个对等节点
13.9 留给读者的问题
第14章 内部网关协议: RIP,OSPF和IS?IS
14.1 内部路由协议
14.2 3个主要的IGP
14.3 路由信息协议
14.3.1 距离向量路由协议
14.3.2 链路断开
14.3.3 距离向量的问题
14.3.4 RIPv1
14.3.5 RIPv2
14.3.6 为IPv6设计的RIPng
14.4 关于IGRP和EIGRP的介绍
14.4.1 开放最短路径优先
14.4.2 链路状态与最短路径
14.4.3 OSPF可以做什么
14.4.4 OSPF路由器类型及区域
14.4.5 OSPF指定路由器和备份指定路由器
14.4.6 OSPF数据报文
14.4.7 用于IPv6的OSPFv3
14.5 中间系统到中间系统
14.5.1 IS?IS的吸引力
14.5.2 IS?IS与OSPF
14.5.3 OSPF与IS?IS的相似之处
14.5.4 OSPF与IS?IS的区别
14.5.5 用于IPv6的IS?IS
14.6 留给读者的问题
第15章 边界网关协议
15.1 BGP作为路由协议
15.1.1 配置BGP
15.1.2 路由策略的能力
15.2 BGP与互联网
15.2.1 EGP与早期互联网
15.2.2 BGP的产生
15.3 BGP作为一种路径向量协议
15.4 IBGP与EBGP
15.4.1 IGP下一跳与BGP下一跳
15.4.2 BGP与内部网关协议
15.5 其他BGP协议
15.6 BGP属性
15.7 BGP与路由策略
15.7.1 BGP扩张
15.8 BGP消息类型
15.9 BGP消息格式
15.9.1 打开消息
15.9.2 更新消息
15.9.3 通知消息
15.10留给读者的问题
第16章 组播
16.1 初识IPv4组播传输协议
16.2 组播术语
16.3 密集型组播和稀疏型组播
16.4 关于组播的一些特殊标记
16.5 组播概念
16.5.1 逆向路径转发
16.5.2 RPF表
16.5.3 填充RPF表
16.5.4 最短路径树
16.5.5 汇聚点和汇聚点共享树
16.6 组播协议
16.6.1 组播主机和路由器
16.6.2 组播组成员协议
16.6.3 组播路由协议
16.6.4 任意源组播和SSM
16.6.5 组播源发现协议
16.6.6 帧和组播
16.6.7 IPv4组播地址
16.6.8 IPv6组播地址
16.6.9 PIM?SM
16.6.10资源预留协议和PGM
16.6.11组播路由协议
16.6.12IPv6组播
16.7 留给读者的问题
第17章 MPLS和IP交换
17.1 融合什么
17.1.1 快速分组交换
17.1.2 帧中继
17.1.3 异步传输模式
17.1.4 为什么还是走到了TCP/IP的局面
17.2 MPLS
17.2.1 MPLS术语
17.2.2 信令和MPLS
17.2.3 标签栈
17.2.4 MPLS和VPN
17.2.5 MPLS表
17.3 用静态LSP配置MPLS
17.3.1 入口路由器
17.3.2 转接路由器
17.3.3 出口路由器
17.3.4 traceroute和LSP
17.4 留给读者的问题
第三部分 应 用 层
第18章 动态主机配置协议
18.1 DHCP和地址分配
18.1.1 DHCP服务器配置
18.1.2 路由器中继代理配置
18.1.3 在LAN2上获取地址
18.1.4 在网络上使用DHCP
18.2 BOOTP
18.2.1 BOOTP的实现
18.2.2 BOOTP消息
18.2.3 BOOTP中继代理
18.2.4 BOOTP“厂商特定区”选项
18.3 简单文件传输协议
18.3.1 TFTP消息
18.3.2 TFTP下载
18.3.3 DHCP
18.3.4 DHCP操作
18.3.5 DHCP消息类型选项
18.4 DHCP和路由器
18.4.1 DHCPv6
18.4.2 DHCPv6和路由宣告
18.4.3 DHCPv6操作
18.5 留给读者的问题
第19章 域名系统
19.1 DNS基础
19.1.1 DNS体系结构
19.1.2 根域名服务器
19.1.3 根服务器的操作
19.1.4 根服务器详情
19.2 理论上的DNS: 域名服务器、 数据库、 解析器
19.2.1 增加一个新的主机
19.2.2 递归和迭代请求
19.2.3 委派及查询
19.2.4 胶水记录
19.3 实践中的DNS: 资源记录和消息格式
19.3.1 DNS消息头
19.3.2 DNSSec
19.3.3 DNS工具: nslookup、 dig和host
19.4 DNS实例
19.5 留给读者的问题
第20章 文件传输协议
20.1 综述
20.1.1 PORT和PASV
20.2 FTP和GUIS
20.2.1 FTP基础
20.2.2 FTP命令与应答码
20.2.3 FTP数据传输
20.2.4 被动模式和端口
20.2.5 文件传输类型
20.2.6 FTP出错
20.3 FTP命令
20.3.1 变种技术
20.3.2 关于NFS
20.4 留给读者的问题
第21章 简单邮件传输协议和邮件
21.1 电子邮件的架构
21.1.1 如今的邮件发送
21.1.2 电子邮件的演进简史
21.1.3 SMTP认证
21.1.4 简单邮件传输协议
21.2 多用途互联网邮件扩展
21.2.1 MIME媒体类型
21.2.2 MIME编码
21.2.3 MIME消息的样例
21.3 使用POP3访问电子邮件
21.4 电子邮件及其头部
21.5 家庭办公室的邮件
21.6 留给读者的问题
第22章 超文本传输协议
22.1 HTTP的实现
22.1.1 统一资源
22.1.2 URI(统一资源标识符)
22.1.3 URL(统一资源定位符)
22.1.4 URN(统一资源名称)
22.2 HTTP
22.2.1 HTTP的演进
22.2.2 HTTP模型
22.2.3 HTTP消息
22.3 TRAILERS和动态Web页面
22.3.1 HTTP请求和应答
22.3.2 HTTP方法
22.3.3 HTTP状态码
22.3.4 HTTP头部
22.3.5 一般头部
22.3.6 请求头部
22.3.7 应答头部
22.3.8 实体头部
22.3.9 cookie
22.4 留给读者的问题
第23章 安全套接字与SSL
23.1 SSL与网站
23.1.1 安全锁
23.1.2 安全套接字层
23.2 隐私性、完整性以及认证
23.2.1 隐私性
23.2.2 完整性
23.2.3 认证
23.3 公钥加密
23.3.1 在客户端用便携式计算器加密
23.3.2 例子
23.3.3 用便携式计算器在服务器上解码
23.4 公钥与对称加密
23.5 SSL协议
23.5.1 SSL协议栈
23.5.2 SSL会话建立
23.5.3 SSL数据传输
23.5.4 SSL实现
23.5.5 SSL的不足与争议
23.5.6 TLS 1.1的注意事项
23.5.7 SSL与证书
23.6 留给读者的问题
第五部分 网 络 管 理
第24章 简单网络管理协议
24.1 SNMP功能
24.2 SNMP模型
24.2.1 MIB库和SMI
24.2.2 SMI
24.2.3 MIB
24.2.4 RMON
24.2.5 私有MIB
24.3 SNMP操作
24.3.1 SNMPv2增强
24.3.2 SNMPv3
24.4 留给读者的问题
第六部分 安 全
第25章 Secure Shell(远程访问)
25.1 使用SSH
25.1.1 SSH基础
25.1.2 SSH功能
25.1.3 SSH架构
25.1.4 SSH密钥
25.1.5 SSH协议的操作
25.1.6 传输层协议
25.1.7 认证协议
25.1.8 连接协议
25.1.9 文件传输协议
25.2 SSH的使用
25.3 留给读者的问题
第26章 基于MPLS的虚拟专用网
26.1 PPTP的隐私性
26.1.1 VPN的种类
26.1.2 安全性和VPN
26.1.3 VPN和协议
26.1.4 PPTP协议
26.1.5 L2TP协议
26.1.6 PPTP和L2TP的对比
26.2 基于MPLS的VPN的类型
26.2.1 三层VPN(L3VPN)
26.2.2 二层VPN(L2VPN)
26.3 VPLS: 基于MPLS的L2VPN
26.3.1 每个路由器的VPLS配置
26.4 配置真的起作用吗
26.5 留给读者的问题
第27章 网络地址转换
27.1 使用NAT
27.1.1 NAT的优点和缺点
27.1.2 4种类型的NAT
27.2 实施NAT
27.3 留给读者的问题
第28章 防火墙
28.1 防火墙的工作
28.1.1 一种路由器数据包过滤器
28.1.2 路由器上的状态检测
28.2 防火墙的类型
28.2.1 数据包过滤
28.2.2 应用代理
28.2.3 状态检测
28.2.4 DMZ
28.3 留给读者的问题
第29章 IP安全
29.1 IPSec的使用
29.1.1 CE0
29.1.2 CE6
29.2 IPSec简介
29.2.1 IPSec的RFC
29.2.2 IPSec的实现
29.2.3 IPSec传输与隧道模式
29.3 安全关联及其他
29.3.1 安全策略
29.3.2 认证头部
29.3.3 封装安全载荷
29.3.4 互联网密钥交换
29.4 留给读者的问题
第七部分 媒 体
第30章 IP语音
30.1 VoIP的使用
30.1.1 VoIP的优势
30.1.2 什么是“语音”
30.1.3 时延问题
30.1.4 语音分组化
30.2 VoIP协议
30.2.1 VoIP传输的RTP协议
30.2.2 信令
30.2.3 H.323国际标准
30.2.4 SIP协议,互联网标准
30.2.5 MGCP以及Megaco/H.248
30.3 多种技术的融合
30.4 留给读者的问题
缩略语
参考文献
前言/序言
译者序
学习计算机网络技术,特别需要理论与实践相结合。在各种TCP/IP的论著中,能将理论与实践相结合的,最著名的就是W. Richard Stevens的《TCP/IP详解》。这套书共三卷,结合网络配置、数据截图等方式讲解了网络互联的基本概念和机制,网络协议的细节和实现,以及应用层的设计原则和技术。对于从事计算机网络的教师以及科研人员,这套书是必读的。
本书则是对《TCP/IP详解》的改进。作者通过与Juniper网络公司的合作,搭建了一个真实的、接近生产规模级的网络,该网络包含了通过SONET链路连接的六个路由器、两个以太局域网、两对Windows客户端和服务器、一对Linux主机和一对FreeBSD主机,这是一般计算机网络科研人员难以做到的。本书中每章的内容都基于同样的网络拓扑和IP地址进行阐述,随着技术的不断深入,逐渐完成对路由器、客户端以及服务器的配置,生动、灵活地给读者展示了每种技术在实际网络中的效果,这是纯粹的理论知识介绍的书籍所无法包含的。
本书涵盖了TCP/IP网络中的大部分热门技术,与经典的TCP/IP书籍一样,采用了由下而上的方法介绍协议栈,概念清楚、准确,讲解详细,例子很多。作者在书中所介绍的协议或技术均在作者搭建的真实网络中进行了实验验证,详细给出了网络配置过程以及数据交互的截图,并针对每章的内容留有一定数量的思考题。
对于学习和了解计算机网络的本科生和研究生,本书可以作为他们的教材和教学参考书。对于那些从事网络工程和技术服务的技术人员,如网络管理员、运维人员、工程师、系统设计师和管理者,以及其他需要了解网络知识的技术人员(如芯片设计者、电信工程师、软件工程师等),本书也是一本很好的理论和实践相结合的参考读物。
参加本书翻译的有: 黄小红、闫屾、张沛、赵钦、苑婷婷、牟澄、卢军强。全书由马严教授审校。
我们曾经期望按照中文习惯来叙述本书的内容,但是限于精力和水平,最后未能完全做到这一点,翻译中也难免有不妥或错误之处,敬请读者谅解和指正。
序
世纪交替之际,网络融合已经成为行业发展趋势。通过将数据、语音、视频、虚拟专用网(VPN)以及其他服务融合到一套共享的基础设施中,除了能够减少投资,带来巨大的经济利益以外,更能够降低运维成本,使得互联网提供商不必针对某种服务而运维特定的设备和系统。网络融合的基本原则是使用一套相同的基础设施支持多样化的服务,即通过一个通用的封装协议,满足不同服务的传输需求——互联网协议(Internet Protocol)就是这样的协议。
一切基于IP
网络行业发展日新月异。10年乃至更短的时间就足可以使一个新兴的前沿技术由萌发走向凋亡(如ATM、帧中继、令牌环或FDDI等)。然而,自20世纪60年代早期有了最初的想法,TCP/IP奇迹般地走过了35年的历史,并逐步发展壮大,至今仍在不断演进、前行。
这个由Vint Cerf与Bob Kahn在1973年提出的协议已经经历了(且将继续经历)数百次的改进和一次版本的重大升级,然而其核心功能与之在20世纪80年代中期时的状态几乎无异。在一个优胜劣汰极为残酷的技术行业里,TCP/IP的高龄强有力地证明了其过人之处。
目前为止,并没有任何明显迹象表明IP技术将要退出历史舞台。与此相反,越来越多基于IP的新应用、新设备和新服务不断涌现,而IP协议的新版本——IPv6协议,因其可以为未来网络发展提供足够的地址空间,网络升级过渡的必要性也日渐凸显。虽然写本序时IPv6尚处于部署的早期阶段,但可能读者将来某一天阅读本书时,IPv6已成为大多数人所知道的唯一IP版本。
TCP/IP逐步统治网络行业的故事早已在业内广为流传。Cerf、kahn、Jon Postel 等人以及其他对TCP/IP早期发展做出贡献的人同样是ARPANET(现代互联网的前身)的创始成员。在协议栈被集成到UNIX系统后,TCP/IP受到了开发者的追捧和欢迎,这为之奠定了雄厚的基础,使得其有更多的机会扎根于早期尚处在襁褓阶段的网络工业中。
早期,TCP/IP被认可的程度并不理想。以政府部门和电信公司为代表的组织机构对于工作组那套“先让它试试,看看到底能怎样”的不正式的标准化过程感到难以接受,这些严谨的组织更愿意使用那些通过严格标准过程所产出的协议。毕竟在当时谁也无法相信,一群满腔热血的学生竟然最终促成了如今的互联网工程任务组(IETF)。因此,国际标准化组织(ISO)被任命来开发一个“成熟的”网络协议族,这一协议族最终发展成为后来的开放系统互连(OSI)。
ISO擅长设计复杂而详尽的技术标准,并且只有当标准处于完成、可生产的状态下才进行发布,这种做法需要消耗大量的时间。OSI主张先使用TCP/IP作为临时的解决方案,待到ISO标准委员会完成全部工作之后再做打算。然而,等OSI做好准备时,TCP/IP早已被广泛部署、验证和熟知,极少有网络运营商愿意将业务迁移到新协议上。
OSI之所以保留到今天,主要是因为IS�睮S协议和那无所不在的OSI参考模型,而TCP/IP协议则成为了全球性的通信传输协议标准。
图解网络
我是一个注重图形表达的人。我欣赏很多同事通过口头详述即可构建网络场景的能力,而我则更擅长使用图形的方式来完成对其的阐述与理解。
1994年,W. Richard Stevens发布了《TCP/IP详解》的第一卷,它马上成为了我最喜欢的书籍之一,同时也排在了我给学生推荐的参考书目清单的首位。Stevens使用图表、配置以及数据截图来讲授TCP/IP协议栈,这使得该书不仅仅是一本成功的教科书,更是一本全面的案例研究。本书的可视化效果非常好,读者完全不必坐在协议分析器前就能观察数据包的来回传输。
尽管Stevens的著作在阐释单独的TCP/IP组件的行为方面已经非常出色,但它并没有诠释这些组件在一个大型的真实网络中是如何交互的。
Walt Goralski着重对此做出了改进。本书同样使用了由下而上的方法(Stevens的原话)来讲授协议栈:每一章都建立在前面章节的基础上,向读者展示协议是如何工作的。通过运行Juniper网络,读者不仅能够看到实验室级别的设备交互,还能看到当今生产级规模的网络场景,进而领略作者在真实、可视的自然状态下对TCP/IP协议的探索与研究。
本书必将成为IP网络实际应用的经典书籍之一,会是学生必读书目列表的基石之一,受到专业人士的喜爱。
Jeff Doyle
Westminster,Colorado
前言
这并不是一本教你如何使用互联网的著作,而是告诉读者互联网是如何成为对用户有用的网络的。互联网是一个公共的、全球性的网络,基于TCP/IP协议,故其通常又称为互联网协议族。网络协议就是一系列为了完成某些功能所必须遵守的规则。TCP/IP 实际上是传输控制协议(TCP)和互联网协议(IP)两个协议的合成,这两个协议可以使信息在网络之间进行传输,是互联网早期最先使用的两个协议。TCP/IP是现代网络的核心与灵魂,本书则使用图解的方式介绍了它们的工作流程。通过跟踪数据在各种互联网连接中的传输过程,读者可以观察到现今的网络是如何在TCP/IP的支撑下完成工作的。
读者对象
本书主要介绍通用网络技术,尤其是互联网技术。我并不肯定丝毫网络知识经验都没有的人可以理解整本书籍的内容。但是,任何只要在线收发过邮件、浏览过网页、下载过电影或歌曲,与世界各地的亲友聊过天的人,在理解本书内容时都不会感到过于困难。
在每章的末尾都留有思考题,这使得本书可以作为高中学生或者计算机科学和电子工程院系的大学生研修第一门计算机网络课程的教科书。同时,它又不仅仅是一本教科书,对于那些初涉电信行业或致力于入职以互联网为其业务计划重要组成部分的公司(这样的公司越来越多)的读者而言,本书具有同样的宝贵价值。
书中只有一章用到了C语言的代码,并且它仅仅是为了给读者提供一些必要信息,所有高中阶段没有纳入的数学内容在本书中都没有被提及。书中没有微积分、没有概率论,没有随机过程等等内容,一切内容简单易懂。一些必须用到数学功底的内容,比如公钥加密内容中使用的“便携式计算机”以及Diffie�睭ellman密钥分配案例等,作者都认真地进行了设计,使得数学内容变得尽可能简单。
本书独一无二的特点
本书的过人之处在于你很难在其他同类书籍中找到有关TCP/IP的如下内容:
1. 书中每一章的每个案例都基于相同定义的网络拓扑和网络地址;
2. 同等对待IPv4和IPv6协议,同步介绍两种互联网协议涉及的所有概念;
3. 除TCP/IP协议外,本书还讲解了路由协议以及TCP/IP的上层应用;
4. 书中讨论的网络模型基于真实的网络运营商和企业级的以太网;
5. 既讲解利用协议所能实现的服务和功能,又讲解功能背后的协议原理;
6. 涵盖了诸如MPLS、IPSec等一般讲解TCP/IP书籍中所不涉及的话题。
那么,本书采用此种方式阐述的初衷为何呢?我观察到,即使是生活在如今互联网发达的时代里,仍然很少有人研究整个网络,更鲜有将路由器、TCP/IP、互联网和大量相关主题融会贯通的案例。看上去讲了不少,学了很多,但是当考虑与这些议题相关的复杂原理时你就会发现,泛在的计算机“扫盲教学”和基本编程语言课程真正所覆盖的内容少之又少。
当我写这本书并将它打印出来放在我工作的地方时,一名芯片设计师发现了它,并饶有兴趣地开始阅读。当我回来取打印稿时,他正着迷于某些章节,并当场表示对于本书的获取意愿。通过与他的交谈,我意识到成千上万的人进入了互联网行业,其中很多人都来自其他学科和领域。随着互联网的发展,社会对于数字通信结构的依赖仍在继续,越来越多的人需要这样的综述来了解现今的网络是如何运转的。仅靠本书中零星的网络知识肯定无法满足读者的求知欲和好奇心。我希望每一位读者都能寻找到一种方法,增长对于某个感兴趣领
《穿越网络的脉络:深度解析网络通信的奥秘》 在数字时代,网络已如空气般渗透进我们生活的方方面面,从指尖轻触的社交媒体,到支撑全球商业运转的庞大系统,一切都离不开它。然而,当我们享受着信息即时传递的便利时,其背后那复杂精妙的运行机制,往往鲜为人知。本书《穿越网络的脉络:深度解析网络通信的奥秘》旨在揭开网络通信的神秘面纱,带领读者深入探究信息如何在亿万设备间如丝般顺滑地流动,理解那些支撑起我们数字世界的底层原理。 本书并非对某个特定工具或协议的简单罗列,而是着眼于网络通信的整体架构和核心概念,力求为读者构建一个清晰、连贯的知识体系。我们将从最基础的网络模型开始,逐步剖析每一层协议栈的作用,以及它们之间是如何协同工作的。这不仅仅是一次技术性的探索,更是一次思维的锻炼,帮助您理解抽象概念在现实世界中的具体体现。 第一部分:网络的基石——模型与协议的逻辑 旅程伊始,我们将首先聚焦于网络通信的理论框架——OSI模型和TCP/IP模型。虽然OSI模型更多地是一种理想化的理论模型,但它清晰地划分了七个逻辑层,为我们理解网络功能提供了宝贵的视角。我们将详细阐述每一层的功能: 物理层 (Physical Layer): 数据的物理传输介质,如网线、光纤,以及信号的编码和传输方式。这里,信息不再是抽象的0和1,而是转化为电信号、光信号或无线电波,在现实世界中跳跃。我们将探讨不同传输介质的特性、信号的调制解调技术,以及它们如何影响传输速率和稳定性。 数据链路层 (Data Link Layer): 负责在相邻节点间可靠地传输数据帧。我们将深入MAC地址的意义,它如何在局域网内识别和定位设备。还会讲解帧的封装、错误检测与纠正机制(如CRC校验),以及介质访问控制(MAC)协议,例如以太网中的CSMA/CD。这一层是构建可靠通信的基石,确保了数据在点对点传输中的准确性。 网络层 (Network Layer): 核心是路由选择。我们将剖析IP地址的层次结构,理解它如何为全球数以亿计的设备提供唯一的标识。路由器的作用将是重点,我们将讲解各种路由协议(如RIP, OSPF, BGP)的工作原理,以及数据包如何在复杂的网络拓扑中找到最佳路径,跨越不同的子网和地理区域。 传输层 (Transport Layer): 负责端到端的通信,提供可靠或不可靠的数据传输服务。这里,我们将详细介绍TCP(传输控制协议)和UDP(用户数据报协议)这两种核心协议。TCP的可靠性体现在其三次握手、四次挥手建立和拆除连接的机制,以及滑动窗口、拥塞控制等机制如何保证数据的有序、无损到达。UDP的简洁高效则适用于对实时性要求更高的应用,如流媒体和在线游戏。端口号的作用也将得到清晰的解释,它如何区分同一主机上的不同应用程序。 会话层 (Session Layer): 管理应用程序间的会话,建立、维护和终止通信。 表示层 (Presentation Layer): 负责数据的格式化、加密和解密,确保不同系统间的数据能够被正确理解。 应用层 (Application Layer): 为用户提供各种网络服务,如HTTP、FTP、DNS等。 随后,我们将深入探讨更为实用的TCP/IP模型,理解它如何将OSI模型的某些层进行了整合,形成了一个更贴近现实的网络协议栈。我们将重点解析TCP/IP模型中与我们日常使用最密切相关的各层协议,包括: 网络接口层 (Network Interface Layer): 相当于OSI模型中的物理层和数据链路层。 网际层 (Internet Layer): 对应OSI模型的网络层,以IP协议为核心。 传输层 (Transport Layer): 与OSI模型的传输层功能相似,以TCP和UDP为主。 应用层 (Application Layer): 涵盖OSI模型的会话层、表示层和应用层的功能。 通过对比和分析这两个模型,读者将能更深刻地理解网络通信的演进和实际应用中的取舍。 第二部分:信息的旅程——数据在网络中的生命周期 理解了模型和协议,我们将在本书的第二部分,跟随一个数据包的视角,亲身经历它从源头到目的地所经历的完整旅程。我们将细致描绘信息在各个环节的处理过程: 数据封装与解封装: 从应用层产生数据,到在各层协议中被层层封装(添加头部信息),再到接收端被逐层解封装,提取出原始数据。我们将以HTTP请求为例,生动展示这个过程,让你看到用户在浏览器中输入网址后,背后发生了多少精密的协作。 IP地址与MAC地址的协同: 当数据包需要跨越不同的网络时,IP地址扮演着“导航员”的角色,指引数据包的方向。而当数据包进入同一个局域网时,MAC地址则发挥作用,精确地将数据投递给目标设备。我们将讲解ARP(地址解析协议)在IP地址和MAC地址之间建立映射关系的关键作用,以及DHCP(动态主机配置协议)如何自动化地为设备分配IP地址。 路由器的转发决策: 数据包在网络中并非直线前行,而是经过一台台路由器。我们将深入探究路由器如何根据路由表查找最佳路径,转发数据包,以及路由协议在构建和维护全球路由信息方面的作用。还会讨论NAT(网络地址转换)技术,它如何让私有IP地址能够访问互联网,以及其背后的原理和影响。 TCP的可靠传输机制: 详细讲解TCP如何通过序列号、确认应答、超时重传、滑动窗口等机制,确保数据在不可靠的网络环境中能够准确无误地送达。我们将模拟拥塞发生时的场景,展示TCP如何通过拥塞控制算法(如慢启动、拥塞避免)来缓解网络压力,保证网络的整体性能。 UDP的无连接通信: 解释UDP为何牺牲可靠性而追求速度,以及它在哪些场景下是更优的选择。 DNS的解析奥秘: 揭示我们输入的网站域名是如何被翻译成IP地址的,从本地DNS缓存到根域名服务器,再到顶级域名服务器和权威域名服务器的层层查询过程,理解DNS的分布式和层级结构。 第三部分:深入骨髓——关键协议与网络服务的剖析 在掌握了基本的通信流程后,本书将进入第三部分,对一些支撑现代互联网运行的关键协议和服务进行更深入的剖析,让读者对网络服务有更直观的认识: HTTP/HTTPS: 互联网上最广泛的应用层协议。我们将详细讲解HTTP请求与响应的报文结构、常用的请求方法(GET, POST等)、状态码的意义,以及HTTPS如何通过SSL/TLS协议为通信提供加密和身份验证,保障网络安全。 FTP (文件传输协议): 讲解FTP的工作原理,包括控制连接和数据连接,以及它在文件传输中的优势和局限性。 SMTP, POP3, IMAP: 探索电子邮件是如何发送、接收和管理的,理解这三种协议在邮件系统中的分工。 DHCP: 再次强调DHCP协议在自动化网络配置中的重要性,以及它如何简化网络管理。 防火墙与网络安全基础: 介绍防火墙的基本工作原理,如何根据规则过滤网络流量,以及一些常见的网络安全威胁和防护措施,让读者对网络安全有一个初步的认识。 网络故障排查基础: 提供一些常用的命令行工具,如ping、traceroute、netstat、nslookup等,并讲解它们在诊断网络问题时的作用,帮助读者具备一定的排查网络故障的能力。 本书的特色与价值 《穿越网络的脉络:深度解析网络通信的奥秘》的独特之处在于其循序渐进的讲解方式和丰富的案例分析。我们避免了枯燥的技术术语堆砌,而是力求用清晰的语言和生动的比喻来解释复杂的概念。每一个技术点都辅以实际应用场景的说明,让读者能够看到理论知识如何转化为解决实际问题的力量。 本书的目标读者包括: 对网络技术充满好奇的初学者: 无论您是IT从业者、在校学生,还是对数字世界运作方式感兴趣的普通读者,本书都将为您打开一扇通往网络技术世界的大门。 希望深化理解的IT专业人士: 即使您已经身处IT行业,本书也能帮助您梳理和巩固已有的知识,填补您在某些特定领域的认知空白,提供更广阔的视野。 需要构建和管理网络的决策者: 了解网络通信的底层原理,将有助于您做出更明智的技术决策,优化网络性能,提升整体效率。 阅读本书,您将不仅仅是学习技术,更是学习一种解决问题的思维方式,一种理解复杂系统如何协同工作的能力。您将能够自信地讨论网络相关话题,理解新闻中关于网络安全、技术革新的报道,甚至能够独立分析和解决一些基本的网络问题。 在信息爆炸的时代,理解网络通信的内在逻辑,就是掌握了连接世界、驱动未来的关键能力。《穿越网络的脉络:深度解析网络通信的奥秘》将是您在这条探索之路上的最佳伙伴,带您一同穿越网络的脉络,触摸数字世界的跳动的心脏。