选择特殊符号
选择搜索类型
请输入搜索
第一部分 路由选择的基本知识
第1章 TCP/IP回顾
1.1 TCP/IP协议层
1.2 IP包头
1.3 IPv4地址
1.4 地址解析协议(ARP)
1.5 ICMP
1.6 主机到主机层
1.7 展望
1.8 总结表:第1章命令总结
1.9 推荐读物
1.10 复习题
1.11 配置练习
1.12 故障诊断练习
第2章 IPv6概述
书是一本详细而又完整地介绍互连网络内部网关协议(IGP)的专业书籍,堪称有关IGP方面不可多得的经典之作。本书共分三个部分。第一部分主要介绍了网络和路由选择的基本知识,其中包括IPv4协议、IPv6协议和路由技术。第二部分是本书的精华,这一部分详细、深入地讲述了各种常用的内部路由协议,如RIP、RIPv2、RIPng、无类别路由选择、EIGRP、OSPFv2、OSPFv3、IS-IS等协议,每一章除了对该协议的实现机制和参数详尽阐述,使读者对协议的实现原理有一个清晰的理解外,还通过在实际网络环境中的实例,详细地论述了该协议在Cisco路由器上的配置和故障处理方法,帮助读者获取大量解决实际问题的专业技能。第三部分介绍了如路由重新分配、缺省路由/按需路由选择、路由过滤、路由映射等多种重要而有效的路由控制工具,用来创建和管理多个IP路由选择协议的协调和互操作。附录部分讲述了二进制、十六进制转换、访问列表、CCIE提示等内容。
相对于第一版,本书第二版具有以下更新:在第一版详细讲述IPv4协议中IGP的基础上,大量增加了相应协议在IPv6协议中的实现和配置,其中单独一章用来讲述IPv6中应用的OSPFv3协议,这是本书新版的一大亮点;同时本书根据Internet和Cisco IOS系统的最新发展,适当地删减了如网桥、IGRP等过时的内容,并增加了许多新的IOS增强特性的讲解。
第2版前言第1版前言第1章 土方工程1.1 土的分类与工程性质1.2 场地平整、土方量计算与土方调配1.3 基坑土方开挖准备与降排水1.4 基坑边坡与坑壁支护1.5 土方工程的机械化施工复习思考题第2...
前言第一章 绪论第一节 互换性概述第二节 加工误差和公差第三节 极限与配合标准第四节 技术测量概念第五节 本课程的性质、任务与基本要求思考题与习题第二章 光滑孔、轴尺寸的公差与配合第一节 公差与配合的...
第一篇 个人礼仪1 讲究礼貌 语言文明2 规范姿势 举止优雅3 服饰得体 注重形象第二篇 家庭礼仪1 家庭和睦 尊重长辈2 情同手足 有爱同辈第三篇 校园礼仪1 尊重师长 虚心学习2 团结同学 共同进...
电厂图书目录
柜号 序号 G1 1 G1 2 G1 3 G2 4 G2 5 G2 6 G2 7 G2 8 G2 9 G1 10 G2 11 G2 12 G2 13 G2 14 G1 15 G1 16 G1 17 G2 18 G2 19 G2 20 G1 21 G3 22 G3 23 G3 24 G3 25 G3 26 G3 27 G1 28 G1 29 G3 30 G3 31 G2 32 G2 33 G2 34 G2 35 G2 36 G2 37 G2 38 下右 39 下右 40 下右 41 下右 42 下右 43 下右 44 下右 45 下右 46 下右 47 下右 48 下右 49 下右 50 下右 51 下右 52 下右 53 下左 54 下左 55 下左 56 下左 57 下左 58 下左 59 下左 60 下左 61 下左 62 下左 63 下左 64 下左 65 下左 66 下左 67 下
工程常用图书目录
1 工程常用图书目录(电气、给排水、暖通、结构、建筑) 序号 图书编号 图书名称 价格(元) 备注 JTJ-工程 -24 2009JSCS-5 全国民用建筑工程设计技术措施-电气 128 JTJ-工程 -25 2009JSCS-3 全国民用建筑工程设计技术措施-给水排水 136 JTJ-工程 -26 2009JSCS-4 全国民用建筑工程设计技术措施-暖通空调 ?动力 98 JTJ-工程 -27 2009JSCS-2 全国民用建筑工程设计技术措施-结构(结构体系) 48 JTJ-工程 -28 2007JSCS-KR 全国民用建筑工程设计技术措施 节能专篇-暖通空调 ?动力 54 JTJ-工程 -29 11G101-1 混凝土结构施工图平面整体表示方法制图规则和构造详图(现浇混凝土框架、剪力墙、框架 -剪力墙、框 支剪力墙结构、现浇混凝土楼面与屋面板) 69 代替 00G101
在单片机上实现TCP/IP与在PC机上实现TCP/IP是有所不同的,参考《TCP/IP1单片机上的实现特点和方法》我们可以了解到,它的特点是:
1. 速度慢:根据该文档的介绍12M晶振的51单片机的最快网络传送速度为25KB/s。其中的关键在于TCP/IP需要对传送的每个字节进行校验和计算,以及必要的拷贝。这样51单片机的处理速度就不够了。为了提高单片机TCP/IP的速度一般的方法是要对协议栈进行精简。
2. 程序存储空间和外部RAM空间不大:一般的单片机的最大程序和数据空间为64KB。TCP/IP协议一般需要对发送的数据进行缓存,而一个最大的数据包就有1500B左右,当网络速度很大的时候内存消耗将很大。对于非嵌入式TCP/IP协议栈,64KB的程序和数据空间是不够的。
3. 单片机体系结构:51单片机是8位机,所以对于需要完成同一个数据操作,32位的PC机可能只需要10条指令,而51单片机可能需要几百条指令。
由于TCP协议栈的程序流程较为复杂,因为程序中需要处理对方发送过来的数据、发起的连接,而我方并不知道对方会何时进行什么样的操作,这就使得协议处理起来较为复杂。另外一个原因是单片机TCP/IP协议栈的稳定性是以非常重要的问题,一个稳定的协议栈需要在实际应用中经过长时间的测试,所以编写一个稳定的单片机TCP/IP协议栈更加困难。为此另外一种选择就是使用现有的TCP/IP协议栈。
1. eCos单片机TCP/IP协议栈:eCos TCP/IP栈是涉及与eCos操作系统/内核一起运行的。eCos(和TCP/IP栈)由大量处理其结构支持。eCos TCP/IP栈当前发布了一个测试版,作为一个单独的模块。
2. ZLIP 51单片机TCP/IP协议栈:ZLIP是专门为51单片机设计的嵌入式TCP/IP协议栈,可以在有操作系统和没有操作系统情况下运行,具有代码量适中、运行速度快、用户接口简单、兼容BSD socket接口的特点。实现了TCP、UDP、ICMP、ARP协议,ZLWeb实现了HTTP协议。支持多TCP连接、多UDP连接同时运行,支持在uc/os-II操作系统下多任务运行数据收发。可以用于51单片机TCP/IP上网解决方案。
3. uc/ip 单片机TCP/IP协议栈:uC/IP(mew-kip)是为为控制其设计的一个TCP/IP协议栈。代码基于BSD(很像所有其它栈)但对非常小的覆盖范围功能有所减少。它当前为Linux和DOS目标而建。
4. BSD 单片机TCP/IP协议栈:BSD栈历史上是其他商业栈的开始点,大多数专业TCP/IP栈(如带Wind-River VxWorks内核的)是BSD栈派生的。这是因为BSD在BSD许可协议下提供了他们的栈,它们的许用证使你能以修改或未修改的形式结合它们的代码而无须向创建者付版税。与GPL许用证相比,如果你结合GPL源代码,后者要求你的GPL中公开你的源代码。
5. lwIP 单片机TCP/IP协议栈:lwIP(轻型)TCP/IP栈是TCP/IP协议栈的一个小型实现。它包括带IP和ICMP的TCP和UDP传输层。还提供一个可选的BSD套接字API。为了性能,还包括一个零拷贝API。LwIP协议栈是为嵌入式系统设计的并能适合40KB的ROM和几百字节的RAM。为了可移植性它用C编写。
6. uIP 单片机TCP/IP协议栈:uIP是专门为8位和16单片机设计的一个非常小的TCP/IP协议栈。uIP完全用C编写,以此可以移植到各种不同的结构和操作系统上。一个编译的栈可以有几KB ROM或几百字节RAM中运行。uIP还包括一个HTTP服务器作为服务内容。
7. TinyTCP 单片机TCP/IP协议栈:TinyTCP栈是TCP/IP的一个非常小的简单的实现,它包括一个FTP客户。TinyTCP是为烧入ROM设计的并且对大端结构似乎是有用的(初始目标是68000芯片)。TinyTCP也包括一个简单的以太网驱动器用于3Com多总线卡。
8. WATTCP 单片机TCP/IP协议栈:WATTCP是为嵌入基于DOS的系统而设计的一个小型TCP/IP栈。它包括一个Real Mode DOS版本和另一个32位扩展环境版本。
用户在拿到一个单片机TCP/IP协议栈以后该如何处理呢。其中的处理分为两个部分:上层接口和下层接口。
4. 1 上层接口
用户使用单片机TCP/IP的目的实际非常明了,就是要实现数据的传送,即从PC机(或者另一个单片机)上传送过来的数据能够在本地单片机上接收,反之亦然。所以如果屏蔽底层的话,单片机TCP/IP协议栈就是一个传输数据的手段。所以最后归结到了使用send()、recv()函数即可。这就是使用单片机TCP/IP协议栈的核心所在。
但是事实上并没有这么简单,因为对于TCP需要有发起连接、接受连接、发送数据、接收数据、关闭连接等操作以配合数据的传输。TCP/IP协议栈一般为用户提供如下的接口:
1. 初始化协议栈和释放协议栈的函数接口,类似Init(), Release()之类的函数。
2. 提供类似BSD socket的socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select等API函数,用户调用此类函数进行发起连接、接受连接、发送数据、接收数据、关闭连接等操作。
3. 接受连接、接收数据、被动关闭的处理:由于此类操作是上位机发起的,所以TCP/IP协议栈必须提供一套机制来处理此类事件的发生。一般来说有两种方法:
a) 主动等待:例如使用BSD的recv()函数等待数据的到来。
b) 回调机制:采用类似MFC的OnReceive()函数的回调机制,也即是说在接收到数据的时候会自动调用OnReceive()函数。
那么用户如何使用以上的接口来实现远程控制、远程数据采集呢?方法很简单。
例如如果需要实现一个对LED灯的亮和灭的远程控制应用。首先PC机使用TCP/IP发送工具例如SocketDlgTest程序发送一个字节的“1”到开发板(根据开发板的IP地址发送)。开发板在OnReceive函数中发现收到的是“1”,那么就通过P1端口将灯打开;反之如果收到的是“0”则将灯熄灭。
如果是实现一个远程数据采集的应用,例如定时进行温度采集。首先PC机使用SocketDlgTest程序等待发来数据。开发板每隔一段时间采集一个数据,然后通过send()函数将数据发送给PC机(根据PC机的IP地址发送),这样PC就接收到了当前的远程温度数据。
4. 1 下层接口
下层接口是一个比较复杂的部分,实际上是TCP/IP协议栈和底层硬件的对接问题。如果用户将TCP/IP协议栈移植到自己的单片机系统上。由于硬件上存在一定的差异,就需要修改底层代码。这里需要包括:
1.网卡驱动:如果TCP/IP协议栈已经提供了网卡驱动,并且驱动和用户使用的网卡芯片一样,那么就相对容易一些。这里只需要修改网卡的基地址即可。否则需要自己动手写驱动程序。如果网卡采用RTL8019AS可以参考老古开发网的单片机与TCP/IP网络。如果网卡采用CS8900,可以参考《嵌入式 TCP/IP 协议单片机技术在网络通信中的应用》
2.TCP/IP底层接口。一般单片机TCP/IP需要底层为其提供定时中断、网卡中断处理的入口。底层需要做相应的处理。