TCP通信流程及其接口

一、TCP通信流程

TCP通信流程和UDP通信流程大同小异,由于UDP是无连接的通信协议,而TCP是一种面向连接的通信协议,所以TCP通信流程比UDP多了一个双方发送和获取连接的步骤。

客户端
  1. 创建套接字。
  2. 绑定地址信息。(操作系统完成)
  3. 发起连接。
  4. 发送数据。
  5. 接收数据。
  6. 关闭套接字。
服务端
  1. 创建套接字。
  2. 绑定地址信息。
  3. 监听。告诉操作系统当前程序可以正常的接收连接了,是内核完成的。三次握手也是内核在监听的时候完成的。
  4. 获取连接。获取已经完成三次握手的连接。注意这一步会新创建出来一个socket(套接字描述符),通过新创建出来的socket和客户端进行数据收发。
  5. 接收数据。当tcp连接建立之后,不在乎客户端和服务端谁先给谁发送数据,两者都是可以直接发送数据的。
  6. 发送数据。
  7. 关闭套接字。

二、TCP编程套接字接口

  1. 创建套接字
    int socket(int domain, int type, int protocol);
  2. 绑定地址信息
    int bind(int sock_fd, const socket* addr, socklen_t addrlen);
  3. 监听
    int listen(int sock_fd, int backlog);
    • sock_fd:套接字描述符。
    • backlog:已完成连接队列的大小。
      已完成连接队列就是三次握手完成之后的连接都会被放在这个队列当中。 还处于三次握手当中的tcp连接就会放入未完成连接队列。backlog可以指定已完成连接的队列大小,如果当已完成连接队列已满,处理方式就是丢弃新来的连接;而需要使用新连接的时候,就从已完成连接队列当中获取创建完成的新连接。
  4. 发起连接(针对于客户端)
    int connect(int sock_fd, const struct sockaddr* addr, socklen_t addrlen);
    • sock_fd:套接字描述符。
    • addr:服务端地址信息,需要自己手动在代码当中填充,传递给connect。
    • addrlen:地址信息长度。
  5. 获取连接(针对于服务端)
    int accept(int sock_fd, struct sockaddr* addr, socklen_t* addrlen);
    • sock_fd:侦听套接字描述符。
    • addr:客户端地址信息。
    • addrlen:客户端地址信息长度。
    • 返回值:返回新创建出来的socket(套接字描述符),后面的数据收发过程都是需要这个新创建出来的socket和客户端进行数据收发。
      注意:因为该接口是从已完成连接队列当中获取新连接,所以当已完成连接队列当中没有已经完成的连接时,再次调用accept就会阻塞;直到获取到新的已完成的连接。
      在这里插入图片描述
      为什么内核需要新创建一个socket和客户端进行通信?
      1. 如果只有一个socket,则无法区分是哪个客户端发送来的数据。
      2. 如果只有一个socket,则在接收一个TCP连接之后和通信起来之后,再接收新的连接。第一个socket就像酒店的接待员,而新创建的socket才是真正为客户进行服务的。如果只有一个socket,那就不能为下一个新来的客户进行服务了。
  6. 发送数据
    ssize_t send(sock_fd, const void* buf, size_t len, int flags);
    • sock_fd:套接字描述符。注意这个sock_fd是accept函数的返回值,即新建出来的server_fd。
    • buf:要发送的数据。
    • len:发送数据的长度。
    • flags:0:阻塞发送
  7. 接收数据
    ssize_t recv(int sock_fd, void* buf, int flags);
    • sock_fd:套接字描述符。注意这个sock_fd是accept函数的返回值,即新建出来的server_fd。
    • buf:接收到的数据放到哪里去。
    • len:最大接收长度。
    • flags:
      a. 0:阻塞接收。
      b. MSG_PEEK:探测接收。从接收缓冲区当中复制数据到应用层,但并不删除接收缓冲区中的数据。相比较阻塞接收而言,阻塞接收也会从接收缓冲区复制数据到应用层,但是会删除接收缓冲区中的数据。
  8. 关闭套接字
    close(int sock_fd);
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书介绍TCP/IP及其应用。TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程访问协议、IP安全与防火墙。本书介绍了如何为Windows 9x/NT配置TCP/IP;还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 4
本书介绍TCP/IP及其应用。TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程访问协议、IP安全与防火墙。本书介绍了如何为Windows 9x/NT配置TCP/IP;还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 47 5.3 使用ARP命令 47 5.4 小结 47 第6章 DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用WINS的优点 58 7.3.2 WINS如何工作 59 7.3.3 配置WINS客户机 60 7.3.4 为代理配置WINS 60 7.3.5 配置NT 4.0系统 61 7.3.6 配置Windows 95或Windows 98 系统 61 7.4 安装WINS服务器 61 7.5 WINS管理和维护 62 7.5.1 加入静态表项 62 7.5.2 维护WINS数据库 63 7.5.3 备份WINS数据库 65 7.5.4 备份WINS注册项 65 7.5.5 恢复WINS数据库 65 7.5.6 压缩WINS数据库 66 7.5.7 WINS复制参与者 66 7.5.8 WINS实现建议 67 7.6 集成WINS和DNS名字解析服务 67 7.7 DHCP服务WINS选项 67 7.8 通过LMHOSTS进行NetBIOS名字 解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 8.4.2 其他分配 75 8.5 小结 76 第三部分 IP和相关协议 第9章 IP协议家族 77 9.1 TCP/IP模型 77 9.1.1 解剖TCP/IP模型 78 9.1.2 协议组件 78 9.2 理解网际协议(IP) 79 9.2.1 IPv4结构 79 9.2.2 IP做什么 80 9.3 理解传输控制协议(TCP) 81 9.3.1 TCP头结构 81 9.3.2 TCP做什么 83 9.4 理解用户数据报协议(UDP) 85 9.4.1 UDP头结构 85 9.4.2 UDP能做什么 85 9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 87 10.1.1 优先级分类 88 10.1.2 流标识 89 10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条路由 107 11.3.2 初始化更新 107 11.3.3 路由度量标准 107 11.4 小结 108 第12章 路由信息协议(RIP) 109 12.1 理解RFC1058 109 12.1.1 RIP报文格式 109 12.1.2 RIP路由表 111 12.2 操作机制 112 12.2.1 计算距离向量 113 12.2.2 更新路由表 116 12.2.3 寻址问题 118 12.3 拓扑变化 120 12.3.1 收敛 120 12.3.2 计值到无穷 122 12.4 RIP的限制 127 12.4.1 跳数限制 128 12.4.2 固定度量 128 12.4.3 对路由表更新反应强烈 128 12.4.4 收敛慢 128 12.4.5 缺乏负载均衡 128 12.5 小结 129 第13章 开放式最短路径优先 130 13.1 OSPF起源 130 13.2 理解RFC 2328 OSPF,版本2 130 13.2.1 OSPF区 131 13.2.2 路由更新 134 13.3 研究OSPF数据结构 136 13.3.1 HELLO报文 137 13.3.2 数据库描述报文 137 13.3.3 链路-状态请求报文 138 13.3.4 链路-状态更新报文 138 13.3.5 链路-状态应答报文 140 13.4 计算路由 140 13.4.1 使用自动计算 140 13.4.2 使用缺省路由耗费 141 13.4.3 最短路径树 142 13.5 小结 144 第14章 网关协议 145 14.1 网关、桥和路由器 145 14.1.1 网关 145 14.1.2 网桥 146 14.1.3 路由器 146 14.1.4 自治系统 146 14.2 网关协议:基础知识 146 14.3 内部网关协议和外部网关协议 147 14.3.1 网关-网关协议(GGP) 147 14.3.2 外部网关协议(EGP) 147 14.3.3 内部网关协议(IGP) 148 14.4 小结 148 第五部分 网络服务 第15章 互联网打印协议 149 15.1 IPP历史 149 15.2 IPP和端用户 150 15.3 使用HP的IPP实现 151 15.4 小结 152 第16章 LDAP:目录服务 153 16.1 为什么使用目录服务 153 16.2 目录服务的功能 153 16.3 IP上的目录服务 154 16.4 OSI X.500目录模型 156 16.4.1 早期的X.500 157 16.4.2 今天的X.500 157 16.5 LDAP结构 157 16.5.1 LDAP层次结构 157 16.5.2 名字结构 158 16.6 目录系统代理和访问协议 158 16.7 轻型目录访问协议 158 16.7.1 查询信息 159 16.7.2 存储信息 160 16.7.3 访问权限和安全 160 16.8 LDAP服务器-服务器通信 161 16.8.1 LDAP数据互换格式(LDIF) 161 16.8.2 LDAP复制 162 16.9 设计LDAP服务 162 16.9.1 定义需求 162 16.9.2 设计策略 163 16.9.3 性能 164 16.9.4 网络功能 165 16.9.5 安全 166 16.10 LDAP配置 169 16.11 产品环境 169 16.11.1 创建计划 170 16.11.2 有价值的建议 171 16.12 选择LDAP软件 171 16.13 小结 174 第17章 远程访问协议 175 17.1 远程互联 175 17.1.1 ISDN 176 17.1.2 电缆调制解调器 176 17.1.3 数字用户环(DSL) 176 17.1.4 无线网络 177 17.2 远程认证拨入用户服务(RADIUS) 177 17.2.1 RADIUS认证 178 17.2.2 记账信息 179 17.3 用SLIP、CSLIP和PPP传输IP数 据报文 179 17.3.1 串行线路接口协议(SLIP) 179 17.3.2 压缩的SLIP(CSLIP) 180 17.3.3 点到点协议(PPP) 180 17.4 隧道远程访问 184 17.4.1 点到点隧道协议(PPTP) 185 17.4.2 两层隧道协议(L2TP) 188 17.4.3 IPSec 192 17.5 小结 194 第18章 防火墙 195 18.1 使网络安全 195 18.2 使用防火墙 196 18.2.1 代理服务器 197 18.2.2 报文过滤器 198 18.3 使服务安全 198 18.3.1 电子邮件(SMTP) 198 18.3.2 HTTP:万维网 199 18.3.3 FTP 199 18.3.4 Telnet 199 18.3.5 Usenet:NNTP 199 18.3.6 DNS 200 18.4 建造用户自己的防火墙 200 18.5 使用商业防火墙软件 200 18.6 小结 202 第19章 IP安全 203 19.1 使用加密 203 19.1.1 公共-私钥加密 204 19.1.2 对称私钥加密 205 19.1.3 DES、IDEA及其他 205 19.2 数字签名认证 206 19.3 破译加密的数据 207 19.4 保护网络 207 19.4.1 登录名和口令 208 19.4.2 文件的目录允许权限 208 19.4.3 信任关系 209 19.4.4 UNIX和Linux系统上的UUCP 209 19.5 应付最坏情况 210 19.6 小结 210 第六部分 实现TCP/IP 第20章 一般配置问题 211 20.1 安装网卡 211 20.1.1 网卡 211 20.1.2 资源配置 212 20.1.3 安装适配器软件 213 20.1.4 重定向器和API 214 20.1.5 服务 214 20.1.6 NIC接口 215 20.2 网络和传输层协议 215 20.2.1 IP配置要求 215 20.2.2 配置缺省网关地址 216 20.2.3 配置名字服务器地址 217 20.2.4 配置邮件服务器地址 217 20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3 当Windows 98引导失败 224 21.2 配置Windows 98的TCP/IP 225 21.2.1 写在开始之前 225 21.2.2 安装TCP/IP 225 21.2.3 配置微软的TCP/IP 225 21.2.4 DNS配置 227 21.2.5 静态配置文件 228 21.2.6 注册表配置 229 21.2.7 测试TCP/IP 231 21.3 小结 232 第22章 Windows 98拨号网络 233 22.1 配置拨号网络适配器 233 22.2 安装拨号网络 234 22.3 服务器类型 235 22.4 编写脚本 238 22.5 多重链接 238 22.6 PPTP 239 22.6.1 安装及配置PPTP 240 22.6.2 建立PPTP连接 240 22.7 Windows 98拨号服务器 241 22.8 解决拨号网络连接中的问题 242 22.8.1 确认DUN配置 242 22.8.2 PPP日志 243 22.9 小结 243 第23章 Windows NT 4.0 244 23.1 Windows NT版本 244 23.2 体系结构 244 23.3 安装Windows NT 4.0 244 23.4 配置TCP/IP 246 23.4.1 IP地址 246 23.4.2 DNS 248 23.4.3 WINS地址 248 23.4.4 DHCP中继 249 23.4.5 路由 250 23.5 简单TCP/IP服务 250 23.6 远程访问服务(RAS) 250 23.7 DHCP服务器 252 23.7.1 安装DHCP服务器服务 252 23.7.2 控制DHCP服务器服务 253 23.7.3 压缩DHCP数据库 253 23.7.4 管理DHCP 254 23.8 使用Microsoft DNS 256 23.8.1 安装DNS 256 23.8.2 创建区 257 23.8.3 配置逆向域名解功能 258 23.8.4 配置DNS与WINS服务器的连 接 259 23.8.5 增加辅助名字服务器 259 23.9 FTP和HTTP服务 259 23.10 TCP/IP打印服务 259 23.10.1 安装TCP/IP打印服务 259 23.10.2 安装LPR服务 260 23.11 Windows 2000新特性 260 23.12 小结 261 第24章 在Novell NetWare中支持IP 262 24.1 Novell与TCP/IP 262 24.1.1 IP与NetWare 4 262 24.1.2 NetWare 5与Pure IP初始化 262 24.2 传统解决方案:NetWare 3.x到 NetWare 4.x的IP支持 263 24.2.1 IP隧道 264 24.2.2 IP中继 264 24.2.3 LAN WorkPlace 264 24.2.4 IPX-IP网关 265 24.2.5 NetWare/IP 265 24.3 NetWare 5—Novell对IP的 完全支持 266 24.3.1 纯IP 266 24.3.2 多协议 266 24.4 安装选项 266 24.4.1 NetWare 5的IP-Only安装 267 24.4.2 IPX-Only安装 267 24.4.3 混合TCP/IP安装 268 24.5 IP迁移辅助工具 268 24.5.1 NDS 268 24.5.2 DNS 269 24.5.3 DHCP 269 24.5.4 DDNS 269 24.5.5 SLP 269 24.5.6 兼容模式 269 24.5.7 迁移代理 270 24.6 迁移策略 270 24.6.1 使用测试平台 270 24.6.2 迁移建议 270 24.7 小结 271 第七部分 使用TCP/IP应用 第25章 Whois和Finger 273 25.1 理解Whois协议 273 25.1.1 互联网注册 273 25.1.2 Whois数据库 274 25.1.3 基于Web的Whois 275 25.1.4 命令行方式的Whois 276 25.1.5 示例 276 25.1.6 基于Telnet的Whois 278 25.2 扩充Whois 279 25.2.1 提示Whois(RWhois) 279 25.2.2 WHOIS++ 280 25.3 使用Finger 280 25.3.1 Finger命令 280 25.3.2 Finger 守护进程 282 25.3.3 非UNIX环境下的Finger 283 25.3.4 Finger的应用 283 25.4 相关RFC文档 285 25.5 小结 285 第26章 文件传输协议 286 26.1 FTP和TFTP在网络世界中的作用 286 26.2 使用FTP传输文件 286 26.2.1 FTP连接 287 26.2.2 使用FTP客户端建立连接 288 26.2.3 FTP安全 296 26.2.4 FTP服务器及守护进程 299 26.2.5 匿名FTP访问 299 26.3 使用TFTP 300 26.3.1 FTP与TFTP的区别 301 26.3.2 TFTP命令 301 26.4 小结 301 第27章 使用Telnet 302 27.1 理解Telnet协议 302 27.2 Telnet守护进程 303 27.3 使用Telnet 304 27.3.1 UNIX telnet命令 304 27.3.2 Telnet GUI应用 305 27.3.3 Telnet命令 305 27.3.4 示例 308 27.4 高级主题 309 27.4.1 安全 309 27.4.2 Telnet应用 309 27.4.3 使用Telnet访问其他TCP/IP 服务 310 27.5 相关RFC文档 312 27.6 小结 313 第28章 使用r系列实用工具 314 28.1 理解r系列命令 314 28.1.1 安全问题 314 28.1.2 禁止使用r系列命令 315 28.1.3 增强r系列命令的安全性 316 28.2 使用r系列命令的替代方法 317 28.3 r系列命令详解 317 28.3.2 相关文件 320 28.4 在非UNIX环境下实现r系 列命令的功能 321 28.5 小结 322 第29章 使用网络文件系统(NFS) 323 29.1 什么是NFS 323 29.1.1 NFS的历史 323 29.1.2 为何使用NFS 323 29.2 实现—NFS工作过程 324 29.2.1 远程过程调用(RPC) 和外部数据表示(XDR) 324 29.2.2 加载类型 324 29.3 NFS使用的文件及命令 325 29.3.1 NFS守护进程 325 29.3.2 与NFS相关的文件 327 29.3.3 NFS服务器命令 329 29.3.4 NFS客户命令 331 29.4 示例:共享及加载NFS文件系统 333 29.5 NFS常见问题及解决方案 334 29.5.1 不能加载 334 29.5.2 不能卸载 334 29.5.3 硬加载与软加载 334 29.6 相关协议及产品 334 29.6.1 WebNFS 335 29.6.2 基于PC的NFS及其他客户端 软件 335 29.6.3 SMB和CIFS 335 29.6.4 其他产品 336 29.7 小结 336 第八部分 使用基于IP的应用 第30章 在应用中集成TCP/IP 337 30.1 使用浏览器作为表示层 338 30.2 不断增加的Internet应用 338 30.3 在已有应用中集成TCP/IP 339 30.4 在其他网络中使用TCP/IP 339 30.4.1 NetBIOS与TCP/IP 339 30.4.2 IPX与UDP 340 30.4.3 ARCNET与TCP/IP 340 30.5 小结 340 第31章 Internet Email协议 341 31.1 电子邮件 341 31.1.1 电子邮件的历史 341 31.1.2 标准及制定标准的组织 341 31.2 X.400 341 31.3 简单邮件传输协议(SMTP) 343 31.3.1 MIME和SMTP 343 31.3.2 其他编码标准 344 31.3.3 SMTP命令 344 31.3.4 SMTP状态码 345 31.3.5 扩展SMTP 345 31.3.6 检查SMTP的头 346 31.3.7 SMTP的优势与不足 347 31.4 使用POP和IMAP取回客户邮件 347 31.4.1 邮局协议(POP) 347 31.4.2 互联网邮件访问协议(IMAP) 348 31.4.3 POP3与IMAP4的比较 348 31.5 高级主题 349 31.6 相关RFC文档及其他参考信息 351 31.7 小结 352 第32章 HTTP: World Wide Web 353 32.1 万维网(WWW) 353 32.1.1 Web简史 353 32.1.2 Web的发展 354 32.2 统一资源定位器 354 32.3 Web服务器与浏览器 355 32.4 理解HTTP 356 32.4.1 HTTP/1.1 356 32.4.2 MIME与Web 358 32.4.3 HTTP通信示例 358 32.5 高级主题 359 32.5.1 服务器方功能 359 32.5.2 SSL和S-HTTP 359 32.6 Web语言 359 32.6.1 HTML 360 32.6.2 XML 360 32.6.3 CGI 361 32.6.4 Java 361 32.6.5 JavaScript 362 32.6.6 动态服务器页面 362 32.7 Web的未来 363 32.7.1 HTTP-ng 363 32.7.2 IIOP 363 32.7.3 IPv6 363 32.7.4 IPP 363 32.8 小结 364 第33章 NNTP:互联网新闻组 365 33.1 互联网新闻组 365 33.2 新闻组和层次 366 33.3 网络新闻传输协议 367 33.3.1 获取新闻组 367 33.3.2 获取消息 369 33.3.3 发布消息 370 33.4 大量广告(Spamming)和新闻黑洞 (Blackholing) 371 33.5 小结 371 第34章 Web服务 373 34.1 Web服务工作概览 373 34.2 主流Web服务器 375 34.3 运行Apache HTTP Web服务 376 34.3.1 下载、安装和配置Apache 376 34.3.2 在Windows环境下使用Apache 381 34.4 浏览其他Web服务器 383 34.5 小结 383 第九部分 使用与管理TCP/IP网络 第35章 协议配置与调整 385 35.1 系统的初始化问题 385 35.2 配置文件 390 35.2.1 在/etc/protocols文件中定义网 络协议 390 35.2.2 在/etc/hosts文件中标识主机 391 35.2.3 TCP/IP与/etc/services文件 392 35.2.4 inetd守护进程与/etc/inetd.conf 文件 394 35.2.5 在/etc/networks文件中设置网络 397 35.2.6 DNS客户与/etc/resolv.conf 397 35.3 小结 398 第36章 配置DNS 399 36.1 域名服务器 399 36.2 资源记录 400 36.3 域名解析 401 36.4 配置UNIX或Linux域名服务器 (DNS) 401 36.4.1 添加资源记录 402 36.4.2 完成DNS文件 402 36.4.3 启动DNS守护进程 405 36.4.4 配置客户端 405 36.5 Windows和域名服务器 405 36.6 小结 406 第37章 网络管理 407 37.1 制定网络监控方案 407 37.2 网络问题及其解决方案 408 37.3 网络管理工具 408 37.3.1 使用协议分析器 409 37.3.2 专家系统 410 37.3.3 基于PC的分析器 410 37.3.4 网络管理协议支持 411 37.3.5 集成网络仿真/模型工具 411 37.4 配置SNMP 412 37.4.1 配置Windows SNMP 413 37.4.2 配置UNIX SNMP 414 37.4.3 SNMP安全属性 414 37.4.4 SNMP代理与管理 415 37.5 SNMP工具及命令 416 37.6 RMON及相关的MIB模型 417 37.7 建立网管需求 417 37.8 小结 419 第38章 SNMP:简单网络管理协议 420 38.1 什么是SNMP 420 38.2 管理信息基(MIB) 421 38.3 使用SNMP 421 38.4 UNIX与SNMP 422 38.4.1 在UNIX和Linux上安装SNMP 423 38.4.2 SNMP命令 424 38.5 Windows与SNMP 424 38.5.1 Windows NT 425 38.5.2 Windows 95、Windows 98和 Windows 3.x 425 38.6 小结 427 第39章 加强TCP/IP传输安全 428 39.1 定义所需的网络安全 428 39.1.1 什么是网络安全 428 39.1.2 为什么网络安全非常重要 429 39.1.3 安全级别 429 39.1.4 口令与口令文件 430 39.1.5 控制对口令的访问 430 39.2 加强网络安全 431 39.2.1 攻击种类 431 39.2.2 加强网络安全 432 39.3 应用配置 434 39.3.1 Internet守护进程与 /etc/inetd.conf 434 39.3.2 网络加密软件 436 39.3.3 TCP Wrapper 436 39.4 使用端口及可信端口 437 39.4.1 防火墙 437 39.4.2 包过滤 437 39.4.3 应用层网关 438 39.4.4 其他应用的过滤 438 39.5 一般安全事务 438 39.5.1 用户帐号维护 438 39.5.2 审计 438 39.5.3 正确的系统配置 438 39.6 小结 438 第40章 问题解决工具及要点 440 40.1 监视网络行为 440 40.2 标准应用程序 440 40.2.1 测试基本连接 441 40.2.2 ping命令 442 40.2.3 解决网络访问故障 443 40.3 解决网络接口层问题 449 40.4 解决网络层问题 449 40.4.1 TCP/IP配置参数 449 40.4.2 IP地址配置问题 450 40.5 解决TCP和UDP问题 453 40.6 解决应用层问题 455 40.7 小结 455 第十部分 附 录 附录A RFC及标准化 457 附录B Linux 469 附录C 简写与缩略语 480
里面讲了MSComm控件 、 WinAPI 串口通信、CSerial类,例子很详实,每一步操作都有解释。作者是龚建伟,有一个个人主页www.gjwtech.com,讲串口通信的内容比较多,还行,大家可以先看看这个主页。 本书目录 第1章轻松体验串口通信编程与调试 1.1初识串口 1.1.1从外观上了解串口 1.1.2 串口通信的发展前景 1.2 自己制作简单的串口线 1.2.1 三线制串口接线的规定 1.2.2 焊接制作自己的串口连接线 1.3 调试串口通信程序时的几种使用串口的技巧 1.3.1 查看计算机串口资源 1.3.2 常规调试-2个物理串口之间的通信 1.3.3 特殊调试-单个物理串口之间的通信 1.3.4 虚拟串口-为计算机添加取之不尽的串口资源 1.4 使用串口调试助手来体验串口通信 1.5体验Windows环境下Visual C++串口通信编程 1.6体验DOS环境下Turbo C串口通信编程 第2章 VC多线程串口编程工具CSerialPort类 2.1 类功能及成员函数介绍 2.2 应用CSerialPort类编制基于对话框的应用程序 2.3 应用CSerialPort类编制基于单文档的应用程序 2.4对CSerialPort类的改进 2.5 在Visual C++.NET中应用CSerialPort类 第3章 控件MSComm串口编程 3.1 MSComm控件详细介绍 3.1.1 VC中应用MSComm控件编程步骤 3.1.2 MSComm控件串行通信处理方式 3.1.3 MSComm 控件的属性说明 3.1.4 MSComm控件错误信息 3.2使用MSComm控件的几个疑难问题 3.2.1使用VARIANT 和SAFEARRAY 数据类型从串口读写数据 3.2.2 MSComm控件能离开对话框独立存在吗? 3.2.3 如何发送接收ASCII值为0和大于128的字符? 3.2.4 在同一程序中用MSComm控件控制多个串口的具体操作方法 3.2.5解决使用控件编程时程序占用的内存会不断增大的问题 3.2.6在没有安装Visual Studio的计算机上如何使用MSComm控件 3.2.7 在MSComm控件串口编程时遇到的其它问题说明 3.3在基于单文档(SDI)程序中应用MSComm控件 3.4应用MSComm控件控制多个串口实例 第4章 Windows API串口编程 4.1 Windows API串口编程概述 4.2 API串口编程中用到的结构及相关概念说明 4.2.1 DCB(Device Control Block)结构 4.2.2超时设置COMMTIMEOUTS结构 4.2.3 OVERLAPPED异步I/O重叠结构 4.2.4 通信错误与通信设备状态 4.2.5 串行通信事件 4.3 Windows API串行通信函数 4.4 Win32 API串口通信编程的一般流程和特殊实例 4.4.1 Win32 API串口通信编程的一般流程 4.4.2 用查询方式读串口 4.4.3同步I/O读写数据 4.4.4 关于流控制的设置问题 4.5 CSerialPort类中的API函数编程应用剖析 4.6 Win32 API串口编程TTY(虚拟终端)实例 4.7 Windows API串口精简例程 第5章 串口调试助手V2.2详细编程 5.1 建立SCOMM程序工程实现界面功能 5.2 串口的初始化及关闭 5.3串口数据的发送与接收及十六进制数据的处理 5.3.1 十六进数据发送处理 5.3.2 手动发送处理 5.3.3自动发送处理 5.3.4 接收处理及十六进制显示 5.4 其它辅助功能的实现 5.4.1 接收数据的文件保存 5.4.2 实现小文件发送 5.4.3 图钉按钮功能使程序能浮在最上层 5.4.4 对话框动画图标的实现 5.4.5 超链接功能的实现 5.4.6 如何打开帮助网页文件 第6章 DOS环境下的Turbo C串口编程及通用实例GSerial类 6.1 PC机异步通信适配器8250及其编程操作 6.1.1 INS8250内部寄存器及其选择方式 6.1.2 波特率设置 6.1.3数据位、奇偶校验、停止位等数据格式设置 6.1.4 查询I/O方式相关设置 6.1.5 中断I/O通信方式相关设置 6.1.6 Modem寄存器 6.2 COMRXTX程序实例
目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 47 5.3 使用ARP命令 47 5.4 小结 47 第6章 DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用WINS的优点 58 7.3.2 WINS如何工作 59 7.3.3 配置WINS客户机 60 7.3.4 为代理配置WINS 60 7.3.5 配置NT 4.0系统 61 7.3.6 配置Windows 95或Windows 98 系统 61 7.4 安装WINS服务器 61 7.5 WINS管理和维护 62 7.
目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 47 5.3 使用ARP命令 47 5.4 小结 47 第6章 DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用WINS的优点 58 7.3.2 WINS如何工作 59 7.3.3 配置WINS客户机 60 7.3.4 为代理配置WINS 60 7.3.5 配置NT 4.0系统 61 7.3.6 配置Windows 95或Windows 98 系统 61 7.4 安装WINS服务器 61 7.5 WINS管理和维护 62 7.5.1 加入静态表项 62 7.5.2 维护WINS数据库 63 7.5.3 备份WINS数据库 65 7.5.4 备份WINS注册项 65 7.5.5 恢复WINS数据库 65 7.5.6 压缩WINS数据库 66 7.5.7 WINS复制参与者 66 7.5.8 WINS实现建议 67 7.6 集成WINS和DNS名字解析服务 67 7.7 DHCP服务WINS选项 67 7.8 通过LMHOSTS进行NetBIOS名字 解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 8.4.2 其他分配 75 8.5 小结 76 第三部分 IP和相关协议 第9章 IP协议家族 77 9.1 TCP/IP模型 77 9.1.1 解剖TCP/IP模型 78 9.1.2 协议组件 78 9.2 理解网际协议(IP) 79 9.2.1 IPv4结构 79 9.2.2 IP做什么 80 9.3 理解传输控制协议(TCP) 81 9.3.1 TCP头结构 81 9.3.2 TCP做什么 83 9.4 理解用户数据报协议(UDP) 85 9.4.1 UDP头结构 85 9.4.2 UDP能做什么 85 9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 87 10.1.1 优先级分类 88 10.1.2 流标识 89 10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条路由 107 11.3.2 初始化更新 107 11.3.3 路由度量标准 107 11.4 小结 108 第12章 路由信息协议(RIP) 109 12.1 理解RFC1058 109 12.1.1 RIP报文格式 109 12.1.2 RIP路由表 111 12.2 操作机制 112 12.2.1 计算距离向量 113 12.2.2 更新路由表 116 12.2.3 寻址问题 118 12.3 拓扑变化 120 12.3.1 收敛 120 12.3.2 计值到无穷 122 12.4 RIP的限制 127 12.4.1 跳数限制 128 12.4.2 固定度量 128 12.4.3 对路由表更新反应强烈 128 12.4.4 收敛慢 128 12.4.5 缺乏负载均衡 128 12.5 小结 129 第13章 开放式最短路径优先 130 13.1 OSPF起源 130 13.2 理解RFC 2328 OSPF,版本2 130 13.2.1 OSPF区 131 13.2.2 路由更新 134 13.3 研究OSPF数据结构 136 13.3.1 HELLO报文 137 13.3.2 数据库描述报文 137 13.3.3 链路-状态请求报文 138 13.3.4 链路-状态更新报文 138 13.3.5 链路-状态应答报文 140 13.4 计算路由 140 13.4.1 使用自动计算 140 13.4.2 使用缺省路由耗费 141 13.4.3 最短路径树 142 13.5 小结 144 第14章 网关协议 145 14.1 网关、桥和路由器 145 14.1.1 网关 145 14.1.2 网桥 146 14.1.3 路由器 146 14.1.4 自治系统 146 14.2 网关协议:基础知识 146 14.3 内部网关协议和外部网关协议 147 14.3.1 网关-网关协议(GGP) 147 14.3.2 外部网关协议(EGP) 147 14.3.3 内部网关协议(IGP) 148 14.4 小结 148 第五部分 网络服务 第15章 互联网打印协议 149 15.1 IPP历史 149 15.2 IPP和端用户 150 15.3 使用HP的IPP实现 151 15.4 小结 152 第16章 LDAP:目录服务 153 16.1 为什么使用目录服务 153 16.2 目录服务的功能 153 16.3 IP上的目录服务 154 16.4 OSI X.500目录模型 156 16.4.1 早期的X.500 157 16.4.2 今天的X.500 157 16.5 LDAP结构 157 16.5.1 LDAP层次结构 157 16.5.2 名字结构 158 16.6 目录系统代理和访问协议 158 16.7 轻型目录访问协议 158 16.7.1 查询信息 159 16.7.2 存储信息 160 16.7.3 访问权限和安全 160 16.8 LDAP服务器-服务器通信 161 16.8.1 LDAP数据互换格式(LDIF) 161 16.8.2 LDAP复制 162 16.9 设计LDAP服务 162 16.9.1 定义需求 162 16.9.2 设计策略 163 16.9.3 性能 164 16.9.4 网络功能 165 16.9.5 安全 166 16.10 LDAP配置 169 16.11 产品环境 169 16.11.1 创建计划 170 16.11.2 有价值的建议 171 16.12 选择LDAP软件 171 16.13 小结 174 第17章 远程访问协议 175 17.1 远程互联 175 17.1.1 ISDN 176 17.1.2 电缆调制解调器 176 17.1.3 数字用户环(DSL) 176 17.1.4 无线网络 177 17.2 远程认证拨入用户服务(RADIUS) 177 17.2.1 RADIUS认证 178 17.2.2 记账信息 179 17.3 用SLIP、CSLIP和PPP传输IP数 据报文 179 17.3.1 串行线路接口协议(SLIP) 179 17.3.2 压缩的SLIP(CSLIP) 180 17.3.3 点到点协议(PPP) 180 17.4 隧道远程访问 184 17.4.1 点到点隧道协议(PPTP) 185 17.4.2 两层隧道协议(L2TP) 188 17.4.3 IPSec 192 17.5 小结 194 第18章 防火墙 195 18.1 使网络安全 195 18.2 使用防火墙 196 18.2.1 代理服务器 197 18.2.2 报文过滤器 198 18.3 使服务安全 198 18.3.1 电子邮件(SMTP) 198 18.3.2 HTTP:万维网 199 18.3.3 FTP 199 18.3.4 Telnet 199 18.3.5 Usenet:NNTP 199 18.3.6 DNS 200 18.4 建造用户自己的防火墙 200 18.5 使用商业防火墙软件 200 18.6 小结 202 第19章 IP安全 203 19.1 使用加密 203 19.1.1 公共-私钥加密 204 19.1.2 对称私钥加密 205 19.1.3 DES、IDEA及其他 205 19.2 数字签名认证 206 19.3 破译加密的数据 207 19.4 保护网络 207 19.4.1 登录名和口令 208 19.4.2 文件的目录允许权限 208 19.4.3 信任关系 209 19.4.4 UNIX和Linux系统上的UUCP 209 19.5 应付最坏情况 210 19.6 小结 210 第六部分 实现TCP/IP 第20章 一般配置问题 211 20.1 安装网卡 211 20.1.1 网卡 211 20.1.2 资源配置 212 20.1.3 安装适配器软件 213 20.1.4 重定向器和API 214 20.1.5 服务 214 20.1.6 NIC接口 215 20.2 网络和传输层协议 215 20.2.1 IP配置要求 215 20.2.2 配置缺省网关地址 216 20.2.3 配置名字服务器地址 217 20.2.4 配置邮件服务器地址 217 20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3 当Windows 98引导失败 224 21.2 配置Windows 98的TCP/IP 225 21.2.1 写在开始之前 225 21.2.2 安装TCP/IP 225 21.2.3 配置微软的TCP/IP 225 21.2.4 DNS配置 227 21.2.5 静态配置文件 228 21.2.6 注册表配置 229 21.2.7 测试TCP/IP 231 21.3 小结 232 第22章 Windows 98拨号网络 233 22.1 配置拨号网络适配器 233 22.2 安装拨号网络 234 22.3 服务器类型 235 22.4 编写脚本 238 22.5 多重链接 238 22.6 PPTP 239 22.6.1 安装及配置PPTP 240 22.6.2 建立PPTP连接 240 22.7 Windows 98拨号服务器 241 22.8 解决拨号网络连接中的问题 242 22.8.1 确认DUN配置 242 22.8.2 PPP日志 243 22.9 小结 243 第23章 Windows NT 4.0 244 23.1 Windows NT版本 244 23.2 体系结构 244 23.3 安装Windows NT 4.0 244 23.4 配置TCP/IP 246 23.4.1 IP地址 246 23.4.2 DNS 248 23.4.3 WINS地址 248 23.4.4 DHCP中继 249 23.4.5 路由 250 23.5 简单TCP/IP服务 250 23.6 远程访问服务(RAS) 250 23.7 DHCP服务器 252 23.7.1 安装DHCP服务器服务 252 23.7.2 控制DHCP服务器服务 253 23.7.3 压缩DHCP数据库 253 23.7.4 管理DHCP 254 23.8 使用Microsoft DNS 256 23.8.1 安装DNS 256 23.8.2 创建区 257 23.8.3 配置逆向域名解功能 258 23.8.4 配置DNS与WINS服务器的连 接 259 23.8.5 增加辅助名字服务器 259 23.9 FTP和HTTP服务 259 23.10 TCP/IP打印服务 259 23.10.1 安装TCP/IP打印服务 259 23.10.2 安装LPR服务 260 23.11 Windows 2000新特性 260 23.12 小结 261 第24章 在Novell NetWare中支持IP 262 24.1 Novell与TCP/IP 262 24.1.1 IP与NetWare 4 262 24.1.2 NetWare 5与Pure IP初始化 262 24.2 传统解决方案:NetWare 3.x到 NetWare 4.x的IP支持 263 24.2.1 IP隧道 264 24.2.2 IP中继 264 24.2.3 LAN WorkPlace 264 24.2.4 IPX-IP网关 265 24.2.5 NetWare/IP 265 24.3 NetWare 5—Novell对IP的 完全支持 266 24.3.1 纯IP 266 24.3.2 多协议 266 24.4 安装选项 266 24.4.1 NetWare 5的IP-Only安装 267 24.4.2 IPX-Only安装 267 24.4.3 混合TCP/IP安装 268 24.5 IP迁移辅助工具 268 24.5.1 NDS 268 24.5.2 DNS 269 24.5.3 DHCP 269 24.5.4 DDNS 269 24.5.5 SLP 269 24.5.6 兼容模式 269 24.5.7 迁移代理 270 24.6 迁移策略 270 24.6.1 使用测试平台 270 24.6.2 迁移建议 270 24.7 小结 271 第七部分 使用TCP/IP应用 第25章 Whois和Finger 273 25.1 理解Whois协议 273 25.1.1 互联网注册 273 25.1.2 Whois数据库 274 25.1.3 基于Web的Whois 275 25.1.4 命令行方式的Whois 276 25.1.5 示例 276 25.1.6 基于Telnet的Whois 278 25.2 扩充Whois 279 25.2.1 提示Whois(RWhois) 279 25.2.2 WHOIS++ 280 25.3 使用Finger 280 25.3.1 Finger命令 280 25.3.2 Finger 守护进程 282 25.3.3 非UNIX环境下的Finger 283 25.3.4 Finger的应用 283 25.4 相关RFC文档 285 25.5 小结 285 第26章 文件传输协议 286 26.1 FTP和TFTP在网络世界中的作用 286 26.2 使用FTP传输文件 286 26.2.1 FTP连接 287 26.2.2 使用FTP客户端建立连接 288 26.2.3 FTP安全 296 26.2.4 FTP服务器及守护进程 299 26.2.5 匿名FTP访问 299 26.3 使用TFTP 300 26.3.1 FTP与TFTP的区别 301 26.3.2 TFTP命令 301 26.4 小结 301 第27章 使用Telnet 302 27.1 理解Telnet协议 302 27.2 Telnet守护进程 303 27.3 使用Telnet 304 27.3.1 UNIX telnet命令 304 27.3.2 Telnet GUI应用 305 27.3.3 Telnet命令 305 27.3.4 示例 308 27.4 高级主题 309 27.4.1 安全 309 27.4.2 Telnet应用 309 27.4.3 使用Telnet访问其他TCP/IP 服务 310 27.5 相关RFC文档 312 27.6 小结 313 第28章 使用r系列实用工具 314 28.1 理解r系列命令 314 28.1.1 安全问题 314 28.1.2 禁止使用r系列命令 315 28.1.3 增强r系列命令的安全性 316 28.2 使用r系列命令的替代方法 317 28.3 r系列命令详解 317 28.3.2 相关文件 320 28.4 在非UNIX环境下实现r系 列命令的功能 321 28.5 小结 322 第29章 使用网络文件系统(NFS) 323 29.1 什么是NFS 323 29.1.1 NFS的历史 323 29.1.2 为何使用NFS 323 29.2 实现—NFS工作过程 324 29.2.1 远程过程调用(RPC) 和外部数据表示(XDR) 324 29.2.2 加载类型 324 29.3 NFS使用的文件及命令 325 29.3.1 NFS守护进程 325 29.3.2 与NFS相关的文件 327 29.3.3 NFS服务器命令 329 29.3.4 NFS客户命令 331 29.4 示例:共享及加载NFS文件系统 333 29.5 NFS常见问题及解决方案 334 29.5.1 不能加载 334 29.5.2 不能卸载 334 29.5.3 硬加载与软加载 334 29.6 相关协议及产品 334 29.6.1 WebNFS 335 29.6.2 基于PC的NFS及其他客户端 软件 335 29.6.3 SMB和CIFS 335 29.6.4 其他产品 336 29.7 小结 336 第八部分 使用基于IP的应用 第30章 在应用中集成TCP/IP 337 30.1 使用浏览器作为表示层 338 30.2 不断增加的Internet应用 338 30.3 在已有应用中集成TCP/IP 339 30.4 在其他网络中使用TCP/IP 339 30.4.1 NetBIOS与TCP/IP 339 30.4.2 IPX与UDP 340 30.4.3 ARCNET与TCP/IP 340 30.5 小结 340 第31章 Internet Email协议 341 31.1 电子邮件 341 31.1.1 电子邮件的历史 341 31.1.2 标准及制定标准的组织 341 31.2 X.400 341 31.3 简单邮件传输协议(SMTP) 343 31.3.1 MIME和SMTP 343 31.3.2 其他编码标准 344 31.3.3 SMTP命令 344 31.3.4 SMTP状态码 345 31.3.5 扩展SMTP 345 31.3.6 检查SMTP的头 346 31.3.7 SMTP的优势与不足 347 31.4 使用POP和IMAP取回客户邮件 347 31.4.1 邮局协议(POP) 347 31.4.2 互联网邮件访问协议(IMAP) 348 31.4.3 POP3与IMAP4的比较 348 31.5 高级主题 349 31.6 相关RFC文档及其他参考信息 351 31.7 小结 352 第32章 HTTP: World Wide Web 353 32.1 万维网(WWW) 353 32.1.1 Web简史 353 32.1.2 Web的发展 354 32.2 统一资源定位器 354 32.3 Web服务器与浏览器 355 32.4 理解HTTP 356 32.4.1 HTTP/1.1 356 32.4.2 MIME与Web 358 32.4.3 HTTP通信示例 358 32.5 高级主题 359 32.5.1 服务器方功能 359 32.5.2 SSL和S-HTTP 359 32.6 Web语言 359 32.6.1 HTML 360 32.6.2 XML 360 32.6.3 CGI 361 32.6.4 Java 361 32.6.5 JavaScript 362 32.6.6 动态服务器页面 362 32.7 Web的未来 363 32.7.1 HTTP-ng 363 32.7.2 IIOP 363 32.7.3 IPv6 363 32.7.4 IPP 363 32.8 小结 364 第33章 NNTP:互联网新闻组 365 33.1 互联网新闻组 365 33.2 新闻组和层次 366 33.3 网络新闻传输协议 367 33.3.1 获取新闻组 367 33.3.2 获取消息 369 33.3.3 发布消息 370 33.4 大量广告(Spamming)和新闻黑洞 (Blackholing) 371 33.5 小结 371 第34章 Web服务 373 34.1 Web服务工作概览 373 34.2 主流Web服务器 375 34.3 运行Apache HTTP Web服务 376 34.3.1 下载、安装和配置Apache 376 34.3.2 在Windows环境下使用Apache 381 34.4 浏览其他Web服务器 383 34.5 小结 383 第九部分 使用与管理TCP/IP网络 第35章 协议配置与调整 385 35.1 系统的初始化问题 385 35.2 配置文件 390 35.2.1 在/etc/protocols文件中定义网 络协议 390 35.2.2 在/etc/hosts文件中标识主机 391 35.2.3 TCP/IP与/etc/services文件 392 35.2.4 inetd守护进程与/etc/inetd.conf 文件 394 35.2.5 在/etc/networks文件中设置网络 397 35.2.6 DNS客户与/etc/resolv.conf 397 35.3 小结 398 第36章 配置DNS 399 36.1 域名服务器 399 36.2 资源记录 400 36.3 域名解析 401 36.4 配置UNIX或Linux域名服务器 (DNS) 401 36.4.1 添加资源记录 402 36.4.2 完成DNS文件 402 36.4.3 启动DNS守护进程 405 36.4.4 配置客户端 405 36.5 Windows和域名服务器 405 36.6 小结 406 第37章 网络管理 407 37.1 制定网络监控方案 407 37.2 网络问题及其解决方案 408 37.3 网络管理工具 408 37.3.1 使用协议分析器 409 37.3.2 专家系统 410 37.3.3 基于PC的分析器 410 37.3.4 网络管理协议支持 411 37.3.5 集成网络仿真/模型工具 411 37.4 配置SNMP 412 37.4.1 配置Windows SNMP 413 37.4.2 配置UNIX SNMP 414 37.4.3 SNMP安全属性 414 37.4.4 SNMP代理与管理 415 37.5 SNMP工具及命令 416 37.6 RMON及相关的MIB模型 417 37.7 建立网管需求 417 37.8 小结 419 第38章 SNMP:简单网络管理协议 420 38.1 什么是SNMP 420 38.2 管理信息基(MIB) 421 38.3 使用SNMP 421 38.4 UNIX与SNMP 422 38.4.1 在UNIX和Linux上安装SNMP 423 38.4.2 SNMP命令 424 38.5 Windows与SNMP 424 38.5.1 Windows NT 425 38.5.2 Windows 95、Windows 98和 Windows 3.x 425 38.6 小结 427 第39章 加强TCP/IP传输安全 428 39.1 定义所需的网络安全 428 39.1.1 什么是网络安全 428 39.1.2 为什么网络安全非常重要 429 39.1.3 安全级别 429 39.1.4 口令与口令文件 430 39.1.5 控制对口令的访问 430 39.2 加强网络安全 431 39.2.1 攻击种类 431 39.2.2 加强网络安全 432 39.3 应用配置 434 39.3.1 Internet守护进程与 /etc/inetd.conf 434 39.3.2 网络加密软件 436 39.3.3 TCP Wrapper 436 39.4 使用端口及可信端口 437 39.4.1 防火墙 437 39.4.2 包过滤 437 39.4.3 应用层网关 438 39.4.4 其他应用的过滤 438 39.5 一般安全事务 438 39.5.1 用户帐号维护 438 39.5.2 审计 438 39.5.3 正确的系统配置 438 39.6 小结 438 第40章 问题解决工具及要点 440 40.1 监视网络行为 440 40.2 标准应用程序 440 40.2.1 测试基本连接 441 40.2.2 ping命令 442 40.2.3 解决网络访问故障 443 40.3 解决网络接口层问题 449 40.4 解决网络层问题 449 40.4.1 TCP/IP配置参数 449 40.4.2 IP地址配置问题 450 40.5 解决TCP和UDP问题 453 40.6 解决应用层问题 455 40.7 小结 455 第十部分 附 录 附录A RFC及标准化 457 附录B Linux 469 附录C 简写与缩略语 480
目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 47 5.3 使用ARP命令 47 5.4 小结 47 第6章 DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章
TCP/IP协议是一种用于互联网通信的协议组合,由两个协议组成:TCP(传输控制协议)和IP(Internet协议)。TCP/IP分层模型是一种将网络通信划分为多个层次的模型,每一层担负不同的功能,协同工作以实现可靠的数据传输。 TCP/IP协议的工作原理如下: 1. 数据封装:发送端将要传输的数据分割成小块,然后在每个数据块的头部添加TCP/IP协议的首部信息,形成数据包。 2. 寻址和路由:数据包通过网络传输时,每个数据包都会被添加源和目的地址等信息,以便于在网络中正确寻址和转发。 3. 数据传输:数据包在网络中按照源和目的地址进行传递,通过路由器和交换机等网络设备,逐跳地到达目的地。 4. 数据重组:接收端接收到数据包后,会对数据包进行排序和重组,以恢复原始数据。如果接收端发现有丢失的数据包,会请求重新发送。 5. 错误检测和纠正:TCP/IP协议使用校验和机制对数据包进行检测,以便于发现传输过程中可能引入的误差,并通过重新发送数据包来纠正错误。 6. 流量控制和拥塞控制:TCP/IP协议还提供一些机制来调节数据传输的速率,以防止过多的流量和网络拥塞。 TCP/IP分层模型的工作原理如下: 1. 应用层:应用程序使用各种协议与网络进行通信,如HTTP、FTP等。应用层数据被封装成TCP/IP数据包。 2. 传输层:负责数据的分割、封装和重组。TCP协议提供可靠的数据传输,UDP协议提供不可靠但效率高的数据传输。 3. 网络层:负责数据的寻址和路由。IP协议根据目的地址将数据包发送到正确的目标网络并进行转发。 4. 数据链路层:负责数据包的传递和帧的发送。将数据包分割成帧,并添加源和目的MAC地址等信息。 5. 物理层:负责数据的物理传输,如光纤、电缆等。 每一层的功能相对独立,层与层之间通过特定的接口进行交互。数据在层与层之间进行传递和处理,最终实现可靠的数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值