《TCP/IP网络编程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:任泰明编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115210548
  • 页数:316 页
图书介绍:本书主要内容有网络接口层、TCP、IP、UDP、ICMP、Telnet、FTP、HTTP、SMTP、POP等协议,编程技术有基于Winsock的TCP、UDP等协议的编程,Winsock编程实例等内容。

上篇 TCP/IP 2

第1章 TCP/IP概述 2

1.1 TCP/IP的产生与发展 2

1.1.1 TCP/IP的产生 2

1.1.2 TCP/IP的发展与应用 4

1.2 TCP/IP的体系结构 4

1.2.1 TCP/IP的分层体系结构与协议栈的概念 4

1.2.2网络接口层 5

1.2.3网际层 6

1.2.4传输层 6

1.2.5应用层 7

1.3 TCP/IP的工作原理 7

1.3.1使用TCP/IP的Internet网络结构 7

1.3.2 TCP/IP通信模型 8

1.3.3 TCP/IP中数据的封装与解封过程 10

1.3.4 TCP/IP的操作系统边界与地址边界 12

1.4 ISO/OSI与TCP/IP的关系 13

1.4.1 ISO/OSI网络体系结构概述 13

1.4.2 ISO/OSI与TCP/IP的对应关系分析 15

1.5与TCP/IP有关的组织与管理机构 16

1.5.1网络协议的国际标准化组织 17

1.5.2 Internet的管理机构 17

1.5.3 RFC文档 19

小结 20

习题 20

第2章 网络接口层 22

2.1物理层 22

2.1.1数据传输介质 22

2.1.2数据传输方式 24

2.1.3数据编码技术 28

2.1.4信道复用技术 30

2.2数据链路层 32

2.2.1数据链路层的概念 32

2.2.2数据链路的流量控制机制 33

2.2.3差错控制 33

2.2.4点到点协议 35

2.3局域网技术 36

2.3.1局域网的组成 36

2.3.2IEEE 802局域网技术 37

2.3.3以太网技术 38

2.3.4 VLAN 39

小结 40

习题 40

第3章 互联网络层 41

3.1网络层的互联技术 41

3.1.1网络互联概述 41

3.1.2路由器 42

3.1.3面向连接的互联技术 43

3.1.4无连接的互联技术 43

3.1.5 IP互联原理 43

3.2IP 44

3.2.1 IP概述 44

3.2.2 IP数据报格式 45

3.2.3 IP数据报的分片与重组 48

3.2.4 IP数据报选项 50

3.3 IP地址 52

3.3.1 IP地址的表示格式 53

3.3.2 IP地址的分类 53

3.3.3子网的划分 54

3.3.4特殊IP地址 56

3.4 Internet控制报文协议 57

3.4.1 ICMP报文的封装与格式 57

3.4.2 ICMP差错报文 59

3.4.3 ICMP控制报文 60

3.4.4 ICMP请求与应答报文 61

3.5 IP数据报路由选择与路由协议 63

3.5.1路由表 63

3.5.2路由选择算法 64

3.5.3路由表的建立与刷新 65

3.5.4路由选择协议 66

3.6地址转换协议 67

3.6.1 ARP 68

3.6.2 RARP 69

3.7 IPv6 70

3.7.1 IPv6产生的背景 70

3.7.2 IPv6的新特征 71

3.7.3 IPv6数据报格式 72

3.7.4 IPv6地址 72

小结 74

习题 74

第4章 传输层 76

4.1传输层的通信与端口 76

4.1.1点到点通信与端到端通信 76

4.1.2端口的概念与功能 77

4.1.3常用的端口 78

4.2用户数据报协议 79

4.2.1 UDP概述 79

4.2.2伪首部与校验和 80

4.3传输控制协议 81

4.3.1 TCP报文段格式 81

4.3.2 TCP连接的建立与关闭 85

4.3.3 TCP的流量控制和拥塞控制机制 86

4.3.4 TCP的超时重发机制 89

4.4 TCP与UDP的比较 89

小结 90

习题 90

第5章 应用层 92

5.1网络工作模式 92

5.1.1 C/S模式 92

5.1.2 B/S模式 93

5.1.3 B/S模式与C/S模式的比较 95

5.2域名系统 96

5.2.1域名和域名系统 97

5.2.2域名服务器 99

5.2.3域名解析实例 99

5.3远程登录协议 100

5.3.1远程登录概述 100

5.3.2 Telnet的工作原理 101

5.3.3网络虚拟终端的概念 102

5.3.4 Telnet选项协商 104

5.3.5 Telnet协议选项协商实例 105

5.4电子邮件原理及其协议 108

5.4.1 TCP/IP下E-mail的工作原理 108

5.4.2 SMTP原理与工作实例 110

5.4.3 POP3协议原理与工作实例 112

5.4.4电子邮件报文的格式与实例 115

5.4.5多用途因特网邮件扩展 115

5.5超文本传输协议 117

5.5.1万维网的工作过程 117

5.5.2超文本传输协议与应用实例 118

5.6文件传输协议 121

5.6.1 FTP简介 121

5.6.2 FTP支持的文件类型和文件结构 122

5.6.3 FTP的工作原理 123

5.6.4 FTP命令和应答 124

5.6.5 FTP工作实例 127

小结 128

习题 128

第6章 TCP/IP的实现 130

6.1 Windows的TCP/IP实现 130

6.1.1 Windows TCP/IP提供的功能与服务 130

6.1.2 Windows TCP/IP体系结构 131

6.1.3网络接口层 132

6.1.4网际层 133

6.1.5传输控制协议 136

6.1.6用户数据报协议 137

6.2 UNIX/Linux的TCP/IP实现 137

6.2.1 Linux TCP/IP网络协议栈 137

6.2.2 Linux网络数据处理流程 138

6.2.3 Linux的IP路由 139

6.3 TCP/IP协议代码 140

6.3.1 TCP/IP报文时序模型 140

6.3.2报文代码及其分析 142

小结 146

习题 146

下篇 网络编程技术 148

第7章 网络程序设计入门 148

7.1有关网络程序设计的一些概念 148

7.1.1网络应用软件 148

7.1.2网络中两个通信程序如何相互识别对方 148

7.1.3 Windows Sockets介绍 149

7.1.4套接口的概念 150

7.1.5套接口编程原理 151

7.1.6网络字节顺序 153

7.2网络程序工作模型 153

7.2.1网络程序要考虑的几个问题 153

7.2.2网络程序工作模型 155

7.3一个简单的客户机/服务器程序 156

7.3.1程序要求 156

7.3.2服务器程序 156

7.3.3客户端程序 159

7.3.4实例运行结果 160

7.4 Winsock中建立连接的函数及其应用 161

7.4.1加载协议栈(WSAStartup) 161

7.4.2创建套接口(socket或WSASocket) 163

7.4.3地址绑定(bind) 165

7.4.4服务器端监听连接(listen) 167

7.4.5客户端请求连接(connect或WSAConnect) 168

7.4.6服务器端接受连接(accept或WSAAccept) 171

7.5 Winsock中的数据传输函数及其应用 172

7.5.1有连接的数据发送(send或WSASend) 173

7.5.2有连接的数据接收(recv或WSARecv) 175

7.5.3无连接的数据接收(recvfrom或WSARecvfrom) 177

7.5.4无连接数据发送(sendto或WSASendTo) 179

7.6 Winsock中网络连接与套接口的关闭函数及其应用 181

7.6.1关闭读写通道 181

7.6.2关闭套接口 182

7.6.3终止使用Winsock 182

小结 183

习题 183

第8章 TCP程序设计 184

8.1 TCP网络程序设计模型 184

8.1.1服务器端工作流程 184

8.1.2客户端工作流程 185

8.1.3服务器与客户机通信过程 186

8.1.4基于TCP的网络程序框架 186

8.2 TCP实例程序1 187

8.2.1实例程序说明 187

8.2.2服务器程序 188

8.2.3客户端程序 190

8.3 TCP实例程序2 191

8.3.1程序要求 191

8.3.2服务器程序 192

8.3.3客户端程序 195

小结 198

习题 198

第9章 UDP程序设计 200

9.1 UDP网络程序设计模型 200

9.1.1 UDP程序工作流程 200

9.1.2程序框架 201

9.2 UDP实例程序1 202

9.2.1实例程序说明 202

9.2.2服务器程序 203

9.2.3客户端程序 205

9.3 UDP实例程序2 207

9.3.1程序要求 208

9.3.2服务器程序 208

9.3.3客户端程序 212

小结 215

习题 215

第10章 Winsock程序综合实例 216

10.1使用MFC类库设计网络程序 216

10.1.1 MFC类库简介 216

10.1.2 MFC中与网络程序设计有关的类 217

10.1.3 MFC中的Windows套接口类 218

10.1.4客户端程序实例 224

10.1.5服务器端程序实例 228

10.2使用WinInet设计客户端程序 230

10.2.1 WinInet程序设计知识 230

10.2.2实例程序说明 249

10.2.3创建应用程序操作界面 249

10.2.4应用程序代码及其说明 251

10.3使用原始套接口设计网络程序 258

10.3.1原始套接口程序设计简介 259

10.3.2实例说明 259

小结 266

习题 266

第11章 Winsock主要函数及其用法 268

11.1数据格式转换函数 268

11.1.1 htonl()和WSAHtonl() 268

11.1.2 htons()和WSAHtons() 269

11.1.3 ntohl()和WSANtohl() 270

11.1.4 ntohs()和WSANtohs() 270

11.2 IP地址转换函数及其应用 271

11.2.1 inet addr() 271

11.2.2 inet ntoa() 272

11.3网络信息获取函数及其应用 272

11.3.1获得主机名——gethostname() 272

11.3.2获得与套接口相连的远程协议地址——getpeername() 273

11.3.3获得套接口本地协议地址——getsockname() 274

11.3.4根据主机名取得主机信息——gethostbyname()和WSAAsyncGetHostByName() 274

11.3.5根据主机地址取得主机信息——gethostbyaddr()和WSAAsyncGetHostByAddr() 277

11.3.6根据协议名取得主机协议信息——getprotobyname()和WSAAsyncGetProtoByName() 277

11.3.7根据协议号取得主机协议信息——getprotobynumber()和WSAAsyncGetProtoByNumber() 278

11.3.8根据服务名取得相关服务信息——getservbyname()和WSAAsyncGetServByName() 279

11.3.9根据端口号取得相关服务信息——getservbyport()和WSAAsyncGetServByPort() 280

11.3.10网络信息获取函数应用实例 280

11.4套接口选项函数及其应用 282

11.4.1套接口选项函数说明 282

11.4.2 SOL SOCKET选项级别 284

11.4.3 IPPROTO IP选项级别 288

11.4.4 IPPROTO TCP选项级别 290

11.4.5套接口属性设置和获取实例 291

11.5套接口I/O处理函数及其应用 293

11.5.1阻塞与非阻塞通信方式 293

11.5.2设置套接口的工作方式——ioctlsocket()和WSAIoctl() 294

11.5.3套接口I/O状态查询——select() 296

11.5.4异步事件通知——WSAAsyncSelect() 298

11.5.5取消正在执行的阻塞调用——WSACanceiBlockingCall() 301

11.5.6判断是否有阻塞调用——WSAIsBlocking() 302

11.5.7取消未完成的一个异步操作——WSACancelAsyncRequest() 302

11.6事件对象I/O管理及其应用 302

11.6.1创建事件对象——WSACreateEvent() 303

11.6.2网络事件注册——WSAEventSelect() 303

11.6.3事件对象状态复位——WSAResetEvent() 304

11.6.4事件对象状态置位——WSASetEvent() 304

11.6.5关闭事件对象——WSACloseEvent() 304

11.6.6等待事件对象——WSAWaitForMultipleEvents() 305

11.6.7网络事件查询——WSAEnumNetworkEvents() 306

11.6.8事件对象I/O管理程序实例 307

11.7错误处理函数 308

11.7.1获得错误操作代码——WSAGetLastError() 308

11.7.2设置错误操作代码——WSASetLastError() 309

11.8 Winsock2支持的其他函数 309

11.8.1共享套接口——WSADuplicateSocket() 309

11.8.2获取传送协议信息——WSAEnumProtocols() 310

11.8.3初始化服务质量——WSAGetQOSByName() 311

11.8.4返回重叠操作结果——WSAGetOverlappedResult() 312

11.8.5叶节点加入多点会话——WSAJoinLeaf() 313

11.8.6终止套接口上的数据接收——WSARecvDisconnect() 314

11.8.7终止套接口上的数据发送——WSASendDisconnect() 314

小结 315

习题 315

参考文献 316