《Linux 中TCP/IP协议实现及嵌入式应用》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:张曦煌,柴志雷编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2008
  • ISBN:9787811242041
  • 页数:357 页
图书介绍:嵌入式系统和嵌入式网络近年来发展十分迅速,得到了越来越多的应用。Linux以及Linux中TCP/IP协议的开放源代码为我们实现嵌入式系统和嵌入式网络提供了很好的技术基础。本书介绍了Linux中TCP/IP协议的实现技术,研究讨论了Linux中TCP/IP协议实现的基本原理,分析了有关的源代码。在此基础上介绍了嵌入式系统与嵌入式网络设计的基本方法和实例。

1.1嵌入式系统 1

1.2 Internet网络 2

1.3嵌入式Internet技术 3

1.4嵌入式操作系统与Linux 5

1.5 TCP/IP协议简介 8

1.5.1 TCP/IP协议 8

1.5.2 TCP/IP协议原理 9

1.5.3 Linux中TCP/IP协议的分层结构 10

2.1系统初始化 12

2.2进程 16

2.2.1进程控制块 16

2.2.2创建和撤消进程 21

2.2.3执行程序 21

2.2.4进程调度 21

2.3内核同步机制 25

2.3.1自旋锁 26

2.3.2原子操作 28

2.3.3信号量 29

2.3.4底半处理、任务转包与软中断 30

2.3.5定时器 34

2.4系统调用 36

2.4.1系统调用与软中断 36

2.4.2系统调用表 37

2.4.3系统调用的过程 38

2.5任务等待队列 42

2.5.1相关的数据结构 42

2.5.2等待队列操作 43

2.6中断与设备 46

2.6.1中断控制器8259 47

2.6.2中断向量表IDT 48

2.6.3中断服务程序的构建 54

2.6.4与中断相关的数据结构与初始化 57

2.6.5 IRQ描述符 58

2.6.6中断请求服务队列 59

2.6.7中断请求描述符数组的初始化 60

2.6.8注册驱动程序的ISR 61

2.6.9注销驱动程序的ISR 65

2.7端口操作 67

2.7.1 I/O端口资源 67

2.7.2 I/O端口操作 70

3.1 Linux网络编程 72

3.1.1套接口 72

3.1.2网络编程函数 74

3.1.3简单实例 75

3.2 socket系统调用 78

3.3 socket数据结构 81

3.4套节字的初始化 84

3.5 socket函数 86

3.5.1套接字创建sys_socket() 86

3.5.2套接字绑定sys_bind() 89

3.5.3套节字监听sys_listen( 90

3.5.4 sys_accept() 91

3.5.5 sys_connect() 94

3.5.6 sys_send() 94

3.5.7 sys_recv() 97

3.6 INET层的数据结构及其初始化 99

3.6.1 INET层的数据结构 100

3.6.2 INET的初始化 108

3.7 INET层函数 110

3.7.1 inet_create() 110

3.7.2 inet_bind() 114

3.7.3 inet_listen() 116

3.7.4 inet_accept() 117

3.7.5 inet_connect() 118

3.7.6 inet_sendmsg() 121

3.7.7 inet_recvmsg() 121

4.1 TCP/IP协议栈的初始化 123

4.1.1报文处理例程初始化及注册 124

4.1.2函数ip_init() 126

4.2数据报队列 126

4.2.1输入数据报队列的Softnet_data数据结构 127

4.2.2队列的初始化 128

4.2.3输出数据报排队 130

4.2.4队列接收数据报 135

4.2.5 process_backlog()函数 137

4.2.6 netif_receive_skb()函数 139

4.3传输层多路分发和内部数据报路由 141

5.1 Linux中的slab缓存操作函数 143

5.1.1 slab分配机制 143

5.1.2 slab缓存操作函数 144

5.2 Linux套接字缓冲(socket buffer) 151

5.3套接字缓冲的使用函数 153

5.3.1套接字缓冲分配及释放的函数 153

5.3.2复制及克隆套接字缓冲的函数 156

5.3.3管理套接字缓冲列表的函数 158

6.1 TCP和UDP简介 162

6.1.1 UDP 162

6.1.2 TCP 163

6.2关键数据结构 166

6.3传输层初始化 169

6.4发起连接 170

6.4.1 UDP协议发起连接 170

6.4.2 TCP协议发起连接 172

6.5 UDP的数据发送与接收 174

6.5.1 UDP的数据发送 174

6.5.2 UDP的数据接收 178

6.6 TCP时钟与可靠机制 182

6.6.1 TCP写定时器 182

6.6.2 TCP重传定时器函数 183

6.6.3窗口探测定时器函数 185

6.6.4 TCP响应延迟定时器函数 186

6.6.5 TCP保持连接定时器函数 188

6.7 TCP数据发送 190

6.8 TCP数据接收 197

6.8.1 TCP接收处理函数tcp_v4_rcv() 197

6.8.2 TCP接收状态处理 200

6.8.3连接状态下TCP数据段的处理 205

6.8.4 TCP套接字层接收 210

7.1 IP层与路由概念 217

7.1.1 IP数据报 217

7.1.2路由概念 218

7.2 IP层相关数据结构 219

7.2.1 IP数据报头 219

7.2.2路由cache数据结构 220

7.3路由cache处理函数 223

7.3.1 rt_garbage_collect()函数 223

7.3.2路由cache处理其他函数 226

7.4 RPDB及FIB数据结构 227

7.4.1路由表数据结构 228

7.4.2 FIB规则 230

7.5路由 234

7.5.1路由初始化 234

7.5.2从IP层发出一个数据报 235

7.5.3接收一个数据报到IP层 237

7.6网络地址到物理地址的映射协议ARP 243

7.6.1 ARP协议运作机制 244

7.6.2 ARP数据结构 244

7.6.3 ARP协议初始化 245

7.6.4接收并处理ARP报文 248

7.7差错与控制报文ICMP 253

7.7.1 ICMP的数据结构 254

7.7.2 ICMP初始化 254

7.7.3 ICMP报文处理 255

7.7.4发送ICMP报文 256

8.1网络设备数据结构 258

8.2 ne2000兼容网卡介绍 263

8.2.1 ne2000的寄存器 264

8.2.2主要寄存器功能 265

8.2.3 8039.h文件 266

8.2.4数据接收与发送 268

8.3网卡的初始化 269

8.3.1 net_dev_ init() 269

8.3.2 ethif_probe() 274

8.3.3 ne_probe() 276

8.3.4 ne_probel() 277

8.3.5 ethdev_init() 284

8.3.6 ether_ setup() 285

8.4打开与关闭 286

8.4.1网卡打开ei_open() 286

8.4.2网卡关闭函数ei_close() 288

8.5数据发送 288

8.5.1 ei_start_xmit() 288

8.5.2 ne_block_output() 292

8.5.3 NS8390_ trigger_ send() 295

8.6数据接收 296

8.6.1 ei_interrupt() 297

8.6.2 ei_receive() 300

8.6.3 ne_get_8390_hdr() 304

8.6.4 ne_block_input() 305

8.6.5 netif_rx() 307

8.6.6 netif_rx_schedule() 309

9.1 ARM 311

9.1.1概述 311

9.1.2 LPC2210 312

9.1.3 LPC2210结构 313

9.1.4仿真和调试 317

9.2嵌入式μClinux及其应用开发 318

9.2.1嵌入式μClinux系统概况 318

9.2.2开发工具 319

9.2.3建立μClinux开发环境 320

9.2.4在μClinux下开发应用程序 321

9.3基于ARM的嵌入式网络系统的构建 322

9.3.1 GPIO 323

9.3.2串口设计 329

9.3.3网卡8019as的连接 331

9.3.4串口网络服务器与socket编程 332

9.4基于无操作系统的嵌入式TCP/IP协议的实现 335

9.4.1 Socket的实现 335

9.4.2数据结构的简化 337

9.4.3数据发送 339

9.4.4数据接收 341

9.5基于GPRS的数据采集设计 344

9.5.1.GPRS通信原理及网络结构 344

9.5.2 GPRS无线数传模块TC35I 345

9.5.3 TC35I的GPRS网络操作 346

9.5.4 TC35I的GPRS网络程序实现 346