书籍详情
《Linux中TCP》[37M]百度网盘|亲测有效|pdf下载
  • Linux中TCP

  • 出版时间:2008-07
  • 热度:9639
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

  本书共分9章。第1章简单介绍了嵌入式Internet的基本技术和TCP/IP协议。第2~8章全面介绍了TCP/IP协议在Linux中的实现,其中:第2章的内容是Linux中与TCP/IP协议实现密切相关的内核技术;第3章的内容是网络编程与套接字的实现;第4~7章系统分析了TCP/IP的实现;第8章是有关网络设备的介绍。第9章介绍了嵌入式网络的开发与TCP/IP协议的嵌入式应用。本书可作为从事嵌入式系统和嵌入式网络开发与应用科技人员的参考书,也可作为本科生与研究生的TCP/IP协议教学参考书。

内容简介

  《Linux中TCP/IP协议实现及嵌入式应用》共分9章。第1章简单介绍了嵌入式Internet的基本技术和TCP/IP协议。第2~8章全面介绍了TCP/IP协议在Linux中的实现,其中:第2章的内容是Linux中与TCP/IP协议实现密切相关的内核技术;第3章的内容是网络编程与套接字的实现;第4~7章系统分析了TCP/IP的实现;第8章是有关网络设备的介绍。第9章介绍了嵌入式网络的开发与TCP/IP协议的嵌入式应用。《Linux中TCP/IP协议实现及嵌入式应用》可作为从事嵌入式系统和嵌入式网络开发与应用科技人员的参考书,也可作为本科生与研究生的TCP/IP协议教学参考书。

内页插图

目录

第1章 嵌入式Internet概述
1.1 嵌入式系统1
1.2 Internet网络2
1.3 嵌入式Internet技术3
1.4 嵌入式操作系统与Linux5
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章 Linux的内核技术
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章 网络编程与网络socket的实现
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章 TCP/IP协议层
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章 socket缓冲与内存分配
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章 TCP/UDP数据发送与接收
6.1 TCP和UDP简介162
6.1.1 UDP162
6.1.2 TCP163
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章 IP层
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 网络地址到物理地址的映射协议ARP243
7.6.1 ARP协议运作机制244
7.6.2 ARP数据结构244
7.6.3 ARP协议初始化245
7.6.4 接收并处理ARP报文248

7.7 差错与控制报文ICMP253
7.7.1 ICMP的数据结构254
7.7.2 ICMP初始化254
7.7.3 ICMP报文处理255
7.7.4 发送ICMP报文256

第8章 Linux网络设备
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_probe1( )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章 嵌入式系统与嵌入式网络
9.1 ARM311
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 GPIO323
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无线数传模块TC35I345
9.5.3 TC35I的GPRS网络操作346
9.5.4 TC35I的GPRS网络程序实现346
参考文献

前言/序言

  嵌入式系统以应用为中心,以计算机技术为核心技术,是计算机系统硬件和系统软件以及应用软件的综合,已经广泛服务于工业设备与自动化控制、通信、仪器仪表、航天和其他交通工具、军事装备以及消费类电子产品中的核心智能系统。Internet网络是世界各地计算机和通信设备相互间通信的方法和手段,是信息的载体和传输系统,是连接全世界计算机的纽带,是世界上最大的计算机网络,覆盖了整个世界的范围。Internet的出现正在改变着人们的生产方式、工作方式、生活方式和学习方式。
  计算机技术和网络技术的发展在20世纪交替的时候互相影响,嵌入式系统与网络技术的结合将必然形成嵌入式Internet系统,并得到广泛的应用。如何将网络协议特别是TCP/IP协议应用到嵌入式系统中,是嵌入式网络系统开发的关键。
  Linux作为一个优秀的开源的操作系统,为我们学习TCP/IP协议程序开发提供了绝好的环境。通过对Linux中TCP/IP协议的分析,可以打破原有对TCP/IP协议的神秘感,掌握TCP/IP协议实现的方法和技巧。在原有Linux的TCP/IP协议的基础上,通过适当的编程裁剪,就可以实现自己的TCP/IP协议,并用于嵌入式系统中。
  为了提供一个学习和借鉴Linux中TCP/IP协议实现的方法和手段,为嵌入式网络系统的设计提供网络协议的支撑,有必要(同时Linux的开放源代码也提供了可能)去阅读分析Linux中TCP/IP的实现代码,本书的目的就在于此。全书以Linux2.4为主要阅读分析对象,全面介绍了Linux中TCP/IP协议的实现原理与方法。全书不仅分析了Linux的TCP/IP协议实现的代码,对协议的代码进行了比较详细的说明,而且力图从实现原理和实现机制上进行研究。在此基础上讨论了常用的嵌入式网络的开发方法和实例。
  全书共分9章。第1章简单介绍了嵌入式Internet的基本技术和TCP/IP协议。第2~8章全面介绍了TCP/IP协议在Linux中的实现,其中: 第2章的内容是Linux中与TCP/IP协议实现密切相关的内核技术;第3章的内容是网络编程与套接字的实现;第4~7章系统分析了TCP/IP的实现;第8章是有关网络设备的介绍。第9章介绍了嵌入式网络的开发与TCP/IP协议的嵌入式应用。本书由张曦煌和柴志雷共同编著,其中张曦煌主要负责第1~3章、第8~9章,柴志雷负责第4~7章,张曦煌负责全书的通稿。同时要感谢孟超、刘飞、刘昌庆、张波、张勇、龚圣峰、胡浩、巢一波、刘步中、赵超、王庆磊、王刚、朱锦等人在成书过程中所做的工作。
  在全书的编著过程中,虽然我们力求严谨,但由于时间仓促,水平有限,书中难免有错误和遗憾,在此殷切希望广大读者批评指正,也希望能够有机会一起讨论。在编著的过程中参考了许多的文献和网络上的资料,得到了许多同学和老师的帮助,在此一并表示感谢!
  最后要感谢北京航空航天大学出版社以及王鹏编辑,正是他们的鼓励,才使得我们有勇气和机会,在国内比较早地将平时对嵌入式网络学习研究的心得汇成这本书。希望本书能够抛砖引玉,使得在国内有更多的人有志于嵌入式网络开发,TCP/IP的编程技术不再是高不可攀的。