第一篇:教程OpenWRT总结范文
[教程]OpenWRT总结
OpenWRT可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWRT的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序
对于开发人员,OpenWRT 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备
由于OpenWRT是基于Linux的发行版,所以就决定了很多的Linux特性在OpenWRT上的继承性,对于路由器来说,这实在是一个极其优良的特性,意味着路由器使用者可以像使用Linux那样去使用这个固件,虽然使用方式因发行版的差距而存在区别
1、安装
OpenWRT官网:https://openwrt.org/
安装的时候要注意固件的硬件版本一定要和路由器硬件版本一致,否则会出现很多的奇葩情况,甚至直接变砖
固件下载:http://downloads.openwrt.org/
可以下载最新的barrier_breaker(14.x rc)版本,也可以选择官方稳定版本attitude_adjustment(12.09),或者是更早的backfire版本(10.x),另外在snapshot目录下还有trunk版本,选择适合自己的版本就好
固件名称的格式:
openwrt-
Example:
openwrt-ar71xx-generic-tl-wr740n-v5-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr740n-v5-jffs2-factory.bin
openwrt-ar71xx-generic-tl-wr740n-v5-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr740n-v5-jffs2-sysupgrade.bin
Firmware 常见的3种扩展名格式TRX, TRX2, BIN
还需要注意的是要分清两个文件factory和sysupgrade的区别,factory固件包含art部分,是从原厂固件升级到op用的,可以在路由器原版固件界面直接软升级,亦或是使用TTL方式刷入路由器,sysupgrade仅包含firmware部分,是已经是op的情况下升级固件用的,除非你对编程器非常了解,否则不推荐使用TTL方式刷入,升级最好的方式就是OpenWRT自带的sysupgrade功能,其次也可以使用mtd命令
当使用原版固件刷固件之后,第一次登录它只有 telnet 被启动,只有设置好root的密码后,我们才可以SSH进行操作
注意:原版固件是没有LUCI等等WEB管理界面的,所以需要文本操作
首先我们要telnet到路由器:(推荐工具:PUTTY)
#telnet 192.168.1.1
设定root密码:
#passwd
之后输入root密码,完成后SSH会自动启动,之后就可以像使用Linux那样去使用了。
2、UCI(Unified Configuration Interface)
UCI是OpenWRT的系统设置工具, 我们可以使用它设置路由器上的一切一切
所需的packages:
uci(/sbin/uci)
libuci(/lib/libuci.so)
所有设置存放在
/etc/config/xxx
常用设置文件:
/etc/config/dhcp#DHCP配置文件
/etc/config/dropbear#SSH配置文件
/etc/config/firewall#OpenWRT防火墙配置文件
/etc/config/network#网络配置文件
/etc/config/system#系统设置文件
/etc/config/timeserver#NTP配置文件
/etc/config/wireless#无线配置文件
配置文件一般格式:
package 'example'
config 'example' 'test'
option
'string'
'some value'
option
'boolean'
'1'
list
'collection'
'first item'
list
'collection'
'second item'
UCI命令行使用方法:
uci
command:
commit #把修改设置写入flash, 并且应用(包括 uci 及人工修改)
show [
#查看设置(compressed notation)
get #查看某个设置值(compressed notation)
changes [config]
set
add_list
delete
revert
export [config] #导出某设置(UCI syntax)
import [config] #导入设置值
Example:
#uci set dhcp.lan.leasetime=4h
#uci set dhcp.lan.leasetime=24h
------
#uci get dhcp.lan.leasetime 24h
------
#uci show dhcp
dhcp.lan=dhcp
dhcp.lan.interface=lan
dhcp.lan.start=100
dhcp.lan.limit=150
dhcp.lan.leasetime=24h
-----
#uci changes
dhcp.lan.leasetime=1
dhcp.lan.leasetime=24h
#uci revert dhcp
#uci get dhcp.lan.leasetime 12h
#uci commit
系统现在的状态:
#uci-P /var/state show network.wan
Usage:uci-P
add a search path for config change files and use as default
顺序问题:
某些设置是有次序之分的, 比如 firewall 的 rule
所以设置有另一种格式
@rule[-1] #[-1] 代表最尾
root@OpenWrt:~# uci add firewall rule
root@OpenWrt:~# uci set firewall.@rule[-1].src=wan
root@OpenWrt:~# uci set firewall.@rule[-1].target=ACCEPT
root@OpenWrt:~# uci set firewall.@rule[-1].proto=tcp
root@OpenWrt:~# uci set firewall.@rule[-1].dest_port=22
root@OpenWrt:~# uci commit firewall
root@OpenWrt:~# /etc/init.d/firewall restart
服务的开机启动:
/etc/init.d/xxx
start 立刻启动服务
enable 每次开机自动启动
3、SSH连接(Dropbear)
设置文件:
/etc/config/dropbear
---
enable <--on
BannerFile <--/etc/banner
Port <--22
GatewayPorts <---tunnel port
Interface <--0.0.0.0
RootLogin <--default: on
RootPasswordAuth <--default: on
SSH From Wan:
/etc/config/firewall
--
#Allow SSH
config rule
option src
wan
option proto
tcp
option dest_port
ssh
option target
ACCEPT
4、包管理工具OPKG
OPKG可以理解为一个小型的包管理工具,具有一般包管理工具具有的主要功能。
设置文件:
/etc/opkg.conf
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages #下載 Packages.gz
dest root /
dest ram /tmp
lists_dir
ext
/var/opkg-lists
# /var/opkg-lists/snapshots
option
overlay_root
/overlay
arch all 100
# package优先次序
lock文件:
/usr/lib/opkg/lock
命令行用法:
opkg [options...] [arguments...]
update
#下载可用的 package 文件(/var/opkg-lists/snapshots)
install
remove
flag hold, noprune, user, ok, installed, unpacked configure upgrade #(找出 pkgs opkg list-upgradable) # 不建议在 SquashFS partition 上使用 download #下载某 package(并没有下载所要的依赖package) 包信息: status [pkg|regexp] info [pkg|regexp] list [pkg|regexp] List available packages list-installed List installed packages files # 有什 files search destination for any package installation.dest root / dest ram /tmp dest mnt /mnt opkg install somepackage-d destination_name Example: -d ram 有用的options: --cache --nodeps Example: 用 winscp 上传所需的 package 到 /tmp/package #opkg install *.ipk 查看依賴性: #opkg depends muninlite muninlite depends on: xinetd Troubleshoot: rm /usr/lib/opkg/lock 5、路由器初始化(FIRSTBOOT) 以下过程只适用于使用 SquashFS 的openwrt路由器 原因是squashfs 才有 failsafe mode Step1: 把 PC 的IP地址设置为192.168.1.2(与路由器在同一网段上) Step2: 长ping 192.168.1.1, 会看到以下情況 #ping-t 192.168.1.1 Ping 192.168.1.1: 回复自 192.168.1.101: 目的地主机无法连接。 请求超时。 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 请求超时。 请求超时。 请求超时。 请求超时。 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 回复自 192.168.1.1: 字节=32 time<1ms TTL=64 ---- Step3: 在前段 4 次ping 到的期间按路由器 reset 按键,之后会看到路由器的 LED 狂闪 Step4: 当成功 ping 到路由器时,就可以telnet到路由器了 此时不需要密码即可登录路由器 Step5: 由于系统是在 Read-only file system, 所以要 mount_root 它 r/w 之后才可以重置密码 #passwd 刪除一切設定: #mtd-r erase rootfs_data #相当于firstboot 指令 或者 #firstboot #all settings will be reseted Step6: #reboot-f #Force reboot(initis not running) 注意: 不在 rescuse mode 用 firstboot 是会出问题的,请不要尝试 6、系统升级 我们可以用官方工具去升級固件: sysupgrade 命令行用法: sysupgrade [options] options: -f -n do not save configuration over reflash -v more verbose -c 保留系统设置 #根据/lib/upgrade/keep.d来保留 base-files firewall base-files-essential uhttpd 自己要保留的设置就放在 /etc/sysupgrade.conf 检查固件的完整性: #md5sum-c md5sums -c Check sums against list in FILEs md5sums: 86c3f5da10a7f7350391c0fd191cd9b4 *openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin Example: #md5sum-c md5sums.txt openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin: OK #检查一次 image 的完整性再 upgrade 会避免很多问题 升級: Example: #sysupgrade-v openwrt-ar71xx-generic-tl-wr740n-v3-squashfs-sysupgrade.bin Saving config files...etc/sysctl.conf etc/shells etc/rc.local etc/profile etc/passwd etc/inittab etc/hosts etc/group etc/firewall.user etc/dropbear/dropbear_rsa_host_key etc/dropbear/dropbear_dss_host_key etc/config/wireless etc/config/timeserver etc/config/system etc/config/network etc/config/firewall etc/config/dropbear etc/config/dhcp Switching to ramdisk...Performing system upgrade...Unlocking firmware...Writing from Error fixing up TRX header Upgrade completed Rebooting system...基本上是不会出现什么问题的,有时候刷一些第三方固件时会出现: Invalid image, hardware ID mismatch, hw:07400001 image:07400003.Image check 'platform_check_image' failed.Error: Firmware upgrade is not implemented for this platform.sysupgrade openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-factory.bin Firmware upgrade is not implemented for this platform.root@OpenWrt:/tmp# openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin Firmware upgrade is not implemented for this platform.sysupgrade 解決: #mtd write openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin firmware 注意:使用mtd命令时要注意固件的写入位置,先使用cat /proc/mtd查看当前路由器的固件分区名,部分路由器可能是linux,视情况选择刷入位置 7、mtd(Memory Technology Device) mtd 是一个类似于dd的工具,命令行用法: mtd [option] command: erase write 查看mtd: #cat /proc/mtd dev: size erasesize name mtd0: 00020000 00010000 “u-boot” <--boot loader mtd1: 000e5e00 00010000 “kernel” <--firmware mtd2: 002ea200 00010000 “rootfs” <--firmware mtd3: 00170000 00010000 “rootfs_data” mtd4: 00010000 00010000 “art” mtd5: 003d0000 00010000 “firmware” 配置文件: /dev/mtdX 备份: #dd if=/dev/mtd0 of=/tmp/boot.backup 还原: #mtd-r write /tmp/original_firmware.bin firmware 8、LuCI 主页:http://luci.subsignal.org/trac LuCI是OpenWRT中一个非常常用的WEB端路由器管理页面,可以让OpenWRT路由器像各大厂商路由器那样使用WEB管理界面管理路由器 安裝: #opkg install luci packages: luci #Meta package,它是一大堆 depends uhttpd, luci-mod-admin-full, luci-theme-openwrt, luci-app-firewall,luci-proto-core, luci-proto-ppp, libiwinfo-lua luci-ssl #https luci-theme-openwrt luci-i18n-* luci-app-* luci-app-firewall luci-app-ddns luci-app-ahcp luci-app-freifunk-policyrouting luci-app-multiwan luci-app-ntpc luci-app-openvpn luci-app-qos luci-app-statistics luci-app-samba luci-app-tinyproxy luci-app-vnstat luci-app-wol luci-app-wshaper luci-proto-ppp <---PPPoE luci-proto-pptp pptp ppp kmod-gre resolveip 启用: #/etc/init.d/uhttpd enable #/etc/init.d/uhttpd start Tips: <--started at every boot Hostnames: tim-pc.lan #要配合 domain 使用 Unsaved Change: 本文出自 Server&Coding...,转载时请注明出处及相应链接。0 OpenWRT « [教程]CentOS6搭建PPTPVPN [整理]OpenWRT路由器校园网IPv6大法» 发表评论 电子邮件地址不会被公开。必填项已用*标注 姓名 * 电子邮件 * 站点 openwrt学习总结目录 1:ath9k中的EEPROM中的数据.......................................................................................2 2:Atheros原厂中的EEPROM的中的数据.......................................................................3 3:如何在openwrt添加自定义模块接口.........................................................................4 3.1 make menuconfig中的 kernel modules.....................................................................4 3.2:添加自己的模块到文件netdevices.mk..................................................................6 4:openwrt内核编译及文件系统的生成..........................................................................7 4.1 主.config和内核.config的关系................................................................................8 4.2 Linux内核uimage生成............................................................................................11 4.3 Linux根文件系统生成..............................................................................................12 5:openwrt中的进程启动方式........................................................................................12 6:网络配置.......................................................................................................................15 6.1:有线网络配置........................................................................................................15 6.2:无线网络配置........................................................................................................16 7:LUCI命令使用入门.......................................................................................................16 8:openwrt web页面代码分析........................................................................................19 1:ath9k中的EEPROM中的数据 在文件 compat-wireless-2014-03-31driversnetwirelessathath9k Ar9003_eeprom.h中定义了 struct ar9300_eeprom 其中保存了校准相关的数据变量,如MAC地址,eepromVersion;此数据结构值得研究,同时在sys文件系统了定义了查看这些变量值的接口,其交互的接口如下: root@OpenWrt:/sys/kernel/debug/ieee80211# ls phy0 phy1 此处说明系统有俩个wifi网卡,每一张都有自己的状态信息。 主要的文件有:modal_eeprom,rx_chainmask,tx_chainmask。 2:Atheros原厂中的EEPROM的中的数据 经过ath9k和Atheros SDK中的代码对比之后,发现,EEPROM中的存放的数据结构完全一致。故可以知道,我们可以通过Atheros原厂提供的art.ko及校准文件对openwrt系统进行校准来提供wifi性能的稳定。可能涉及到的问题如下: 1:需要对ark.ko。即需要对内核相关的代码进行移植。 2:需要进一步确定上面定义的ar9300_eeprom 数据存放在什么地方,从什么地方读取。3:需要跟Atheros原厂的进行对比,确保准确无误。代码当然入口点如下: [ 16.300000] ath_ahb_eeprom_read [ 16.300000] ath9k_hw_use_flash 3:如何在openwrt添加自定义模块接口 3.1 make menuconfig中的 kernel modules 其中的各个配置选项来自于下面目录中的.mk文件 [root@localhost /openwrt/openwrt/trunk/package/kernel/linux/modules]$ls 001-depends.mk crypto.mk hwmon.mk leds.mk netdevices.mk.bak nls.mk sound.mk video.mk wireless11221.mk block.mk firewire.mk i2c.mk lib.mk netfilter.mk other.mk spi.mk virtual.mk wireless.mk can.mk fs.mk input.mk netdevices.mk netsupport.mk pcmcia.mk usb.mk w1.mk [root@localhost /openwrt/openwrt/trunk/package/kernel/linux/modules]$ 兄弟们可以打开就知道,其中我们将自己将要添加的内核模块添加到Network Devices中。添加之后的效果为: 3.2:添加自己的模块到文件netdevices.mk 其中自己的模块代码在 FILES:=$(LINUX_DIR)/drivers/net/ethernet/ethernet中 内核控制选项为:CONFIG_AR9344_PHY8035 其中这个很重要需要在多个文件中进行定义AR9344_PHY8035。 在下面的目录中的Makefile添加obj-y += ethernet/ [root@localhost /openwrt/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.36/drivers/net/ethernet]$more Makefile # # Makefile for the Linux network Ethernet device drivers.# obj-y += ethernet/ 同时还需要在Kconfig中添加source “drivers/net/ethernet/ethernet/Kconfig” 其中内容如下: [root@localhost /openwrt/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.36/drivers/net/ethernet/ethernet]$cat Kconfig config AR9344_PHY8035 //很重要的东西 tristate “db12x borad for 9344chip” depends on PCI ---help--- This driver supports for ar9035 phy id 其中看看自己模块中的makefile的内容如下: 主要上面makefile中的CONFIG_AR9344_PHY8035的变量,关于此值相关的配置值如下: [root@localhost /openwrt/openwrt/trunk]$cat.config |grep 9344 CONFIG_PACKAGE_kmod-ar9344_ethernet=y 其中不管CONFIG_PACKAGE_kmod-ar9344_ethernet=y的 值是Y还是M,Linux内核目录中的CONFIG_AR9344_PHY8035的值都是M,古可以知道在根目录(/openwrt/openwrt/trunk)中的make menuconfig的时候是会与Linux内核中的config文件建立起联系的,之间是怎么的联系,现在还不是很清楚。 当在在总的menuconfig中选中自定义的模块之后,系统会自动将此模块加载到内核所在文件系统中 同事也会成ipk格式的文件。 Generating index for package./kmod-ar9344_ethernet_3.10.36-1_ar71xx.ipk 4:openwrt内核编译及文件系统的生成 在此节中主要关注是make menuconfig生成的.config文件和内核生成的.config文件的关系,openwrt中如何生成内核及文件系统。在分析过程中主要查阅的是编译过程生成的log。其中涉及到的主要的makefile如下: [root@localhost /openwrt/openwrt/trunk/include]$ll kernel*-rwxr--r--.1 nobody nobody 4136 2014-05-15 01:26 kernel-build.mk-rwxrwxrwx.1 suiyuan suiyuan 4135 2014-05-09 12:07 kernel-build.mk.bak-rwxr--r--.1 nobody nobody 7101 2014-05-15 01:27 kernel-defaults.mk-rwxrwxrwx.1 suiyuan suiyuan 7100 2014-05-09 12:07 kernel-defaults.mk.bak-rwxrwxrwx.1 suiyuan suiyuan 7341 2014-05-09 12:07 kernel.mk -rwxrwxrwx.1 suiyuan suiyuan 1406 2014-05-09 12:07 kernel-version.mk 及/openwrt/openwrt/trunk/target/linux/ar71xx中的涉及到的makefile 4.1 主.config和内核.config的关系 Linux系统中根据make menuconfig配置阶段来生成的.config文件来决定哪些文件是否编译到系统中。故首先需要搞清楚这俩个.config文件之间的关系。其实这个问题已经在第三节中涉及到了。在openwrt的内核之中,除了必要的需要直接编译进内核之中的,其他驱动都是以模块的形式存在的。Linux内核中主要就是系统必须的驱动程序,而openwrt中除了Linux内核中包含的驱动程序之外还包含了上层应用程序,其这些应用程序占用了munuconfig中的绝大多数配置选项,而与Linux内核相关的配置被包含在了 中,在此内部中的配置都是以模块的形式,在编译完之后存在于根文件系统之中。其中的菜单选项定义在如下目录中: 现在以LED模块为例来说明这俩个.config文件的关系。下面是openwrt的make menuconfig 所配置的选项 其中.config文件中led相关的信息如下: 其中M/Y的意思在于是否将此模块添加到生成的根文件系统root-ar71xx中去,与Linux kernel中的M/Y的意思不同。 同时在编译之后会将上面的模块制作成ipk格式的文件: 现在看看Linux内核中与上面相关的模块的配置信息:在看之前需要查看文件:leds.mk中的内容。openwrt中对Linux内核中的代码的配置选项重新写了自己的配置规则。/openwrt/openwrt/trunk/package/kernel/linux/modules]$cat leds.mk 现在已leds.mk中具体的代码内容为例来说明: define KernelPackage/ ledtrig-timer 此处的ledtrig-timer就是上面看到的 SUBMENU:=$(LEDS_MENU) TITLE:=LED Timer Trigger KCONFIG:=CONFIG_LEDS_TRIGGER_TIMER 会出现在Linux kernel的.config中。 FILES:=$(LINUX_DIR)/drivers/leds/$(if $(call kernel_patchver_ge,3.10),trigger/)ledtrig-timer.ko AUTOLOAD:=$(call AutoLoad,50,ledtrig-timer,1)endef define KernelPackage/ledtrig-timer/description Kernel module that allows LEDs to be controlled by a programmable timer via sysfs endef $(eval $(call KernelPackage,ledtrig-timer))============================= 目前内核编译时执行的makefile中定义的宏顺序为: BuildImage--->中的如下宏定义; install: compile install-targets $(call Image/BuildKernel) $(call Image/BuildKernel/Initramfs) $(call Image/InstallKernel) $(call Image/mkfs/cpiogz) $(call Image/mkfs/targz) $(call Image/mkfs/ext4) $(call Image/mkfs/iso) $(call Image/mkfs/jffs2) $(call Image/mkfs/jffs2_nand) $(call Image/mkfs/squashfs) $(call Image/mkfs/ubifs) $(call Image/Checksum)目前之研究: $(call Image/BuildKernel)的定义: 首先看看/openwrt/openwrt/trunk/target/linux/ar71xx中的makefile文件,其中调用了 $(eval $(call BuildTarget))其中此处的的BuildTarget在/openwrt/trunkopenwrt/trunk/include中的target.mk中定义的。其中有俩个地方进行了定义。如下: BuildTarget=$(BuildTargets/DumpCurrent) BuildTarget?=$(BuildKernel)其中BuildKernel 定义在/openwrt/openwrt/trunk/include/kernel-build.mk中,其中有如下一行: $(Kernel/Prepare)的定义如下: define Kernel/Prepare $(call Kernel/Prepare/Default)endef 在此定义中有: # xzcat $(DL_DIR)/$(LINUX_SOURCE)| $(TAR)-C $(KERNEL_BUILD_DIR)$(TAR_OPTIONS)$(Kernel/Patch)上面俩行分别为对当前的内核进行解压及patch 如果需要查看Linux内核.config文件是如何生成的可以查看如下宏定义: define Kernel/Configure/Default 4.2 Linux内核uimage生成 目前使用的内核加载系统为uboot,如果要使uboot能正确的加载Linux内核,需要将编译成zImage格式的内核添加64个字节uboot头信息转化为uImage格式。同时如果考虑内核压缩需要对uImage进行一定格式的压缩。目前Atheros平台中使用的压缩格式为:lzma openwrt-ar71xx-generic-uImage-lzma.bin 知道如何生成Linux 内核,有助于自己手动生成内核镜像。之前在移植Linux 2.6.31的内核到openwrt中,系统自动生成的镜像不能启动,故之后是根据vmlinux手动创建image。 上面的patch-cmdline对Linux内核patch上系统启动时需要知道的 CMD_LINE的值。此处可以知道Kernel command line的值为:“board=DB120 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)”之后接着对vmlinux进行压缩,压缩格式为:lzma,压缩之后生成的文件为:vmlinux-db120.bin.lzma,接着将生成的文件转化为:uimage格式。最终生成的文件为:vmlinux-db120.bin.lzma 4.3 Linux根文件系统生成 目前Atheros中使用的文件系统文件为: openwrt-ar71xx-generic-db120-rootfs-jffs2.bin 在生成文件系统之前,需要将使用的lib,及系统需要的应用程序copy到一个特定的目录,之后使用命令mkfs.jffs2生成压缩格式的一个bin文件。在openwrt中压缩的总的文件在root-ar71xx目录中。 /openwrt/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/ root-ar71xx 用户可以直接将需要执行的程序copy到root-ar71xx中的相应目录,完成文件的打包处理。 mtd-r write xxx.bin firmware 5:openwrt中的进程启动方式 openwrt中start,stop,enable,disable一个服务。系统中的服务程序的脚本都在/etc/init.d/的目录中。 上面的执行过程可以知道,一个脚本可以有帮助信息及enable,disable功能,其差别会在rc.d中生成和删除以S或者K结束的文件。START=10 STOP=98、下面演示如何写自己的应用程序的启动脚本,分别对此脚本进行start,stop,enable,disable操作。 6:网络配置 此处的网络配置主要关注的是/etc/config中的俩个文件network,wireless,因为当我们通过web配置有线和无线网络的时候,最终对网络的配置都会保存到上面的俩个文件之中。对此部分的配置主要就是使用第三节中UCI命令来实现。 6.1:有线网络配置 由于目前我的当前的板子有一个WAN+4个LAN口,4个LAN口是内部交换的。古在配置文件中我们可以看到WAN和LAN的配置信息。对于WAN口,当前使用的是static IP,其web上面的配置与network上面的配置一致。 同时可以根据UCI来读取或者设置接口的信息。 6.2:无线网络配置 有上面的信息可以知道,其中type 'mac80211' 类型会在LCUI的脚本中对其类型进行判断。使用的信道是11,WiFi模式为:11g,当前功率,国家码等信息。 7:LUCI命令使用入门 UCI是(Unified Configuration Interface)集中式配置信息管理接口的缩写,他是OpenWRT引进的一套配置参数管理机制。UCI管理了OpenWRT下最主要的系统配置,并且提供了简单,容易,标准化的人机交互接口。UCI的管理包含了网络配置,无线配置,系统信息配置等作为路由器的系统主要配置参数。UCI可以帮助开发人员快速的开发出基于OpenWRT的智能路由产品的控制界面(诸如浏览器界面,手机界面等)。 UCI的使用:UCI文件读写方式 UCI文件的读写有两种方式: UCI文件的读写可以通过OpenWRT附带的uci指令来完成,这种读写方式可以用于命令行也可以用于自己开发的WEB程序来操作。直接使用系统的vi编辑器直接修改UCI文件,所做的修改也可以被系统所识别。 UCI指令读取配置 语法格式: uci [ uci get uci show [ 变更类语法: uci add uci add_list uci del_list uci delete uci commit [ OPENWRT使用命令行设置无线和有线网络 uci set network.lan.ipaddr=[lan ip] 使用pppoe设置 uci set network.wan.proto=pppoe //设置wan口类型为pppoe uci set network.wan.username=[上网帐户] uci set network.wan.password=[上网密码] //这两行设置pppoe用户名和密码 如果要挂在上级路由下面,就需要进行下面的设置 uci set network.wan.proto=none //关掉wan uci set network.lan.gateway=[上级路由ip] //网关指向上级路由 uci set network.lan.dns=[上级路由ip] //dns指向上级路由 uci set dhcp.lan.ignore=1 //关掉lan的dhcp 最后对无线网络进行配置 uci set wireless.@wifi-device[0].disabled=0 //打开无线 uci set wireless.@wifi-device[0].txpower=17 //设置功率为17dbm 太高会烧无线模块 uci set wireless.@wifi-device[0].channel=6 //设置无线信道为6 uci set wireless.@wifi-iface[0].mode=ap //设置无线模式为ap uci set wireless.@wifi-iface[0].ssid=[自己设置SSID] //设置无线SSID uci set wireless.@wifi-iface[0].network=lan //无线链接到lan上 uci set wireless.@wifi-iface[0].encryption=psk2 //设置加密为WPA2-PSK uci set wireless.@wifi-iface[0].key=[密码] //设置无线密码 提交应用配置 Shell代码 uci commit //应用 /etc/init.d/network restart //重启网络服务 安装luci管理界面 Shell代码 opkg update // 更新软件列表 opkg list-installed // 查看已安装软件 opkg install luci // 安装LUCI opkg install luci-i18n-chinese // 支持中文 即可完成LUCI的安装。 输入以下命令开启支持web服务的uhttpd,并设置其为自启动: /etc/init.d/uhttpd enable # 开机自启动 /etc/init.d/uhttpd start # 启动uhttpd 实例演示 root@OpenWrt:/etc/config# 显示network 配置 root@OpenWrt:/etc/config# uci show network network.loopback=interface network.loopback.ifname=lo network.loopback.proto=static network.loopback.ipaddr=127.0.0.1 network.loopback.netmask=255.0.0.0 network.globals=globals network.globals.ula_prefix=fd7a:3d01:37c7::/48 network.lan=interface network.lan.ifname=eth0.1 eth1 network.lan.type=bridge network.lan.proto=static network.lan.ipaddr=192.168.1.1 network.lan.netmask=255.255.255.0 network.lan.ip6assign=60 network.wan=interface network.wan.ifname=eth0.2 network.wan.proto=dhcp network.wan6=interface network.wan6.ifname=@wan network.wan6.proto=dhcpv6 network.@switch[0]=switch network.@switch[0].name=switch0 network.@switch[0].reset=1 network.@switch[0].enable_vlan=1 network.@switch_vlan[0]=switch_vlan network.@switch_vlan[0].device=switch0 network.@switch_vlan[0].vlan=1 network.@switch_vlan[0].ports=0t 2 3 4 5 network.@switch_vlan[1]=switch_vlan network.@switch_vlan[1].device=switch0 network.@switch_vlan[1].vlan=2 network.@switch_vlan[1].ports=0t 1 network.@switch[1]=switch network.@switch[1].name=switch1 network.@switch[1].reset=1 network.@switch[1].enable_vlan=1 network.@switch_vlan[2]=switch_vlan network.@switch_vlan[2].device=switch1 network.@switch_vlan[2].vlan=1 network.@switch_vlan[2].ports=0 1 2 3 4 5 root@OpenWrt:/etc/config# =================================查看系统中安装了那些二进制文件 root@OpenWrt:/overlay# opkg list base-files2014-04-24-1 8:openwrt web页面代码分析 首先看看openwrt中自带的页面代码如下: root@OpenWrt:/usr/lib/lua# ls bit.lua iwinfo.so luci nixio nixio.so ubus.so uci.so root@OpenWrt:/usr/lib/lua# cd luci/ root@OpenWrt:/usr/lib/lua/luci# ls cacheloader.lua dispatcher.lua ip.lua sys.lua cbi fs.lua ltn12.lua template cbi.lua http model template.lua ccache.lua http.lua sauth.lua tools config.lua i18n sgi util.lua controller i18n.lua store.lua version.lua debug.lua init.lua 看看lua目录下面有哪些目录存在: 其中需要关注的文件目录如下: usr/lib/lua/luci/controller 其中包括系统默认的一级菜单。 在LuCI中Controller的文件定义在固件中的/usr/lib/lua/luci/controller目录中,模版目录在/usr/lib/lua/luci/view目录下,而model则是在/usr/lib/lua/luci/model中。而model中有一个特殊的模块叫做CBI,被称为LuCI中最酷的功能,该模块的功能是方便的对一个配置文件进行修改。在研究其代码的时候会看到: 在上面的/usr/lib/lua/luci/controller中的代码中,每一个文件的开始都有一个function index()的定义,其中: page = entry({“admin”, “network”, “wireless_join”}, call(“wifi_join”), nil)entry函数的定义说明如下: path is a table that describes the position in the dispatching tree: For example a path of {“foo”, “bar”, “baz”} would insert your node in foo.bar.baz.target describes the action that will be taken when a user requests the node.There are several predefined ones of which the 3 most important(call, template, cbi)are described later on on this page call,template和cbi。 title defines the title that will be visible to the user in the menu(optional)order is a number with which nodes on the same level will be sorted in the menu(optional)其中target主要分为三类:call,template和cbi。call用来调用函数,template用来调用已有的htm模版,而CBI模块则是使用非常频繁也非常方便的模块,包含的一系列lua文件构成界面元素的组合,所有cbi模块中的控件都需要写在luci.cbi.Map中,在cbi模块中定义各种控件,Luci系统会自动执行大部分处理工作。 /usr/lib/lua/luci/下有三个目录model、view、controller,它们对应M、V、C。Call()方法会调用controller里的函数,主要通过openwrt系统的uci、network、inconfig等工具对系统进行设置,如果需要还会生成新界面。动态生成界面的方法有两种,一是通过cbi()/form()方法,它们利用model中定义的模板map,生成html文件;另一种是通过template()方法,利用view中定义的htm(一种类似html的文件),直接生成界面。template用来调用已有的htm模版,模版目录在lualuciview目录下。即语句entry({“admin”, “status”, “overview”}, template(“admin_status/index”), _(“Overview”), 1)调用了lualuciviewadmin_statusindex.htm文件来显示。cbi语句使用cbi模块,这是使用非常频繁也非常方便的模块,在cbi模块中定义各种控件,Luci系统会自动执行大部分处理工作。其链接目录在lualucimodelcbi下。显然语句entry({“admin”, “status”, “processes”}, cbi(“admin_status/processes”), _(“Processes”), 6)调用lualucimodelcbiadmin_statusprocesses.lua来实现模块。系统中的CBI目录,其中包含了系统中的二级目录。[root@localhost /openwrt/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/lua/luci/model]$tree.|--cbi | |--admin_network | | |--dhcp.lua | | |--hosts.lua | | |--iface_add.lua | | |--ifaces.lua | | |--network.lua | | |--proto_ahcp.lua | | |--proto_dhcp.lua | | |--proto_l2tp.lua | | |--proto_none.lua | | |--proto_ppp.lua | | |--proto_pppoa.lua | | |--proto_pppoe.lua | | |--proto_pptp.lua | | |--proto_static.lua | | |--routes.lua | | |--vlan.lua | | |--wifi.lua | | `--wifi_add.lua | |--admin_status | | `--processes.lua | |--admin_system | | |--admin.lua | | |--backupfiles.lua | | |--buttons.lua | | |--crontab.lua | | |--fstab | | | |--mount.lua | | | `--swap.lua | | |--fstab.lua | | |--ipkg.lua | | |--leds.lua | | |--startup.lua | | `--system.lua | `--firewall | |--custom.lua | |--forward-details.lua | |--forwards.lua | |--rule-details.lua | |--rules.lua | |--zone-details.lua | `--zones.lua |--firewall.lua |--ipkg.lua |--network | `--proto_ppp.lua |--network.lua `--uci.lua 7 directories, 42 files [root@localhost /openwrt 文档说明: 本文档简述了openwrt sdk的升级功能流程,从页面传入升级文件到升级文件检测,再到调用升级脚本进行升级,升级完成后,进行系统重启。最后简述了如何添加升级文件标识,标识包括自己定义的字段,以及升级软件的md5值。达到防止用户用其他openwrt sdk编译出来的固件刷新我们的系统,以及防止升级软件被破坏。 文档需要用到的文件及在sdk中的路径(某些文件路径可能随项目的不同而改动):./package/ralink/ui/luci-mtk/src/modules/admin-full/luasrc/controller/admin/system.lua./target/linux/ramips/image/ Makefile./package/base-files/files/lib/upgrade/common.sh./package/base-files/files/lib/functions.sh./package/base-files/files/sbin/sysupgrade./target/linux/ramips/base-files/lib/ramips.sh./target/linux/ramips/base-files/lib/upgrade/platform.sh 文档正文: 1.从页面接受传过来的升级文件 作为整个流程的开始,功能实现在文件system.lua中。 这是一个lua文件,很容易在function index函数中找到系统升级功能的入口函数:action_flashops。在这个函数中首先通过fp = io.open(image_tmp, “w”)打开升级临时文件:/tmp/firmware.img,打开后通过fp:write(chunk)写入页面传进来的升级文件。到这里,接受升级文件完成。 2.检测升级文件的合法性 实现同样在文件system.lua中。 在函数image_supported()中进行检测,这个函数通过image magic number来检测升级文件是否合法。函数image_supported()会调用platform.sh脚本中的platform_check_image函数,platform_check_image函数调用ramips.sh脚本中的ramips_board_name函数,获取board name,ramips_board_name函数从文件 /tmp/sysinfo/board_name 中获取board name,若没有则为unknown,并返回给调用者,我用的板是ralink-soc。platform_check_image函数继续调用common.sh脚本中的get_magic_long函数,用以获取升级文件magic,就是升级文件前4位。get_magic_long函数调用common.sh脚本中的get_image函数用以获取文件/tmp/firmware.img内容,其实就是cat /tmp/firmware.img.获取到的内容,通过dd bs=4 count=1,来获取前4位,最后通过hexdump-v-n 4-e '1/1 “%02x”'处理以十六进制编码返回调用者。获取到的升级文件magic,在platform_check_image函数中与27051956做对比,这个值是在固件编译的时候已经定好了的。如果相等,就是合法的升级文件,继续升级动作;不相等则为非法升级文件,做一些后续处理并终止升级动作。到这里检测升级文件合法性完成。 3.检测升级文件不合法后的处理 实现同样在文件system.lua中。检测到不合法后,通过nixio.fs.unlink(image_tmp)来删除临时文件/tmp/firmware.img,并通过image_invalid = true,设置检测失败,用以通知页面显示提示信息。终止升级。处理完成。4.检测升级文件合法后的处理 实现同样在文件system.lua中。 检测到升级文件合法后,会获取一些升级文件相关的信息,用以在页面显示:调用image_checksum(),获取checksum;调用storage_size(),获取可用空间大小;调用nixio.fs.stat(image_tmp).size,获取升级文件大小;以及页面传过来的是否保存配置的值;其中,image_checksum()函数用的是md5sum命令,storage_size()函数是在系统文件/proc/mtd中找到firmware分区大小。 接下来如果用户选择进行升级文件,则会现在页面上打印一些提示信息,用于提示用户:正在升级,不要断开电源等等。 文件system.lua最后的处理就是调用升级脚本:fork_exec(“killall dropbear uhttpd;sleep 1;/sbin/sysupgrade %s %q” %{ keep, image_tmp })。 这条语句,先清除dropbear 和uhttpd进程,再等待1秒,最后调用升级脚本sysupgrade,传过去的参数就是keep:是否要保存配置;image_tmp:升级文件/tmp/firmware.img。OK,到这里system.lua文件中关于升级前的准备工作都完成了,视线请转到升级脚本sysupgrade上。 5.运行升级脚本 实现在文件sysupgrade中。 脚本开始,像所有的主体处理程序一样,会对传进来的参数进行处理。下面对这些参数的介绍: -i 开启交互模式 -d 重启前延迟,延迟秒数是传进来的 -v 会打印sysupgrade脚本中的一些信息,脚本中默认打印-q 与-v相反 -n 升级后不保存配置,默认保存配置-c 保存所有的改动配置文件到/etc/-b 用sysupgrade.conf中指定的文件,创建.tar.gz格式备份文件-r 用上步创建的.tar.gz文件,恢复配置-l 列出将会备份的文件列表-f 从.tar.gz恢复配置 -F 即使升级文件检测失败,也要升级,这个参数是危险的,慎用-T 验证升级文件和.tar.gz配置文件,但不升级-h 打印帮助信息 这些参数的使用在脚本中都有介绍,不再多讲。 接下来:[-z “$ARGV”-a-z “$NEED_IMAGE”-o $HELP-gt 0 ],意思是:如果没有升级文件参数,且没有命令行参数-b(create-backup),-r(restore-backup),或者带有-h(help)参数,则打印帮助信息。这个条件为真的话,会在终端打印帮助信息,退出脚本。 接下来:[-n “$ARGV”-a-n “$NEED_IMAGE” ],意思是:不要指定-b或-r(创建配置、恢复配置)的同时,指定升级文件。为真的话,打印提示信息,退出脚本。 接下来:[ “$CONF_BACKUP” = “-” ] && export VERBOSE=0,意思是:选择备份配置但传进来的文件为“-”时,不打印备份文件时的过程。下面展示一下-v选项的作用: 带-v时的升级过程: root@OpenWrt:/# sysupgrade-i-v /tmp/firmware.img Keep config files over reflash(Y/n): y Edit config file list(y/N): n Saving config files...etc/config/dhcp etc/config/dropbear etc/config/firewall etc/config/fstab etc/config/luci etc/config/network etc/config/system etc/config/ucitrack etc/config/uhttpd etc/config/wireless etc/dropbear/dropbear_dss_host_key etc/dropbear/dropbear_rsa_host_key etc/group etc/hosts etc/inittab etc/passwd etc/profile etc/rc.local etc/shells etc/sysctl.conf Sending TERM to remaining processes...dnsmasq ubusd btnd logd netifd uhttpd ntpd Sending KILL to remaining processes...Switching to ramdisk...Performing system upgrade...Unlocking firmware...Writing from 不带-v时的升级过程: root@OpenWrt:/# sysupgrade-i /tmp/firmware.img Keep config files over reflash(Y/n): y Edit config file list(y/N): n Saving config files...Sending TERM to remaining processes...dnsmasq ubusd btnd logd netifd uhttpd ntpd Sending KILL to remaining processes...Switching to ramdisk...Performing system upgrade...Unlocking firmware...Writing from 继续分析: if [ $CONF_BACKUP_LIST-eq 1 ];then add_uci_conffiles “$CONFFILES” cat “$CONFFILES” rm-f “$CONFFILES” exit 0 fi 如果需要列出配置文件列表,就 调用add_uci_conffiles函数生成列表,并打印到终端。函数add_uci_conffiles(),找出需要保存的配置文件。通过在文件/etc/sysupgrade.conf中,/lib/upgrade/keep.d/*目录下,以及命令opkg list-changed-conffiles的输出中,找出配置 文件,其中opkg list-changed-conffiles 列出用户修改的配置文件。 接下来: if [-n “$CONF_BACKUP” ];then do_save_conffiles “$CONF_BACKUP” exit $? fi 如果需要创建配置备份文件,则调用函数do_save_conffiles,生成配置文件。函数do_save_conffiles(),打包上一部列出的 配置文件。 接下来: if [-n “$CONF_RESTORE” ];then ###需要恢复配置 if [ “$CONF_RESTORE”!= “-” ] && [!-f “$CONF_RESTORE” ];then ###判断所需要的配置文件是否存在 echo “Backup archive '$CONF_RESTORE' not found.” exit 1 fi [ “$VERBOSE”-gt 1 ] && TAR_V=“v” || TAR_V=“" tar-C /-x${TAR_V}zf ”$CONF_RESTORE“ exit $? fi 经过一些判断,解压配置文件 包。接下来: type platform_check_image,检测platform_check_image命令是否存在,为了 下步做准备。找不到的话,脚本 退出,升级终止。 接下来: for check in $sysupgrade_image_check; do(eval ”$check “$ARGV”“)|| { ###通过board name 和image magic number来判断升级文件是否合法 if [ $FORCE-eq 1 ];then ####检测失败了,但是因为设置了-F选项,强制升级,停止检测 echo ”Image check '$check' failed but--force given“${PART_NAME:-image}” else get_image “$1” | mtd write-“${PART_NAME:-image}” fi } 介绍一下这个函数,sync命令的作用是,将有关文件系统的存储器常驻信息送入物理介质内,以确保文件系统的完整性。然后就是根据是否需要保存配置去分别调用mtd命令,去完成升级。 接下来: v “Upgrade completed” [-n “$DELAY” ] && sleep “$DELAY” ask_bool 1 “Reboot” && { v “Rebooting system...” reboot-f sleep 5 echo b 2>/dev/null >/proc/sysrq-trigger 升级完了,需要重启了。整个升级流程到这里,就完成了。 6.添加升级文件标识以及升级文件md5值 功能很简单,就是在升级文件前添加一个自定义的字段,以及升级软件的md5值。用以阻止刷机,以及升级文件被破坏。字段以及md5值添加在编译时进行的。字段、md5值取出,是在升级文件检测时进行的。添加字段: 在Makefile(路径前面已经列出)文件中,最后生成升级文件的地方添加。define MkImageSysupgrade/squashfs $(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade).bin)$(eval output_name_tmp=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade_tmp).bin)cat $(KDIR)/vmlinux-$(2).uImage $(KDIR)/root.$(1)> $(KDIR)/$(output_name)$(call prepare_generic_squashfs,$(KDIR)/$(output_name))if [ `stat-c%s “$(KDIR)/$(output_name)”`-gt $(3)];then echo “Warning: $(KDIR)/$(output_name)is too big” >&2;else $(CP)$(KDIR)/$(output_name)$(BIN_DIR)/$(output_name_tmp);fi + echo “100msh” > $(BIN_DIR)/mykey + md5sum $(BIN_DIR)/$(output_name_tmp)| cut-d ' '-f 1 >> $(BIN_DIR)/mykey + cat $(BIN_DIR)/mykey $(BIN_DIR)/$(output_name_tmp)> $(BIN_DIR)/$(output_name)+ rm-rf $(BIN_DIR)/$(output_name_tmp)+ rm-rf $(BIN_DIR)/mykey endef行前有+号的地方就是添加的代码。添加了”100msh“字段在升级文件前。 字段取出: get_image(){ # case “$from” in http://*|ftp://*)cmd=“wget-O--q”;; *)cmd=“cat”;;esac if [-z “$conc” ];then local magic=“$(eval $cmd $from 2>/dev/null | dd bs=2 count=1 2>/dev/null | hexdump-n 2-e '1/1 ”%02x“')” case “$magic” in 1f8b)conc=“zcat”;; 425a)conc=“bzcat”;; esac fi + eval “$cmd $from 2>/dev/null ${conc:+| $conc} > /tmp/myupfile” + head-n 1 /tmp/myupfile > /tmp/check + grep-q “100msh” /tmp/check && + { + echo “OK” > /tmp/ok + }|| + { + echo “Illegal platform” > /tmp/nok + exit 1 + } + sed-i “1d” /tmp/myupfile + head-n 1 /tmp/myupfile > /tmp/check + sed-i “1d” /tmp/myupfile + md5sum /tmp/myupfile | cut-d ' '-f 1 > /tmp/mymd5 + diff-r /tmp/check /tmp/mymd5 + if [ $?-ne 0 ];then + echo different + exit 1 + fi + rm-rf /tmp/check /tmp/mymd5 + cat /tmp/myupfile + } 行前有+号的地方,就是添加的代码。就是取出第一行,其他不变。 另外default_do_upgrade()函数中的get_image “$1”,修改成cat /tmp/myupfile,因为在调用default_do_upgrade()函数时,get_image函数中有些命令已经不能再用。 OK,文档到此结束。 水平有限,如有错误,请多包涵。 2015.10.30 AutoCad2010教程总结 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.新建文件时,打开样式为“无样板打开”公制; 加密方法:在“图形另存为”界面右上角工具选项中的“安全选项”中进行加密; 机械绘图中过渡线用细实线绘制; 用直线绘制矩形时,画完三边直接按“C”键进行闭合; 返回上一操作按“U”键; 连续按鼠标两次,显示窗口空间里全部对象; 画直线或斜线的起点时,X、Y值用“Table”键进行切换;终点时,若输入坐标,用“,”切换; 直线的快捷键为“L”;构造线的快捷键为“XL”;射线的快捷键为“RAY”; 多段线的快捷键“PL”;通常用多段线的线宽功能画“箭头”; 样条曲线的快捷键为“SPL”;不想画时连按三次空格,结束操作; 旋转的快捷键为“RO”; 复制的快捷键为“CO”; Cad旋转过程中输入角度值时,逆时针为正值,顺时针为负值; 镜像的快捷键为“MI”; 删除的快捷键为“E”; 圆的快捷键为“C”; 圆弧的快捷键为“A”; 椭圆的快捷键为“EL”; 矩形的快捷键为“REC”; 面域的快捷键为“REG”; 修剪的快捷键为“TR”; 偏移的快捷键为“O”; 打断的快捷键为“BR”; 线性比例的快捷键为“LTS”;用于调节“线”在视图中的显示比例; 倒圆角的快捷键为“F”; 倒斜角的快捷键为“CHA”; 按“CTRL+A”键全选;按“CTRL+O”键打开;按“CTRL+N”键新建; 按“CTRL+C”复制;按“CTRL+V”粘贴; 图纸尺寸:A0 841x1189;A1 594 x841;A2 420x594;A3 297x420;A4 210x297; 分解的快捷键为“X”; 点的样式的快捷键为“DDPTYPE”; 正多边形的快捷键为“POL”; 定数等分的快捷键为“DIV”; 图案填充的快捷键为“H”; “渐变色”操作在图案填充工具栏中,填充图案选项板中“SOLID”图案可进行渐变色操作; 边界与面域:利用“边界”工具可以任意制作各种形状的图形,利用面域工具时,不仅 37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.要求图形封闭,而且在图形外不允许有超出部分存在; 修订云线与区域覆盖:修订云线用于表示一些花花、草草等物体;区域覆盖用于遮挡一些不需要看见的物体; 拉伸的快捷键为“S”;正确的使用方法:从右往左选,且选取的是部分对象;从左往右选或从右往左选择全部对象相当于是移动; 缩放的快捷键为“SC”; 延伸的快捷键为“EX”;输入“EX”命令后,连续按两次空格;跨越直线相交时,输入命令后,按空格键,先选择被相交直线,按空格键,然后选择相交的直线; 阵列的快捷键为“AR”; 编辑多段线的快捷键为“PEDIT”; “拉长”的操作; 夹点的编辑:左键点选夹点后,按“空格键”对其执行的“命令”进行切换; 对齐的快捷键为“AL”;二维图形中,第一原点、目标点,第二原点、目标点后,提示第三后直接按空格键即可; 打断及打断于点: 合并对象: 多段线不能进行合并,但圆弧能。反转命令: 创建临时块的快捷键为“B”; 创建永久块的快捷键为“W”;标注零件的粗糙度时,必须先定义块的属性,然后在创建永久快对其进行标注;可以任意输入粗糙度数值;方便快捷; 利用块进行曲线阵列:用“定数等分”命令中的“块”操作;(制作块,选取基点时并非必须正方形中心,边线中点亦可; 图层的快捷键为“LA”;修改图层名称的快捷键为“F2”键; “0”图层是无法删除的; 图层的设定:机械绘图中颜色的划分: 图层 颜色 线型 线宽 图层1 白色 实线 0.3 图层2 绿色 细实线 默认 图层3 黄色 虚线 默认 图层4 红色 点划线 默认 图层5 紫色 双点划线 默认 线型的意义: 1、粗实线:可见轮廓线; 2、细实线:尺寸线、尺寸界线、剖面线、引出线; 3、波浪线:断裂处的边界线,视图和剖视的分界线; 4、虚线:不可见轮廓线; 5、点划线:轴线、对称中心线; 6、双点划线:假想投影轮廓线,中断线; 动作录制器:可以将创建好的图层复制到新的草图内;方便简洁;利用“另存为”也可将图层复制到新的草图内; 图层状态管理器:可以用其输入、输出功能对文件的图层属性进行复制; 图层顺序:点选线条,按鼠标右键——绘图次序——前置或后置; ***做复杂图纸时必须创建图层,方便; 60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.利用“图层隔离命令” 方便对图形的绘制与修改; 特征匹配的快捷键为“MA”; “隔离”与“取消隔离”操作,在二维草图与注释工作界面的上部工具栏中; 视图重生成的快捷键为“RE”; ***标注尺寸时,一定要注意所标注的尺寸线不能封闭; 线性标注的快捷键为“DLI”; 倾斜标注在注释栏中标注的下拉栏中,轴测图中应用倾斜标注比较多; 对齐标注的快捷键为“DAL”; 角度标注的快捷键为“DAN”; 半径标注的快捷键为“DRA”; 直径标注的快捷键为“DDI”; 快速选择功能:当选择线条、标注等过多时,单击鼠标右键选择“快速选择”进行选择; 机械制图中,文字的高度通常为“2.5mm”、“3.5mm”; 弧长标注的快捷键为“DAR”; 标注样式管理器的快捷键为“D”; 折弯标注——标注的是圆或圆弧的半径,***此标注特殊,标注前须提前调好标注样式; 连续标注的快捷键为“DCO”;标注前提:选择一个相应的标注。以上一个标注的第二条尺寸界线为前提。继承上一标注的特点; 基线标注的快捷键为“DBA”,必须有一个标注的前提下才能使用;此标注特殊,标注前须提前调好标注样式(基线间距); ***拿到一张图纸进行标注前,一定要先调好标注样式; 机械图纸中的箭头规定要用实心箭头; 引线的快捷键为“LE”,标注数字需要换位置时,鼠标点选文字后按“X”键进行打散后移动; 引线标注时,若须输入直径、角度等特殊符号时,按鼠标右键选取; 多重引线样式的快捷键为“MLS”; 修改尺寸界限的长度:在标注样式中“线”一栏中的右下角点选“固定长度的延伸线”,输入长度值; 公差标注有三种方式:(1)用线性标注直接输入文字、(2)线性标注后修改属性、(3)直接创建新的标注样式(将其置为当前,进行标注如需添加前缀,在主单位中进行添加); 极限偏差标注有两种方式:(1)线性标注后修改属性、(2)直接创建新的标注样式; 利用“块”标注粗糙度:创建块前,***必须先在插入中定义属性; 插入“块”的快捷键为“I”; 圆心标记:在“注释”工具栏中标注框内操作,创建标记样式,然后进行修改; 快速标注:在“注释”工具栏中“标注”框内; 标注样式更新在“注释”工具栏中“标注”框内操作; 倾斜标注:尺寸界线一般应与尺寸线垂直,必要时允许倾斜;在注释栏标注中有“倾斜”命令; ***标注直线过长时,文字或箭头太小,在标注样式调整栏中的全局比例进行调整; 公制与英制的进制单位:英寸25.4、英尺30.48,一英寸=25.4mm;一英尺=30.48cm; 单行文字的快捷键为“DT”; 多行文字的快捷键为“T”; 文字样式中带“@”的样式为文字“横向放置”,不带“@”的样式为正常放置,即纵向放置; 97.文字样式的快捷键为“ST”;字母、文字的高度在A2、A3、A4图纸中均为3.5mm,在A0、A1图纸中均为5mm; 98.特殊字符对应控制码: 符号 代号 “度数” “。” “%%d” “正负” “±” “%%p” “直径” “Ф” “%%c” 99.上标标注:***只能在多行文字中运用,例S=35㎡,用多行文字输入“S=35m2”,然后按“shift+6”键输入“^”,然后选“2^”点击鼠标右键选“堆叠”; 100.下标标注:操作同上标标注,只须“2”与“^”互换先后顺序; 101.若须上下标标注:须在两个数字间加“^”; 102.***参数化:参数化功能仅限于二维环境中; 103.几何约束:图元的自身的几何位置的确认,几何图元之间的关系设定; 104.尺寸约束:动态尺寸,尺寸可驱动图元,尺寸随关系式更新变化; 105.参数管理:参数随用户添加自动管理可定义参数;“arc”表示弧度;“dan”表示角度; 106.***参数化中标注出来的尺寸不可以“打印”; 107.约束后的直线,不能对其进行打断、修剪、拉伸操作,否则“会破坏其约束”; 108.***有圆柱的地方就要有“中心线”;避免误解为“矩形”; 109.做两个圆之间的切线时,选择“直线”命令后,按住“shift”键不放,点击鼠标右键选择切点,还可以选择直线后按“tan”快捷键做相切; 110.选项的快捷键为“OP”; 111.三视图:观测者从三个不同位置观察同一个空间几何体而画出的图形; 112.一般来说:视图有六个面,分别是:主视图、左视图、俯视图、右视图、仰视图、后视图,所谓“三视图”一般指:主视图、左视图、俯视图; 113.三视图操作:简单组合体、圆柱三视图、圆锥三视图、共面三视图、截圆柱、截切三视图、回转体三视图、相切组合体、114.局部视图:局部视图的断裂边界通常用“波浪线”或“双折线”表示;当所表示的机件的局部结构是完整的,且外形轮廓又是封闭状态时,可省略波浪线或双折线; 115.斜视图:物体向不平行于基本投影面的平面投射所得的视图; 116.全剖视图; 117.半剖视图; 118.局部剖视图; 119.断面图与移出断面图; 120.正轴测投影图分为:正等测图、正二测图; 121.轴测图在CAD的环境设置:鼠标右键单击界面左下角图标中的“栅格显示”,选择设置,在捕捉类型中选择“等轴测捕捉”,换回“矩形捕捉”相同操作,在极轴追踪中调节极轴角的增量角“数值”,一般为30度; 在绘制轴测图过程中,一般情况下,正交模式打开,***偏移和镜像不能直接用;绘制 工具圆和圆弧、矩形不能用;“F5”键可以在上、右、左面之间进入循环切换状态;三面共用的点,所形成的拐角点直线之间角度相差120度;三面之间相互垂直,在绘制过程中,要不断的切换三面,形成三维空间平面立体图形; 122.用鼠标左键框选对象选多时,按住“shift”键点选多选的“对象”进行删除; 123.***画轴测图的快捷方法:先画面,然后复制面,再用线将面连接; 124.轴测图是通过平面图形来表达立体结构;轴测图系统中的圆,必须通过“椭圆”来绘制;输入“EL”命令后,输入“i”确定圆心,再给半径,即可绘制等轴测圆; 125.等轴测图倒角可以直接倒;倒圆时必须确定圆角圆心,绘制轴测圆,通过修剪来形成倒圆; 126.等轴测圆的标注:对于直线的标注,一般用“对齐”标注,再应用“标注”——“倾斜”,点标注后,根据方向输入正或负30度,形成标注贴面,对于圆和倒角的标注,必须自制;上下的倾斜是:90度,左右的倾斜是:30度,前后的倾斜是:150度;其中的上下、前后、左右指的是尺寸界线的方向; 127.轴测图中,倒圆角命令不能使用; 128.象限点确定:在对象捕捉中勾选; 129.***轴测图绘制好之后,进行“标注”时须把捕捉类型改为“矩形捕捉”,将正交关闭; 130.标注文字方向:在文字样式里创建倾斜角度为正30度和负30度两种样式,方便在轴测图中修改文字方向;文字顺时针旋转选“正30度”样式,文字逆时针旋转选“负30度”样式; 131.等轴测圆的标注:直径标注按直线方法标注,过程中对文字进行修改;半径标注用引线标注,插入文字,放置合适位置; 132.设置三维建模环境:在右下角点击“二维草图与注释”进行切换; 133.三维视图旋转:按住“shift”键+鼠标中键进行旋转; 134.视图设置;绘图时将视图调整为“西南等轴测”; 135.长方体的快捷键为“BOX” 136.在CAD中材质的密度默认为“1”;即“水”的密度; 137.查询物体质量、体积时,须将界面切换到“CAD经典界面”,在工具选项中选择“查询”工具进行查询; 138.长方体的创建:点取“长方体”图标,输入三个方向的数值,用“table”键进行切换; 139.长方体的编辑:鼠标“左键”点击长方体,创建临时坐标系;点击立方体中三角或方框改变其尺寸;点击临时坐标系中的“X”、“Y”、“Z”轴,变黄色后,对长方体进行复制、移动; 140.线框与实体显示在视觉样式里切换; 141.若图形的平滑度不够,按“OP”键,在弹出的显示框的选项中调节显示精度,改大显示精度; 142.绘制凌锥体时,分为内接和外切; 143.楔体的快捷键为“WE”; 144.扫掠的快捷键为“SWEEP”;是通过沿路径扫掠二维对象来创建三维实体或曲面;扫掠操作过程中的“对齐(A)”、“基点(B)”、“比例(S)”、“扭曲(T)”; 145.放样的快捷键为“LOFT”; 146.剖切的快捷键为“SL”; 147.旋转的快捷键为“REV”;***旋转的对象必须位于轴的一侧;旋转时,逆时针旋转角度为正值,顺时针旋转角度为负值;旋转操作时,当旋转轴为多段线时,等同于该多段线上连点连接所得的直线;当旋转轴为曲线时,仍可以应用旋转命令,其实旋转轴为曲线的起始点与终点的连线所构成的直线; 148.视觉样式的快捷键为“VS”; 149.拉伸的快捷键为“EXT”;沿路径拉伸操作时,应用“提取边”功能;样条曲线“拉伸”后结果为曲面; 150.另一种修剪方式:在三维草图中不能用输入“TR”命令,按两次空格后选取要删除的边进行删除操作;须要输入“TR”命令后,只按一次“空格”,选择所要删除边的边界线后,再按一次“空格”,然后再选择要删除的对象; 151.差集的快捷键为“SU”; 152.并集的快捷键为“UNI”; 153.交集的快捷键为“IN”; 154.“UCS”设置:即“用户坐标系设置”,快捷键为“UCS”; 155.“WCS”为世界坐标系,“UCS”为自己定义的坐标系; 156.命名“UCS”坐标系及创建“UCS”坐标系的方法; 157.右手定则:四指握住旋转轴,拇指指向旋转轴正方向,沿四指指间方向转动为正,反之为负; 158.面域:将包含封闭区域的对象转换为面域对象;快捷键为“REG”;***用直线画矩形时,若想拉伸,须先将矩形的各线创建成面域; 159.三维建模平面曲面操作过程中若改变网格的数量,双击网格弹出属性后,改变“U”、“V”数值即可; 160.多段体:利用多段体建立墙体;其中的对象、高度、宽度、对正操作; 161.平面曲面:***只能创建平行于工作平面的曲面; 162.干涉:用于检验两个物体是否碰撞、相交等; 163.剖切:用于看清物体内部结构; 164.加厚:用于加厚平面或曲面的厚度; 165.压印:将二维几何图形压印到三维实体上,从而在平面上创建更多的边位于某个面上的二维几何图形,或三维几何实体与某个面相交获得的形状,可以与这个面合并,从而创建其他边。这些边可以提供视觉效果,并可进行压缩或拉长以创建缩进和拉伸;(压印时选择被压印对象只能一个个的选;) 166.着色边和复制边;机械设计过程中用不到;机械老师用此命令表达一些特殊的效果; 167.拉伸面、倾斜面、移动面、复制面、偏移面、删除面、旋转面、着色面; 三维绘图过程中如果有圆角想删除去掉,利用“删除面”命令; 168.对圆孔执行偏移命令时,输入“负值”圆孔扩大,输入“正值”时圆孔缩小; 169.删除面:作图过程中,倒圆角的面如果想恢复,可以用“删除面”操作; 170.执行分割命令的前提: 1、它们是多个合并或者是差集在一起的对象; 2、它们之间是没有共面的,分开的;若想分割的两个物体共面,须按住“CTRL”键,将鼠标移至要分割的物体上,点选后,按“M”键移动开后再分割; 171.抽壳; 172.螺旋及弹簧制作;将螺旋线变成弹簧操作为:先画螺旋线,完事后再画圆,然后用扫掠命令生成弹簧; 173.三维镜像:在三维界面中“MI”命令仍可使用,只不过二维时执行“MI”命令时选取两点,三维镜像时选取三点; 174.三维对齐:选择对象时,选择要移动的对象; 175.三维移动、三维旋转、三维缩放; 176.三维草图中,合并的快捷键为“UNI”; 177.长方体网格及设置:点击图元右方向下的箭头后显示网格图元选项,对其进行设置; 178.分割网格面:按住“CTRL”键,将鼠标移动到图形上方时即可显示各细小网格;分割网格前最好先做一条直线,方便拾取点; 179.网格建模中的移动面:按住“CTRL”键不放,鼠标点击要拉伸的面,然后移动鼠标至“Z”轴处点击鼠标左键;输入数值;(选择对象后,将鼠标移至坐标轴处,点击鼠标右键进行“旋转”、“比例”间的互换; 180.网格建模中的拉伸面:选取拉伸对象,按空格键,输入拉伸高度; 181.网格建模中的旋转:按住“CTRL”键不放,鼠标点击要旋转的面,然后移动鼠标至“Z”轴处点击鼠标右键选择旋转;输入角度值; 182.网格建模中的比例:操作同旋转; 183.平滑对象及锐化:加减平滑度操作; 184.转换网格; 185.截面平面:选择“截面平面”工具,点击鼠标“右键”,选择“正交”,选择顶部;若图形未显示截面,点击“活动截面”命令,选择截面对象即可;点击“截面对象”后,点击“三角形”切换显示方式; 186.折弯截面平面; 187.截面平面到块; 188.三维标注:三维建模中,所有的标注都落在X,Y平面内;标注尺寸前要放好坐标;设置好用户坐标系,快捷键为“UCS”; 189.***创建宏、录制宏;利用“宏”在新建图形中导入图层属性;(如粗糙度符号等); 190.管理宏:插入消息、插入基点; 191.宏的保存路径在“选项”的文件栏中的动作录制器设置中的动作文件录制位置下双击进行修改; 192.状态栏工具设置; 193.恢复初始化设置:在“选项”界面中的配置栏右下角——重置; 194.备份文件还原:只须重命名将后缀“bak”改为“dwg”即可; 195.创建多边形视口:用于局部放大某位置时进行的操作; 196.文件的输出设置:可输出的格式有“DWF”、三维“DWF”、“PDF”、“DGN”、其他格式等;输出“DXF”格式的文件支持“COREDRAW”、“AI” 软件;“COREDRAW”还支持“CAD”输出的“WMF”文件;另存为中还可以输出“DXF”文件; 197.360截图的快捷键:“CTRL+SHIFT+X”; 198.QQ截图的快捷键:“CTRL+SHIFT+A”; 199.笔记本中截图的快捷键:“Ctrl+PrtSc”; 200.打印A3图只有A4纸的情况下,可打印两张A4纸,然后进行拼接; 201.打印样式表:打印样式表编辑;创建新的样式表;样式表中“monochrome.ctb”样式为黑白图纸样式;如果按图形中的颜色打印出来图纸,在样式表中选择“acad.ctb”样式; 202.创建多边形视口:用于局部放大某一位置的视图,可观察图纸局部细微处的情况;也可输入比例,自行调节;当视图放大到满屏无法退出时,按界面中右下角的最小化即可退出;***从“对象”创建视口的操作; 203.利用布局进行三维打印; 公务员计算机教程总结 1、位(bit) 位是计算机存储设备的最小单位,由二进制中的0或1组成。 2、字节(byte)字节简写为“B”,一个字节由8个二进制位编码组成,即1字节等于8位。字节是计算机处理数据的基本单位。 3、字(Word) CPU处理信息一般是以一组二进制数码作为一个整体来参加运算或处理的,一次存取、处理和传输的数据长度为字。一个字通常由一个或多个字节构成,用来存放一条指令或一个数据。 4、字长 一个字中所包含的二进制的位数称为字长。一个字长可以表示许多不同的内容,较长的字长一次可以处理的信息更多,处理的数字位数越大,速度也就越快。字长是衡量计算机性能的一个重要指标。 5、存储容量 某个存储设备所能容纳的二进制信息量的总和为存储设备的存储容量。存储容量用字节数来表示,1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB。 1.3 信息编码 一、西文字符编码 美国标准信息交换码(American Standard Code for Information Interchange,ASCII)。7位的ASCII码称为标准ASCII码字符集,计算机采用一个字节(8位)表示一个字符,但实际只使用字节的低7位,而字节的最高位为0,所以可以表示128个字符,其中包括10个数字,52个大、小写英文字母以及32个标点符号、运算符和34个控制码等。 二、汉字编码 1、汉字输入码 目前常用的输入法大致分为两类:拼音输入法和字型输入法。汉字在计算机内部都是以机内码形式表示的。 2、汉字国际码 GB2312-80是我国于1981年颁布的一个国家标准,即国家标准信息交换用汉字编码字符集,其二进制编码称为国标码。国标码用两个字节表示一个汉字,并且规定每个字节只用低7位。GB2312-80国标字符集由三部分组成: 由汉字字型描述信息生成所需的大小和形状的汉字点阵。 1.4数制与编码 一、数制的基本概念 1、十进制计数制 2、二进制数 3、八进制数 4、十六进制数。 二、关于二、十、十六进制之间的转换 1.5 计算机硬件系统组成 一、“存储程程序控制”计算机的概念 美籍匈牙利数学家冯·诺依曼提出了“存储程序控制”的计算机方案,其核心是“存储程序”和“程序控制”。他在方案中提出了三条: 1、计算机的基本结构:计算机硬件应具有运算器、控制器、存储器、输入设备和输出设备等五部分。 2、采用二进制:二进制数便于硬件的物理实理以,又有简单的运算规则。 3、存储程序控制:存储程序实现了自动计算,确定了冯·诺依曼型计算机的基本结构。 二、计算机硬件系统的组成 硬件系统:主机和外部设备。主机分为中央处理器(运算器和控制器)和内存储器。外部设备分为外存储器、输入设备、输出设备、其他。 1、中央处理器(运算器和控制器) (1)运算器也称为算术逻辑单元(Arithmetic Logic Unit,ALU),用于执行所有算术和逻辑运算指令。计算机最主要的工作是运算,大量的数据运算任务是在运算器中进行的。 (2)控制器负责把指令逐条从存储器中取出,经译码分析后向整机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能。一般由指令寄存器、指令译码器、时序电路和控制电路组成。 每一条指令的执行过程可以分成如下四个基本操作: *取出指令:从存储器某个地址中取出要执行的指令。 *分析指令:把取出的指令送到指令译码器中,译出与指令对应的操作。*执行指令:向各个部件发出控制操作,完成指令要求。*为下一条指令做好准备。 (3)CPU与寄存器通过内部数据总线相互连接,并通过外部总线(数据总线、地址总线、控制总线)同主存储器和外部设备进行数据交换的。 2、存储器 存储器是计算机的记忆部件,它的职能是存储程序和数据。 (1)按存储器能否直接与CPU交换信息来区分,可分为主存储器和辅助存储器。(2)按存储介质的材料及器件的不同可分为磁介质存储器、半导体存储器以及激光光盘存储器。 (3)按存取方式不同,存储器可分为随机存储器RAM和只读存储器ROM。 *EPROM: Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。 *EEPROM:(Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。EEPROM 可以在电脑上或专用设备上擦 除已有信息,重新编程。一般用在即插即用。 3、输出设备 4、输出设备 1.6 计算机软件系统组成 计算机的软件系统是程序和程序运行所需要的数据以及开发、使用和维护这些程序所需要的文档的集合。(系统软件和应用软件) 一、系统软件 系统软件是指控制计算机的运行、管理计算机的各种资源并为应用软件提供支持和服务的一类软件,是保证计算机系统正常工作必须配备的基本软件。系统软件通常包括操作系统、语言处理程序和各种服务性程序。 1、操作系统 操作系统软件的核心,是现代计算机的必备软件。它对计算机所有资源进行统一管理,使计算机的使用变得方便简捷。操作系统的功能主要表现在五大管理:处理机管理、文件管理、作业管理、设备管理、存储管理。 按功能分。操作系统可分为两大类:实时操作系统和作业处理系统。操作系统根据处理方式、运行环境、服务对象的不同,有如下分类:(1)单用户操作系统。(2)批处理操作系统。(3)实时操作系统。(4)分时操作系统。(5)网络操作系统。(6)分布式操作系统。 2、计算机语言 计算机能识别并执行的信息符号代码的指令集合称为计算机语言。(1)机器语言(2)汇编语言(3)高级语言 3、服务性程序 服务性程序是指协助用户进行软件开发和硬件维护的软件。如各种开发调试工具软件、编辑程序、诊断程序等。 二、应用软件 应用软件是在系统软件基础上为解决用户的具体问题,面向某个领域而设计的软件,因此又分为通用软件和专用软件。 常见的应用软件有文字处理软件、工程设计绘图软件、办公事务管理软件、图书情报检索软件、医用诊断软件、辅助教学软件、辅助设计软件等。 1.7 计算机系统主要技术指标 1、字长 一个字中所包含的二进制的位数称为字长。一个字长可以表示许多不同的内容,较长的字长一次可以处理的信息更多,处理的数字位数越大,速度也就越快。字长是衡量计算机性能的一个重要指标。 2、主频 主频是指计算机的时钟频率,即CPU在单位时间(每秒种)发出的脉冲数,单位为MHz。它在很大程度上决定了计算机的运算速度。通常主频越高、速度越快。 3、运算速度 计算机的运算速是指平均运算速度,即计算机每秒所能执行的指令条数,单位是MIPS(每秒百万条)。 4、存取周期 存取周期是指存储器进行连续操作所允许的最短时音间隔,即从发出一条读写指令到能够发出下一条读写指令所需的最短时间。存取周期越短,存取速度越快。计算机内存储器的存取周期一般在几十到几百纳秒。 5、存储容量 存储容量主要指内存储器的容量。内存容量越大,它所能存储的数据和运行程序就越多。程序运行的速度就越快。 1.8计算机原理 一、进程 1、进程的介绍 进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。 进程是由进程控制块、程序段、数据段三部分组成。一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键操作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程。是可并发执行的程序。在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位,也是称活动、路径或任务,它有两方面性质:活动性、并发性。进程可以划分为运行、阻塞、就绪三种状态,并随一定条件而相互转化:就绪--运行,运行--阻塞,阻塞--就绪。 2、进程的引入 多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。 3、进程的概念 进程的概念是60年代初首先由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的。 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。 进程的概念主要有两点: 操作系统引入进程的概念的原因: 从理论角度看,是对正在运行的程序过程的抽象; 从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。 4、进程的特征 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的。 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进 结构特征:进程由程序、数据和进程控制块三部分组成。 5、进程的内容 一个计算机系统进程包括(或者说“拥有”)拥有下列数据: 那个程序的可运行机器码的一个在存储器的图像。分配到的存储器(通常包括虚拟内存的一个区域)。存储器的内容包括可运行代码、特定于进程的数据(输入、输出)、调用堆栈、堆栈(用于保存运行时运数中途产生的数据)。分配给该进程的资源的操作系统描述子,诸如文件描述子(Unix 术语)或文件句柄(Windows)、数据源和数据终端。安全特性,诸如进程拥有者和进程的权限集(可以容许的操作)。处理器状态(内文),诸如寄存器内容、物理存储器寻址等。当进程正在运行时,状态通常储存在寄存器,其他情况在存储器。 6、进程切换 进行进程切换就是从正在运行的进程中收回处理器,然后再使待运行进程来占用处理器。 这里所说的从某个进程收回处理器,实质上就是把进程存放在处理器的寄存器中的中间数据找个地方存起来,从而把处理器的寄存器腾出来让其他进程使用。那么被中止运行进程的中问数据存在何处好呢?当然这个地方应该是进程的私有堆栈。 让进程来占用处理器,实质上是把某个进程存放在私有堆栈中寄存器的数据(前一次本进程被中止时的中间数据)再恢复到处理器的寄存器中去,并把待运行进程的断点送入处理器的程序指针PC,于是待运行进程就开始被处理器运行了,也就是这个进程已经占有处理器的使用权了。 这就像多个同学要分时使用同一张课桌一样9说是要收回正在使用课桌同学的课桌使用权,实质上就是让他把属于他的东西拿走;而赋予某个同学课桌使用权,只不过就是让他把他的东西放到课桌上罢了。 在切换时,一个进程存储在处理器各寄存器中的中间数据叫做进程的上下文,所以进程的 切换实质上就是被中止运行进程与待运行进程上下文的切换。在进程未占用处理器时,进程 的上下文是存储在进程的私有堆栈中的。 7、进程与程序的关系 程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。 进程更能真实地描述并发,而程序不能; 进程是由进程控制块、程序段、数据段三部分组成; 进程具有创建其他进程的功能,而程序没有。 同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程 序可以对应多个进程。 在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。 二、线程 线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。 线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。 2、线程与进程 线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定.线程的运行中需要使用计算机的内存资源和CPU 通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。 因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。 3、线程的周期 新建 就绪 运行 阻塞 死亡 4、线程调度与优先级 有线程进入了就绪状态,需要有线程调度程序来决定何时执行,根据优先级来调度。 5、线程组 每个线程都是一个线程组的一个成员,线程组把多个线程集成一个对象,通过线程组可以同时对其中的多个线程进行操作.在生成线程时必须将线程放在指定的线程组,也可以放在缺省的线程组中,缺省的就是生成该线程的线程所在的线程组.一旦一个线程加入了某个线程组,不能被移出这个组。 6、守护线程 守护线程是特殊的线程,一般用于在后台为其他线程提供服务.isDaemon():判断一个线程是否为守护线程.set Daemon():设置一个线程为守护线。 三、中断 1、中断的概念 中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。 中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。 其中最为容易发生冲突的就是IRQ、DMA和I/O。 2、IRQ(Interrupt Request)IRQ英文全称Interrupt Request,中文翻译为中断请求线。计算机中有许多设备(例如声卡、硬盘等)他们都能在没有CPU介入的情况下完成一定的工作。但是这些设备还是需要定期中断CPU,让CPU为其做一些特定的工作。如果这些设备要中断CPU的运行,就必需在中断请求线上把CPU中断的信号发给CPU。所以每个设备只能使用自己独立的中断请求线。一般来说在80286以上计算机中,共有16个中断请求线与各种需要用中断的不同外设相连接,(每个中断线有一个标号也就是中断号)。 3、DMA(Direct Memory Access) 计算机与外设之间的联系一般通过两种方法:一是通过CPU控制来进行数据的传送;二是在专门的芯片控制下进行数据的传送。我们所说的DMA,就是不用CPU控制,外设同内存之间相互传送数据的通道,在这种方式下,外设利用DMA通道直接将数据写入存储器或将数据从存储器中读出,而不用CPU参与,系统的速度会大大增加。 4、I/O(INPUT/OUTPUT) 输入/输出端口,也就是计算机配件与CPU连接的接口。每个端口都有自己唯一的一个端口号,这个端口号称为地址。每一个想和CPU通信的外设或配件都有不同的I/O地址,通常在PC机内部一共有1024个地址。 5、如何防止中断冲突 要防止中断冲突,其实就是要知道什么设备容易产生中断冲突,只要知道了这点,在使用这些设备时稍微注意一下就可以了。下面我列出一些容易冲突的设备,希望对读者有用。 1、声卡:一些早期的ISA型声卡,系统很有可能不认,就需要用户手动设置(一般为5) 2、内置调制解调器和鼠标:一般鼠标用COM1,内置调制解调器使用COM2的中断(一般为3),这时要注意此时COM2上不应有其它设备 3、网卡和鼠标:此问题一般发生在鼠标在COM1口,使用中断为3,这时要注意通常网卡的默认中断为3,两者极有可能发成冲突。 4、打印机和EPP扫描仪:在安装扫描仪驱动程序时应将打印机打开,因为两个设备中串联,所以为了防止以后扫描仪驱动程序设置有误,一定要将打印机打开再安装扫描仪驱动程序。 5、操作系统和BIOS:如果计算机使用了“即插即用”操作系统(例如win98),应将BIOS中PNP OS Installed设置为Yes这样可让操作系统重新设置中断。 6、PS/2鼠标和BIOS:在使用PS/2鼠标时应将BIOS中PS/2 Mouse Function Control打开或设置为Auto,只有这样BIOS才能将IRQ12分配给PS/2鼠标用。 2.1多媒体的基本概念及关键技术 一、多媒体概念 媒体原有两重含义:一是指存储信息的实体,如磁盘、光盘、磁带、半导体存储器等,中文常译为“媒质”;二是指传递信息的载体,如数字、文字、声音、图形等,中文译作“媒介”。媒体有以下五大类:感觉媒体、表示媒体、显示媒体、存储媒体、传输媒体。 从语译概念出发,社会上对多媒体定义的一种说法是:“多媒体是以下两种或两种以下媒体组成的结合体:文本、图形、动画、静态视频、动态视频、声音。”也有专家认为,多媒体是多种媒体的综合、利用和处理。可见,多媒体的本质不仅是信息的集成,也是设备的集成和软件的集成,通过逻辑连接形成有机整体,同时可实现交互控制,因此集成和交互是多媒体的精髓。由此可见,传统媒体与多媒体是有一定区别的,主要区别是 : (1)传统的媒体是模拟信号,而多媒体是数字化的信息。 (2)传统的媒体中能让人们被动地接受信息,而多媒体可以使人们主动地交流信息。 二、多媒体的分类 多媒体常常按不同的要求和标准分类。一种常用的划分方法是把媒体划分为感知媒体、描述媒体、传输媒体、信息交换媒体。 三、多媒体数据的特点 1、数据结构复杂,在多媒体数据中不仅有结构化的数据,而助也有大理的非结构化的数据。 2、数据量巨大。 3、数据类型繁多。 4、数据的时空特性,视频、音频和动画等媒体具有事态特性。 5、数据的实时特性。 四、关键技术 1、数据压缩技术 目前主要有三大编码及压缩标准(1)JPEG标准 JPEG是1986年制定的主要针对静止图像的(1)媒体变换技术是指改变媒体的表现形式。 (2)媒体识别技术是对信息进行一对一的映像过程。 (3)媒体理解技术是对信息进行更进一步的分析处理和理解信息内容。(4)媒体综合技术是把低维信息表示映像成高维的模式空间的过程。 4、多媒体存储设备与技术 (1)多媒体存储设备是多媒体技术的有力保障,容量大、速度高、可靠、成本低廉是存储设备的主要性能指标。 (2)多媒体存储技术:一方面,多媒体信息的保存依赖数据压缩技术;另一方面,则要依靠存储技术。 5、多媒体技术系统软件技术 多媒体系统软件技术主要包括多媒体操作系统、多媒体编辑系统、多媒体数据库管理技术、多媒体信息的混合与重叠技术等。其中,多媒体操作系统应具有以下功能。 (1)具有声音文件格式。(2)具有视频文件格式。 (3)有把硬件虚拟化的应用编程接口。(4)有数据压缩和解压缩的功能。(5)具有声像同步操作功能。 6、流媒体技术 流媒体指在数据网络上按时间先后次序传输和播放的连续音/视频数据流。流媒体技术也称流式媒体技术。所谓流媒体技术是把连续的影像和声音经过压缩处理后入在网站服务器上,让用户一边下载下边观看、收听,而不要等整个压缩文件下载到自己的计算机上之后才可以观看的网络传输技术。 目前,市场上主流的流媒体技术有三种,分别是RealNetworks公司的RealMedia、Microsoft公司的Windows Media和Apple公司的QuickTime。 流式传输技术又分为两种:一种是顺序流式传输,一种是实时流式传输。 2.2多媒体计算机及关键设备 一、多媒体计算机 多媒体计算机是指能够对声音、图像、视频等多媒体信息进行综合处理的计算机。 二、多媒体计算机系统构成 多媒体计算机系统一般由两个部分组成:多媒体计算机硬件系统和多媒体计算机软件系统。 1、多媒体计算机硬件系统 (1)多媒体主机(工作站、微型计算机)。 (2)多媒体输入设备(摄像机、麦克风、录像机、录音机、视盘、扫描仪、CD-ROM等)。 (3)多媒体输出设备(打印机、绘图仪、音响、电视机、喇叭、录音机、录像机、高分辨率显示器等)。 (4)多媒体存储设备(硬盘、光盘、声像磁带等)。 (5)多媒体功能卡(视频卡、声音卡、压缩卡、家电控制卡、通信卡等)。(6)操作控制设备(鼠标、操纵杆、键盘、触摸屏等)。 2、多媒体计算机软件系统 多媒体计算机的软件系统是以操作系统为基础的(有的是专门为支持多媒体处理功能而设计的操作系统,有的是在原操作系统基础上扩充了一个多媒体处理模块)。 还有多媒体数据库管理系统、多媒体压缩/解压缩软件、多媒体声像同步软件、多媒体通信软件等。 2.3多媒体技术及应用 一、多媒体技术 多媒体技术就是利用计算机技术把文字、声音、图形和图像等多媒体综合一体化,使之建立起逻辑联系,并能进行加工处理的技术。这里所说的“加工处理”,指的是对这些媒体的录入,压缩和解压缩、存信、显示、传输等。 多媒体技术具有以下几个特征: 1、集成性:多媒体技术的集成性是指将多种媒体信息有机地组织在一起,共同表达一个完整的多媒体信息,做到声、文、图、像一体化。 2、交互性:交互性是指通过各种媒体信息、使参与的各方面都可以对媒体信息进行编辑、控制和传递。 3、数字化:数字化是指多媒体中的各个单媒体都是以数字化的形式放在计算机中,这样计算机才能进行存储和处理。 4、实时性:多媒体技术是多种媒体集成的技术。在这些媒体中,有些媒体(如声音和图像)是与时间密切相关的,这就决定了多媒体技术必须要支持实时处理。 病毒可以附加在可执行程序的头部或尾部,或者采用其他方式嵌入。它运行的关键在于被感染的程序,当被调用时,将首先执行病毒代码,然后再执行程序原来的代码。 三、计算机病毒的特征 1、传染性 2、破坏性 3、隐蔽性 4、潜伏性 5、攻击的主动性 6、病毒的不可预见性 四、计算机病毒的分类 1、寄生病毒 2、存储器驻留病毒 3、引导区型病毒 4、隐形病毒 5、混合型病毒 五、几种常见的病毒 1、宏病毒 2、电子邮件病毒 3、木马病病 4、计算机蠕虫病毒 六、计算机病毒的主要危害 3.3 计算机病毒的防治 一、计算机病毒的传播途径 1、被动传播途径 2、主动传播途径(1)无线射入(2)有线注入(3)接口输入(4)先机植入 二、计算机病毒的预防 1、牢固树立预防为主的思想 2、制定切实可行的预防管理措施 3、采用技术手段预防病毒 三、计算机病毒的清除 1、人工消除病毒 2、自动消除病病毒法 计算机网络是多个独立的计算机通过通信线路和通信设备联起来以实现彼此交换信息和共享资源为目的信息系统,是计算机科学技术和通信技术相结合的产物。 1、资源共享 2、信息管理和数据传输 3、分布式处理 4、提高计算机的可靠性 二、计算机网络分类 1、覆盖的地理范围:广域网、城域网、局域网 2、网络操作类型:对等网络和客户机/服务器网络 3、网络传输方式:点对点传输网络和广播式传输网 4.2 Internet的基础知识 一、Internet的构成 1、通信线路 2、路由器 3、主机 4、信息资源 二、Internet的接入 1、通过电话网接入 2、利用ADSL接入 3、使用HFC接入 4、通过数据通信线路接入 5、无线接入技术 4.3 TCP/IP协议 一、IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议 接收低层数据包转发到更高层(TCP或UDP),相反接收更高层数据包转发到低层。IP数据包是不可靠的,不连接的服务。 二、TCP 面向连接、可靠的服务 三、TCP/IP协议的优缺点 1、TCP/IP协议主要特点 (1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统。(2)独立的特定的网络硬件(3)统一的网络地址分配方案,(4)标准化的高层协议 2、TCP/IP模型的主要缺点 (1)没有清楚地区分哪些是规范、哪些是实现 (2)TCP/IP模型的主机-网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来。 4.4 IP城址和域名系统一、IP地址的作用 以太网利用MAC地址(物理地址)标识网络中的一个节点,但物理地址的表示方法不一致,互联网对各种物理地址的表示方法要统一,这种统一要在互联层完成。 IP地址提供了一种互联网通用的地址格式,该地址由32位的二进制数表示,用于屏蔽各种物理网络的地址差异。IP地址规定的地址称为IP地址,IP地址由IP地址管理机进行统一管理和分配。 二、IP地址的层次结构 网络号和主机号 三、IP地址的分类 五种类型 1、A类:1.0.0.1~126.255.255.254,网络有126个,每个网络能容纳1600多万个主机。 2、B类:128.1.0.1~191.255.255.254,网络有16382个,每个网络能容纳6万多个主机。 3、C类:192.0.1.1~223.255.255.254,网络可达209万个,每个网络能容纳254个主机。 4、D类: 对于提供匿名FTP服务的FTP服务器,Internet用户可以随时访问这些服务器而不需要预先向服务器申请账号。匿名账号和密码是公开的,没有特殊说明,通常是anonymous作为账号,用guest作为口令,有些FTP服务器要求用户输入自己的电子邮件地址作为口令。 二、电子邮件系统 1、电子邮件服务的概念 电子邮件服务是用于互联网用户之间消息的发送和接收,通过电子邮件系统,用户不但可以传输文本信息,还可以传送图像、声音等多媒体信息。 2、电子邮件的传输过程 邮件服务器之间使用简单邮件传输协议(SMTP)相互传递邮件;电子邮件应用程序使用SMTP协议向邮件服务器发送邮件,使用邮局协议(POP3)或IMAP协议邮件服务器中读取邮件。 邮件的发送和接收过程如下: (1)用户利用客户端电子应用程序创建邮件,指明收件人地址后利用SMTP协议将邮件发送到发送端的邮件服务器。 (2)发送端的邮件服务器根据收件人的邮件服务器主机名,通过SMTP协议将邮件投递到接收端的邮件服务器,接收端的邮件服务器根据收件人账号将邮件投递到对应邮箱。 (3)利用POP3或IMAP协议,接收端用户可以利用电子邮件应用程序读取和管理自己的邮件。 3、电子邮件传输协议 (1)SMTP协议:负责将邮件从一个邮件服务器传送到另一个邮件服务器。该协议很简单,只规定发送程序和接收程序之间的命令和应答。SMTP邮件传输采用客户机/服务器模式。邮件传输过程大致可分为三个阶段:连接建立阶段、邮件传递阶段和连接关闭阶段。 (2)POP3协议:邮局协议的 一、物理层概术 它建立在物理通信介质的基础上,作为系统和通信介质的接口,用来实理数据链路实体间透明的比特流传输。物理层应具有下述功能: 1、物理连接的建立和拆除 2、物理服务数据单元传输 3、物理层管理 物理层的特性有如下几点: 1、机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。 2、电气特性:指明在接口电缆的各条线上出现的电压的范围。 3、功能特性:指明某条线上出现的某一电平的电压表示何种意义。 4、规程特性:批明对于不同功能的各种可能事件的出现顺序。 二、数据通信的理论基础 1、傅立叶分析 2、数据的传输速率和误码率(1)数据的传输速率:数据的传输速率的数值上等于每秒钟传输构成数码的二进制比特数,单位是比特/秒,记作bps。对于二进制数据,数据传输速率为S=1/T,其中T是发送每一比特所需要的时间。 (2)带宽和数据传输速率的关系:奈奎斯特准则和香农定律从定量的角度描述了带宽和速率的关系。 奈奎斯特准则指出:如果间隔为∏/W(W=2∏f)通过理想通信传输窄脉冲信号,则前后码元之间不产生相互缠绕。因此,对应二进制数据信号的最大传输速率Rmax的与通信信道带宽B的关系可以写为Rmax=2B。 香农定律指出:在随机热噪比的信道上传输数据信号时,数据传输速率Rmax与信道带宽B、信号与噪声比S/N之间的关系为Rmax=Blog2(1+S/N),其中Rmax的单位为bps,带宽的单位为Hz。 3、误码率的定义 误码率是指二进制码元在数据传输系统中被传错的比率。它在数值等于被传错的码元数除以传输的二进制码元总数。 在理解误码率定义时,应注意下面几个问题: (1)误码率应该是衡量数据传输系统正常工作状态下传输可靠性的参数。 (2)对于一个实际的数据传输系统,不能笼统地说主码率越低越好,要根据实际传输要求提出误码率要求。 (3)对于实际数据传输系统,如果传输的不是二进制码元,要折合成二进制码元来计算。 三、物理传输媒体 物理层的目的是将原始的比特流从一台机器传输到另一台机器。有多种物理介质可用 于实际传输,每一种物理介质在带宽、延迟、成本和安装维护难度上都有不同。介质可以大致分为有导线介质和无导线介质。 1、磁介质 2、双绞线 双绞线特性分为非屏蔽双绞线(UTP)和屏蔽双绞线(STP)。非屏蔽双绞线电缆线由塑料外皮包起来的一对或者多对双绞线组成;屏蔽双绞线电缆在每一个双绞线外面都有一层多属箔腊或者金属网格包装,使电磁噪声不能穿越进来,将每一对双绞线屏蔽起来能消除大多数的串线干扰。目前常用的双胶线的传输速率为100Mbps的5类线和传输速率为1000的超5类线,主要应用于基于以太网的局域网络。 3、光缆 光纤有三层构成,最里面是光纤芯,中间是包层,最外面是保护层。多模传播是指光信号与光纤轴成多个可分辨的角度的多光线传播;单模传播是指光信号仅与光纤轴成单个可分辨角度的单光线传播。 4、无线传输 无线传输是指采用无线频率、红外线、激光等进行传输,无线传输不受固定位置的限制,可以实现闪体的通信和移动通信。 计算机网络系统的无线传输主要指微波通信,微波通信主要分为地面微波通信和卫星微波通信两种形式。采用微波通窍主的成本要比使用光缆低,但同时微波的误码率也要罗光缆高,安全性也较低。卫星通信就是利用地球同步卫星作为微波的中继丫,可以实现远距离的数据传输。 四、数据编码 1、单极性码 2、极性码 3、双极性码 4、归零码 5、不归零码 6、双相码 7、曼彻斯特编码 8、差分曼彻斯特编码 五、数字调制技术 数字数据在传输中不仅可以用方波脉冲表示,也可以用模拟信号表示。用数字数据调制模拟信号叫作数字调制。 1、幅度键控(ASK) 按照这种调制方式,载波的幅度受到数字数据的调制而取不同的值。 2、频移键控(FSK) 即按照数字数据的值(0或1)调制载波的频率。这种调制技术抗干扰性能好,但占用带宽较大。在有些低速的调制解调器中,用这种调制技术把数字数据变成模拟间频信号传送。 3、相移键控(PSK) 数字数据的值调制载波相位,这就是相移键控。这种调制方式抗干扰性能最好,而取相位的变化也可以作为定时信息来同步发送机和接收机的时钟。码元只取两个相位值叫2相调制,码元可取4个相位值叫作4相调制。4相调制时,一个码元代表两位二进制数。 2.4 数据链路层 一、数据链路层概述 数据链路层利用物理层提供的不太可靠的比特传输,实现本层可靠的数据帧传输,进而为网络层提供数据通信服务。其基本服务是将源及其中来自网络网的数据传输给目的机器的网络层。 三种基本服务: 1、无确认的无连接的服务 2、有确认的无连接服务 3、有确认的面向连接的服务 二、差错检测和校正 1、纠错码 (1)在每一个要发送的数据块上附加足够的冗余信息,使接收方能够推导出已发出的字符应该是什么。使用纠错码。 (2)附加上足够的冗余信息,使接收方知道有差错发生,但不知道是什么样的差错,然后让接收方请求重传。使用检错码。 2、检错码 奇偶校验是最常用的检错方法。其原理是在7单但的ASCII代码后增加一位,使码字中“1”的个数成奇数(奇校验)或偶数(偶校验)。经过传输后,如果其中一个(包括奇数个位)出错,则接收端按同校的规则就能发现错误。 3、海明码 1950年,海明研究了用冗余数据位来何检测和纠正代码错误的理论和方法。按照海明的理论,可以在数据代码上增加若干冗余位组成码字,码字之间的海明戛离是一个码字要变成另一个码字时必须改变的最小位数。 三、基本数据链路层协议 1、数据链路层协议分类(1)面向字符的链路层协议 *ISO的IS1745,基本型传输控制规程及其扩充部分(BM和XBM)*IBM的二进制同步通信规程(BSC)*DEC的数字数据通信报文协议(DDCMP)*点对点连接上传输协议数据仓的PPP(2)面向比特的链路层协议 *IBM的SNA使用的数据链路协议SDLC(Synchronous Data Link Control protocol)*ANSI修改SDLC,提出ADDCCP(Advanced Data Communication Control Procedure)* ISO修改SDLC,提出HDLC(High-level Data Link Control)*CCITT修改HDLC,提出LAP(Link Access Procedure)作为X.25网络标准的一部分,后来改为LAPB 2、高级数据链路控制规程HDLC(1)HDLC的组成 *帧结构 *帧程元素 *规程类型 *语义 (2)HDLC的适用范围 *计算机-计算机 *计算机-终端 *终端-终端 3、SLIP-Serial Line IP 1984年,Rick Adams提出,RFC1055,发送原始IP包,用一个标记字节来定界,采用字符填充技术;新版本提供TCP和IP有关压缩技术-RFC1144。存在的问题主要有以下几点: *不提供差错校验 *只支持IP *IP地址不能动态分配 *不提供认证 *多种版本并存,互连困难 4、点到点协议PPP-Point-to-Point Protocol 与SLIP相比,PPP有很大的提高,提供差错校验、支持多种协议、允许动态分配IP地址,支持认证等。 PPP包括两部分:链路控制协议LCP(Link Control Protocol)和网络控制协议NCP(Network Control Protocol) PPP具有多协议成帧机制,可以在modem、HDLC bit-serial lines、SDH/SONET等物理上运行,支持差错检测、选项协商和包头压缩功能,并具有利用HDLC帧进行可靠传输的可选功能。 2.5 局域网 一、局域网概述 局域网是指在某一区域内多台计算机互联成的计算机组。 1、局域网的特点 *地理范围较小。近到几十米,远到十多公里。 -11-8*速率较快(可达1000Mb/s),误码率低(一般在10~10之间)。*便于管理。 2、局域网的关键的技术 (1)局域网的拓扑结构:常见的有星型、环型、总线型(2)局域网的数据传输形式:基带传输(局域网一般采用)、频带传输 *基带传输:传输介质上传输的是数字脉冲信号。 *频带传输:传输介质上传输的是模拟信号(数字信号调制在其中) (3)局域网的介质访问控制方法:介质访问控制方法即信道访问控制方法,也就是网络中的各个站点如何利用共享信道的问题。 *常见五类介质访问控制方法:固定分配、按需分配、适应分配、探询访问、随机访问。*介质访问控制协议基本要求:协议简单、低负荷时响应快、高负荷是地利用率高、各站点用户公平。 3、局域网的体系结构 IEEE802标准把数据链路层分为两层,下层为MAC(介质访问控制子层),该层与硬件相关,负责解决介质利用问题,为此IEEE802制定了多种介质访问标准。上层为LLC(逻辑链路控制),该层与硬件无关。从而使LAN体系结构能适应多种传输媒体。负责成帧、发送接 收帧、控制字段、循环冗余校验、帧顺序控制、差错控制和流量控制等。 二、介质访问控制方法 1、载波侦听多路访问(CSMA)的介质访问控制方法(IEEE802.3标准) 该方法主要解决两个问题:各站点如何访问共享介质(一般是总线型)、如何解决同时访问造成的冲突。(1)802.3帧的格式 |7B先导字段|1B帧开始标志|2B-6B目标地址|2B-6B源地址|2B数据长度|0B-1500B数据|0B-46B填充字段|4B校验和|。 *先导字段:用于接收方与发送方的时钟同步。*数据长度:用于标明有效载荷的长度。*填充字段:用于保证最小长度的帧。 载波侦听多路访问法最大缺点是有可能多个站点同时侦听到线路为空,并同时发出帧,则线路冲突。 (2)载波侦听多路访问/冲突检测(CSMA/CD)的介质访问控制方法(IEEE802.3标准的改进) 此法要求站点发现信道为空发送帧后,依然侦听信道,如发现帧发送期间有冲突,就立即停止发送,等待一个随机时间再侦听信道。 一个基本概念:竞争时隙(争用时隙、时间槽),指局域网中两个最远站点间电磁波传输所需时间(a)的两位(2a)。 因此发送帧的站点只要从发送帧的 |1B先导字段|1B开始界符|1B帧控制信息|2B-6B目的地址|2B-6B源地址|0B-8192B数据|4B校验和|1B结束界符| 与IEEE802.3的帧相比,IEEE802.4的帧无数据长度内容,但有首尾界符信息。 帧控制信息:用于区别是数据帧还是控制帧。如果表数据帧,则该字节中还应含有数据帧的优先级别。如是控制帧则应指明是什么控制帧。 (3)IEEE802.3与IEEE802.4标准比较 *IEEE802.3的网络拓扑结构是总线型,逻辑结构也是总线型。IEEE802.4的网络拓扑结构是总线型,而逻辑结构是环型。 *IEEE802.3是一种有冲突的协议。IEEE802.4是一种无冲突的协议。因此工作方式有很大的区别。 *IEEE802.3低负荷时响应快,高负荷时线路利用率低;IEEE802.4低负荷时有时延(即令牌在逻辑环中传输一周所需时间),高负荷时线路利用率高。 *IEEE802.3中站点发送一帧等待时间不确定,有概率因素,不能用于时间系统;而IEEE802.4中站点发送一帧等待时间确定,因此可以用于时实系统。 *IEEE802.3的帧与IEEE802.4的帧有差别,前者有数据长度和填充字段;而后者有开始界符、结束界符和帧控制信息。 *IEEE802.4可以传输小于64B的帧,而IEEE802.3必须传输64B以上的帧。*IEEE802.3数据无优先级,IEEE802.4数据帧有优先级。 3、IEEE802.5令牌环网访问控制标准 IEEE802.5属于无冲突的介质访问控制方法。该方法主要解决两个问题:各站点如何访问共享介质;如何解决逻辑环和物理环维护问题。 (1)IEEE802.5工作原理(如何访问介质) 物理结构(拓扑结构)和逻辑结构都是环型结构,工作访问介质的方式也基本和令牌总线相似。拥有令牌的站点便能向环上发放数据帧,并且令牌的某一位bit变成为数据帧的一部分;向环上放数据帧的站点也负责从环上清除数据帧。数据帧在环上传输过程中,目标站点从环上接收数据的bit流,递交上层下理并转发bit流,其它站点则只接收,但马上转发,同时在该站点中产生1bit的时延。 (2)IEEE802.5帧的格式 令牌帧: |1B开如界符SD|1B访问控制AC|1B结束界符ED| 数据帧: |1B开始界符SD|1B访问控制AC|1B帧控制FC|2-6B目的地址DA|2-6B源地址SA|0-4500B数据INFO|4B校验FCS|1B结束符ED|1B帧状态FS| 该问控制AC有四个作用: *用于表示是令牌帧还是数据帧。 *如果是令牌还可表标站点的优先级别,即指示下一个可获得令牌的站点(有0-7个优先级)。 *如果是数据帧,其他站点还可在其中预订其优先级别,争取下轮获得令牌进而获得发送权。 *如果是数据帧,还可表示数据帧是有主帧还是无主帧。帧首界符SD:用于标识一帧的开始。 帧尾界符ED:用于标识一帧的结尾,并指明此次通信是否还有后继帧。帧状态FS:用于让源站点知道目标站点是否存在,存在时是否接收数据。 帧控制FC:用于指明是数据帧(最高两位为01)还是控制帧(最高两位为00),如是 控制帧则在后六位还要指明是什么控制帧。 2.6 网络层 物理层和链路层解决的是点到点的通信问题,而网络层解决的是端到端的通信问题。主要功能是为了实现不相邻的源DCE和目标DCE之间的透明通信,或任意主机间的数据传输,为了更上层(使上层实体无需考虑为通信而建立网络连接,以及所需的路径选择和中转等细节)。 一、网络层功能 1、路由功能:如采用的是数据报方式则多次路由,如采用虚电路方式则通信前一次路由。 2、分段和组块。 3、中继功能。 4、网络层面上的流量控制。 5、异种网络的互联问题。 二、数据交换技术 数据经编码后在通信线路上进行传输,按数据传送技术划分,交换网络又可分为电路交换网、报文交换网、分组交换网。 1、电路交换的工作原理(1)电路交换的三个过程 电路建立:在传输任何数据之前,要先经过呼叫过程建立一条端到端的电路。若H1站要与H3站连接,典型的做法是,H1站先向与其相连的A节点提出请求,然后A节点在通向C节点的路径中找到下一个支路。比如A节点选择经B节点的电路,在此电路上分配一个未用的通道,并告诉B它还连接C节点;B再呼叫C,建立电路BC,最后,节点C完成到H3站的连接。这样A与C之间就有一条专用电路ABC,用于H1站与H3站之间的数据传输。 数据传输:电路ABC建立以后,数据就可以从A发送到B,再由B交换到C;C也可以经B向A发送数据。在整个数据传输过程中,所建立的电路必须始终保持连接状态。 电路拆除:数据传输结束后,由某一方(A或C)发出拆除请求,然后逐节拆除到对方节点。 (2)电路交换技术的优缺点及其特点 优点:数据传输可靠、迅速,数据不会丢失且保持原来的序列。 缺点:在某些情况下,电路空闲时信道容易被浪费;在短时间数据传输时电路建立和拆除所用的时间得不偿失。因此,它适用于系统间要求高质量的大量数据传输的情况。 特点:在数据传送开始之前必须选设置一条专用的通路。在线路释放之前,该通路由一对用户完全占用。对于猝发式的通信,电路交换效率不高。 2、报文交换的工作原理(1)报文交换原理 报文交换方式的数据传输单位是报文,报文就是站点一次性要发送的数据块,其长度不限且可变。当一个站要发送报文时,它将一个具的地址附加到报文上,网络节点根据报文上的目的地址信息,把报文发送到下一个节点,逐个节点地转送到目的节点。每个节点在收到整个报文并检查无误后,小暂存这个报文,然后利用路由信息找出下一个节点的地址,再把整个报文传送给下一个节点。因此,端与端之间无需先通过呼叫建立连接。一个报文在每个节点的延迟时间,等于接收报文所需的时间加上向下一个节点转发所需的排队延迟时间之和。 (2)报文交换的特点 报文从源点传送到目的地采用“存储-转发”方式。在传送报文时,一个时刻仅用一段通道。 在交换节点中需要缓冲存储,报文需要排队故报文交换不以满足实时通信的要求。(3)报文交换的优点 电路利用率高。由于许多报文可以分时共享两个节点之间的通道,所以对于同样的通信量来说,对电路的传输能力要求较低。 在电路交换网络上,当通信量变得很大时,就不能接受新的呼叫,而在报文交换网络上,通信量大时仍然可以接收报文,不过传送延迟会增加。 报文交换系统可以把一个报文发送到多个目的地,而电路交换网络很难做到这一点。报文交换网络可以进行速度和代码的转换。(4)报文交换的缺点 不能满足或交互式的通信要求,报文经过网络的延迟时间长且不定。有时节点收到过多的数据而无空间存储或不能及时转发时,就不得不丢失报文,而且发出的报文不按顺序到达目的地。 3、分组交换的工作原理 分组交换是报文交换的一种改进,它将报文分成若干个分组,每个分组的长度有一个上限,有限长度分组使得每个节点所需的存储能力降低了,分组可以存储到内存中,提高了交换速度。它适用于交互式通信,如终端与主机通信。分组交换有虚电路分组交换和数据分组交换两种。它是计算机网络中使用最广泛的一种交换技术。 (1)虚电路分组交换原理和特点 在虚电路分组交换中,为了进行数据传输,网络的源节点和目的节点之间要先建一条逻辑通路。每个分组除了包含数据之外还包含一虚电路标识符。在预先建好的路径上的每个节点都知道把这些分组引导到哪里去,不再需要路由选择判定。最后,由某一个站用清除请求分组来结束这次连接。它之所以是“虚”的,是因为这条电路不是专用的。 虚电路分组交换的主要特点是:在数据传送之前必须通过虚呼叫设置一条虚电路,但并不像电路交换那样有一条专用电路,分组在每个节点上仍然需要缓冲,并在线路上进行排队等待输出。 (2)数据报文分交换原理与特点 在数据报分组交换中,每个分组的传送是被单独处理的。每个分组称为一个数据报,每个数据报自身携带足够的地址信息。一个节点收到一个数据报后,根据数据报中的地址信息和节点所储存的路由信息,找出一个合适的出路,把数据报原样的发送到下一节点。由于各数据报所走的路径不一定相同,因此不能保证各个数据报顺序到达止的地,有的数据报甚至会中途丢失。整个过程中,没有虚电路建立,但要为每个数据报做路由选择。 三、路由选择策略 1、静态路由选择策略 静态路由选择策略不用测量也不需利用网络信息,这种策略按某种固定规则进行路由选择,其中还可分为泛射路由选择、固定路由选择和随机路由选择三种算法。 (1)泛射路由选择法。这是一种最简单的路由算法。一个网络节点从某条线路收到一个分组后,再向除该线路外的所有线路重复发送收到分组。结果最先到达目的节点的一个或若干个分组肯定经过了最短的路径,而且所有可能的路径都被尝试过。这种方法用于诸如军事网络等强壮性要求很高的场合。即使用的网络节点遭到破坏,只要源、目的有一条信道存在,则泛射路由选择仍能保证数据的可靠传送。另外,这种方法也可用于将一个分组数据源 传送到所有其他节点的广播式数据交换中。它不可被用来进行网络的最短路径及最短传输延迟的测试。 (2)固定路由选择。这是一种使用较多的简单算法。每个网络节点存储一张表格,表格中每一项记录着对应某个目的节点的下一节点或链路。当一个分组到达某节点时,该节点只要根据分组上的地址信息,便可从固定的路由表中查出对应的目的节点及应选择的下一节点。一般,网络中都有一个网络控制中心,由它按照最佳路由算法求出每对源、目节点的最佳路由,然后为每一节点构造一个固定路由表并分发给各个节点。固定路由表选择法的优点是简便易行,在负载稳定、拓扑结构变化不大的网络中运行效果很好。它的缺点是灵活性差,无法应付网络哪生的阻塞和故障。 (3)随机路由选择。在这种方法中,收到分组的节点,在所有与之相邻的节点中为分组随机选择一个节点。方法虽然简单,但实际路由不是最佳路由,这会增加不必要的负担,而且分组传输延迟也不可预测,故此法应用不广。 2、动态路由选择策略 节点的路由选择要依靠网络当前的状态信息来决定的策略称动态路由选择策略。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性。但由于算法复杂,会增加网络的负担。独立路由选择、集中路由选择和分存路由选择是三种动态路由选择策略的具体算法。 (1)独立路由选择。在这类路由算法中,节点不仅根据自己搜集到的有关信息做出路由选择的决定,与其他节点不交换路由选择信息。这种算法虽然不能正解确定距离本节点较远的路由选择,但不能较好的适应网络流量和拓扑结构的变化。一种简单的独立路由选择算法是Baran在1964年提出的热士豆算法:当一个分组到来时,节点必须尽快脱手,将其放入输出队列最短的方向上排队,而不管该方向通向何方。 (2)集中路由选择。集中路由选择也像固定路由选择一样,在每个节点上存储一张路由表。不同的是,固定路由选择算法中的节点路由表由人工制作,而在集中路由选择算法中的节点路由表由咱由控制中心RCC(Routing Control Center)定时根据网络状态计算、生成并分送到各相应节点。由于RCC利用了整个网络的信息,所以得到的路由选技是完美的,同时也减轻了各节点计算路由选择的负担。 (3)分布路由选择。在采用分布路由选择算法的网络中,所有节点定期地与其每个相邻节点交换路由选择信息。每个节点均存储一张以网络中其他节点为索引的路由选择表,网络中每个节点占用表中一项。每一项又分为两个部分,一部分是所希望使用的到目的节点的输出线,另一部分是估计到目的节点所需要的延迟或距离。度量标准可以是毫秒或链路段数、等待的分组数剩余的线路和容量等。 四、阻塞控制方法 1、缓冲区预分配方法 该法用于虚电路分组交换网中。在建立虚电路时,让呼叫请求分组的途径的节点为虚电路预先分配一个或多个数据缓冲区。若某个节点缓冲区已满,则呼叫请求分组另择路由、或者返回一个“忙”信号给呼叫者。这样,通过途径的各个节点为每条虚电路开设的永久性缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。此时的分组交换跟电路交换很相似。当节点收到一个分组并将它转发出去之后,该节点向发送节点返回一确认信息。该确认一方面表示接收节点已正确收到分组,另一方面告诉发送节点,该节点已空出缓冲区以备接收下一个分组。上面是“等一等”协议下的情况,若节点之间的协议允许多个未处的分组存在,则为了完全消除阻塞的可能性,每个节点要为每条虚电路保留等价窗口大小数量的缓冲区。这种方法不管有没有通信量,都有可观的资源(线路容量或存储空间)被某个连 接占有,因此网络资源的有效利用不高。这种控制方法主要用于要求高带宽和低延迟的场合。 2、分组丢弃法 该法不必预先保留缓冲区,当缓冲区点满时,将到来的分组丢弃。若通信子网提供的是数据服务,则用分组丢弃法来防止阻塞发生不会引起大的影响。但若通信子网提供的是虚电路服务,则必须在某处保存被丢弃分组的备份,以便阻塞解决后重新发送。有两种解决被丢弃分组重发的方法工;一种是让发送被丢弃分组的节点超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放节点的缓冲区,若因节点无空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了释放的机会。解决这个问题的方法可以为每条输入链路永久地保留一块缓冲区,以用于接纳并检测所有进入的分组,对于捎带确认信息的分,在利用了所捎带的确认释放缓冲区后,再将拆该分组丢弃或将该捎带好消息的分组保存在网空出的缓冲区中。 3、定额控制法 这种方法在通信子网中设置适当数量的称作“许可证”的特殊信息。一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点,另一部分则在子网开始工作后在网中四处环游。当源节点要发送来自源端系统的分组时,它必须首选拥有许可证,并且每发送一个分组注销一张许可证。目的节点方则每收到一个分组并将其递交给目的端系统后,便生成一张许可证,这样便可确保子网中分组数不会超过许可证的数量,从而防止了阻塞的发生。 五、X.25协议 CCITT提出X.25的协议描述了主机(DTE)与分机交换网(PSN)之间的接口标准,使主机不必关心网络内部的操作就能方便地实现对各种不同网络的访问。X.25实际上是DTE与PSN之间接口的一组协议,它包括物理层、数据连路层和分组层三个层次。X.25的分组相当与OSI参考模型中的网络层,其主要功能是向主机提供多信道的虚电路服务。 X.25所规定的虚电路服务属于面向连接的OSI服务方式,这正好符合OSI参考模型中的网络层服务标准定义,这就为公用数据网与OSI结合提供了可能性。OSI网络层的功能是提供独立于运输层的中继和路由选择以及其他与之相关的功能。在面向连接的网络层服务中,要进通信的网络层实体必须道选建立连接,这在X.25即为相应的建立虚电路的呼叫建言规程。 2.7 网络互联 一、网络互联原理 网络互连的目的是使一个网络上的用户能访问其他网络上的资源,使不同网络上的用户互相通信和交换信息。这不仅有利于资源共享,也可以从整体上提高网络的可靠性。 要实现网络互联,必须: 1、在网络之间至少提供一条物理上连接的链路,并具有对这条链的控制规程; 2、在不同网络的进程之间提供合适的路由实现数据交换; 3、有一个始终记录不同网络使用情况并维护访状态信息的统一的记费服务; 4、在提供以上服务时,尽可能不对互联在一起的网络的体系结构做任何修改。局域网(LAN)、广域网(WAN)的网际互联有“LAN-LAN”、“LAN-WAN”,“WAN-WAN”和“LAN-WAN-LAN”等四种形式。由于非OSI系统与OSI系统互联,非OSI系统之间要互联,所以,网络互联并不单纯指不同的通信子网在网络层上互联。实际上,两个网络之间要 互联时,它们之间的差异可以表在OSI七层模型中的任一层上。 用于网络之间互联的中继设备称为网间连接器。按它们对不同层次的协议和功能转换,可以分为以下几类: 1、转发器(Repeater):在物理层间实现透明的二进制比特复制,以补偿信号衰减; 2、网桥(Bridge):提供链路层间的协议转换,在局域网之间存储和转发帧; 3、路由器(Router):提供链路层间的协议转换,在不同的网络之间存储和转发分组; 4、网关(Gateway):提供运输层及运输以上各层间的协议转换。 二、网桥 网桥是一种存储转发设备,用来连接类型相似的局域网。从互联网络的结构看,网桥属于DCE级的端到端的连接;从协议层次看,网桥属于链路层范畴,该层对数据帧进行存储转发。它既不同于只作单纯信号增强的转接器,也不同于进行网络层转换的网间连接器。但网桥仍然是一种网络连接的方法,因为局域网本身没有网络层,只有在主机站点上才有网络层或提供网络层服务的功能。 网桥接收并送到数据链路层进行差错校验,然后送到物理层再经物理传输媒体送到另一个子网。在转发帧以前,网桥对帧的内容和格式不做修改或仅很少的修改。网桥应该有足够的缓冲空间,以便能满足高峰负荷时的要求。另外,必须具备寻址和路由选择的逻辑功能。 三、路由器 路由器工作网络层,用以实现不同网络间的地址翻译、协议转换和数据式转换等功能,一般用于广域网之间地连接或广域网与局域网之间的连接。常用的路由器有用于面向连接的路由器和用于无连接的路由器两种,面向连接的路由器用于连接两个提供虚电路服务的广域网。一种采用CCITT X.75协议的路由器,可用于连接两个提供X.25访问的网络。 无连接的路由器用于提供数据服务的网际互联模型中,使若干个局域网通过广域网互联。这样,一个局域网的主机就可以通过广域网与远程局域网上的主机相互通信,局域网上的主机也可以与广域网上的主机以数据报方式通信。IP协议网际互联方式便是这种模型的实例。 2.8 传输层 传输层是网络体系结构中的一个特殊层,从信息传输角度看,传输层是面向通信,解决有关传输问题的最高层;但从用户网络功能来看,传输层则是面向应用的最高层。引入传输层的基本目的是在网络层的基础上再增添一层软件,使之能屏蔽各种通信子网的差异,并对用户的应用进程提供一个服务接口,通过该接口,用户便能使用网络资源和进行通信,满足其要求的通信服务。 一、传输层的功能 1、传输连接的建立与释放 为此要获得一条网络连接,要进行多路复用与分割,建立最佳的传输层PDU,映射传输地址到网络地址,对传输连接的识别等。 2、映射传输层地址到网络地址 一个传输地址可映射为一个网络地址和多个网络地址,也可多个传输地址映射为一个网络地址。 3、多路复用与分割 一个传输连接可对应一个网络连接和多个网络连接,也可多个传输连接对应一个网络连接。 4、分段与重新组装 发送方把上层递交的SDU分段组装成多个本层的PDU传到网络层,接收方把下层交来的多个PDU重新组装成SDU传到上层。 二、传输层的服务 1、服务类型 传输服务有两大类,即面向连接的服务和面向无连接服务。面向连接的服务提 供运输服务用户之间逻辑连接的建立、维持和拆除,是可靠的服务,可提供流量控制、差错控制与序列控制。无连接服务,只能提供不可靠的服务。 2、服务等级 可将运输层协议服务等级细分为以下四类:(1)可靠的面向连接的协议;(2)不可靠的无连接协议; (3)需要定序和定时传输的话音传输协议;(4)需要快速和高可靠的实时协议。 三、传输层协议 传输层地功能是要弥补从网络层获得的服务和拟向运输服务用户提供的服务之间的差距。它所担心的是提高服务质量,包括优化成本。 传输层的功能按级别划分。OSI定义了五种协议级别,即级别0(简单级)、级别1(基本差错恢复级)、级别2(多路复用级)、级别3(差错恢复和多路复用级)和级别4(差错检测和恢复级)。服务质量划分的较高的网络,仅需要罗简单的协议级别;反之,服务质量划分的较低的网络,仅需要罗复杂的协议级别。 2.9 网络管理和网络安全 一、网络管理 1、网络管理的基本概念 (1)网络管理的定义:网络管理是指网络运行状态时行监测和控制,使其能够有效、可靠、安全、经济地提供服务。通过监测可以了解网络状态是否正常,是否存在瓶颈和潜在危机;通过控制可以对网络状态进行合理调节,从而提高效率,保证服务。 (2)网络管理对象:网络管理对象分为硬件资源和软件资源两大类。其中,硬件资源包括物理介质、计算机设备和网络互联设备;软件资源主要包括操作系统、应用软件、通信软件等。 (3)网络管理目标:网络管理的目标是满足运营者及用户对网络有效性、可靠性、开放性、综合性、安全性和经济性的要求。 2、网络管理功能 由ISO7498-4定义的网络管理功能主要包括配置管理、故障管理、性能管理、计费管理和安全管理五个系统管理功能域。 (1)配置管理:配置管理是一组用于辨别、定义、控制、和监视网络对象所必须的功能,它负责网络的建设、业务的展开及配置数据的维护,以实现某个特定功能或是使网络性能达到最优。配置管理功能包括资源清单管理、资源开通以及业务开通。 (2)故障管理:故障管理的任务是发现和排除故障。其主要功能维护并监测错误日志、接收错误监测报告并作出响应、跟踪辨识错误、执行诊断测试和纠正错误等。故障管理的内容包括障碍管理、故障恢复和预防保障。 (3)性能管理:性能管理包括性能监测、性能分析以及性能管理控制等功能。其目的是维护网络服务质量和网络运行效率。性能管理的一些典型功能包括:收集统计信息、维护并检查系统状态日志、确定自然和人工状态下系统的性能、改变系统的操作模式。 (4)计费管理:计费管理记录网络资源的使用,目的是监测和控制网络操作的费用和代价,它可以评估出用户使用网络资可能需要的费用和代价。 (5)安全管理:安全管理的功能主要包括:风险分析功能、安全服务功能、警告功能、日志功能和报告功能,以及网络管理系统保护功能等。 3、网络管理模型 在网络管理中,一般采用管理者-代理的管理模型。管理者与代理之间利用网络实现管理信息的交换,并控制、协调和监视网络资源,以完成网络管理功能。 二、网络管理协议 网络管理协议是高层网络应用协议,它建立在具体物理网络及其基础通信协议上,为网络平台服务。网络管理协议提供了访问任何厂商生产的任何网络设备,并获一系列标准值的一致性方式。 1、网络管理协议的发展 国际标准化组织ISO在1979年首先针对OSI模型进行了网络管理通信的标准化设计,其成果是CMIS和CMIP,两者规定了OSI系统的网络管理标准。后来,Internet工程任务组IETF将SGMP修改为SNMP(简单网络管理协议),也称SNMP V1。在1992年,IETE开始了SNMP V2的开发工作,提高了协议的安全性。1997年,IETF成立了SNMP V3工作组,其重点是安全、可管理的体系结构和远程配置。 2、SNMP协议 SNMP是最常用的计算机网络管理协议,可用于管理目前市场上大多数的组网设备。SNMP位于ISO/OSI参考模型的应用层,它遵循ISO的管理者-代理网络管理模型。 SNMP的体系结构主要由SNMP管理者、SNMP代理者两部分组成。每一个支持SNMP的网络设备中都包含一个代理,代理随时记录网络设备的各种信息;网络管理程序再通过SNMP通信协议代理所记录的信息。从被管理设备数据有轮询和其于中断两种方法。将以上两种方法结合的陷入制轮询法可能是执行网络管理的最有效的方法。 3、CMIP协议 在网络管理中,CMIP是通过事件报告进行工作的。网络中的各个监测设施在发现被监测的状态和参数发生变化后即时向珲理进程进行事件报告。管理事件对进程进行分类,根据时间发生时对网络服务影响的大小来划分事件的等级,再产生相应的故障处理方案。 CMIP的所有功能要通过应用层的相关协议来实现。联系控制协议ACP用来实现管理联系的建立、释放和撤销;远程操作协议(ROP)用来实现事件报告操作。 三、数据加密技术 1、密码学基本概念 密码编码学是密码体制的设计学,而密码分析学则是在不知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为密码学。 2、代换和置换技术 (1)代换法:代换法是将明文字母替换成其他字符、数字和符号的方法。 Caesar密码是一种最古老的代换密码,其实现方式是对明文中的每个字母,用字母表中的K个字母后的字母替代。 单表代换密码是对Caesar加密法的改时,它也是用字母表中的一个字母代替另一个字母,但不是进行简单地易位,而是任意字母都可替换为任意其他字母,只要每个字母有唯一的替换字母。 (2)置换密码:置换密码的加密方法是通过置换而形成新的排列。如栅栏技术,按照对角线的顺序写入明文,而按行的顺序读出作为密文。 3、对称加密技术 对称加密也称常规加密、保密密钥加密或单密钥加密。 对称加密的模型由五个组成部分:明文、加密算法、密钥、密文、解密算法。目前常用的对称加密算法有数据加密标准(DES)、三重DES、高级加密标准(AES)、Blowfish算法和RC5算法。 4、公钥加密 公钥加密是基于数学函数的算法,而不再基于置换和代换技术。公钥密码使用两个独立的密钥,是非对称的,在保密性、密钥分配和认证领域有重要意义。 公钥加密制有六个组成部分:明文、加密算法、公钥、私钥、密文和解密算法。公钥加密体制的应用可分为以下三种: *加密/解密 *数字签名。发送方利用其私钥对消息“签名”。*密钥交换 常用的公钥加密算法有RSA算法,Elgamal 公钥体制和背包公钥体制。 四、认证体制 认证是为了防止敌人的主动攻击,包括检测信息的真伪及防止信息在通信过程中被篡改、删除、插入、伪造、延迟和重放。认证主要包括三个方面:消息认证、身份认证和数字签名。 1、消息认证 (1)消息认证的概念 消息认证就是使拟定的接收者能够检验收到的消息是否真实的方法,又称完整性校验。消息认证的内容应包括:证实消息的信源和信宿;消息内容是否曾经受到偶然或有意地篡改;消息的序号和时间性是否正确。这种认证相互通信的双方中进行,不允许 数字签名,包括普通数字签名和特殊数字签名。 3、身份认证 身份认证又称身份识别,它是通信和数据系统中正确识别通信用户或终端身份的重要途径。身份认证的常用方法有口令认证、持证认证和生物识别。 五、防火墙技术 1、防炎墙的概念 防火墙是由软件、硬件构成的系统,用来在两个网络之间实施接入控制策略。接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。 防火墙内的网络称为“可信赖的网络”,而将外部的因特网称为“不可信赖的网络”。防火墙可用来解决内联网和外联网的安全问题。 2、防火墙的功能 防火墙的功能有两个:阻止和允许。(1)“阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。 (2)“允许”的功能与“阻止”恰好相反。防火墙必须能够识别通信量的各种类型。不过在大多数情况下防火墙的主要功能是“阻止”。 3、防火墙分类 (1)网络级防火墙:用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。 (2)应用级防火墙:从应用程序来进行接入控制。通常使用应用网关或代理服务器来区分各种应。 2.10 电子商务 一、电子商务概述 1、概念 电子商务:国际化标准化组织ISO对电子商务的定义是:企业之间、企业与消费者之间信息内容与需求交换的一种能用术语。 全球信息基础设施委员会对电子商务的定义是:电子商务是以电子通信为手段的经济活动,通过这种方式,人们可以对带有经济价值的服务进行宣传、购置和结算。 2、电子商务的分类 电子商务按照商品的提供者和消费者来划分,可分为:企业内的部门、企业和企业、企业和个人、个人和企业等。 二、电子商务的系统结构 电子商务就其整体而言,其主要功能层次不外乎三种:底层的网络平台、中间的电子商务基础平台、高层的应用系统。 1、底层的网络平台 网络平台主要是指构成建底层通信协议的系统平台。这一层主要负责底层数据传输,网络交易平台的运算速度、质量以及传输安全性控制主要集中于此。 2、中层的电子商务基础平台 中层的电子商务基础平台是指构建在系统平台之上的针对电子商务的基础平台。这一层是数据的包装层、格式化层和加密层。 中间层是电子商务系统的核心层,是电子商务平台提供服务的基础。这一层主要包括HTTP、SET、SSL、JAVA等协议和数据仓库构建,为应用程序的执行提供了解释环境和输入输出接口。不同的基础平台决定了不同的应用服务系统,也就是说,中间的电子商务基础平台决定着高层应用系统的类型和执行效率、系统的安全性以及系统的可用性。 3、高层的应用系统 面向客户的应用服务系统是电子商务系统的最高层次,是直接这浏览器同Internet用户对话的人机界面。它提供了电子商务系统服务的运作平台。这一层主要是为了实阳电子商务各种功能而设计的应用程序。 这三层的工作机制是:应用服务层提供数据输入界面,将所接收的用户数据传递给中间层,中间层将用户数据格式化、加密、包装,然后传递给底层的网络平台,底层的网络平台对用户的格式化数据进行打包、加密和传输。 三、电子商务的关键技术 1、Web 技术,特别是Web 数据库技术,主要应用于商品信息的发布和检索。 2、电子数据交换技术,即EDI 技术。 3、在线支付技术,此技术主要解决付款方式。 4、信息安全技术,这是实现电子商务系统的关键技术,其中包括防火墙技术、信息加密与解密技术、数字签名技术等。 5、电子商务系统的数据一致性、跨平台性及Java技术。 6、计算机虚拟现实技术,虚拟电子商厦的建立、虚拟顾客的商品浏览、商品的展示等都要用到计算机虚拟现实技术。 四、电子支付的概念 电子商务支付系统是电子商务系统的重要组成部分,它指的是消费者、商家和金融机构之间使用安全电子手段交换商品或服务,即把新型支付手段(包括电子现金(eCash)、信用卡(Credir Card)、借记卡(Debit Card)、智能卡(Smart Card)等)的支付信息通过网络安全传送到银行或相应的处理机构,实现电子支付。 五、电子商务支付的主要形式: 1、电子支票(eCheck)• 2、以信用卡系统为基础的支付(Credit Card Based System)• 3、电子现金(eCash/Digital Money) 六、电子商务的交易安全 (一)加密技术 1.加密体制分类 • (1)私钥(单钥或对称)加密体制 •(2)公钥(双钥或非对称)加密体制 • 2.私钥加密技术 • 3.公钥加密技术 (二)数字签名技术 1.数字签名技术的特点 (1)签名不可假冒,不能非法改动被签的内容 (2)签名可验证,任何人都可验证签名的有效性(3)签名不可抵赖,不能否认所作的签名 2.数字签名的方法 •(1)RSA签名 •(2)DSS签名 •(3)Hash签名 (三)认证技术 1.认证中心:电子商务认证授权机构也称为电子商务认证中心(Certification Authority,CA),CA主要有以下几种功能:(1)证书的颁发 •(2)证书的更新 •(3)证书的查询 •(4)证书的作废 •(5)证书的归档 2.数字证书 数字证书是一个担保个人、计算机系统或者组织的身份和密钥所有权的电子文档。•(1)数字证书的类型 应用程序能识别的证书类型有个人证书、服务器证书、安全邮件证书和CA证书。• (2)数字证书的内容数字证书由证书数据和发行证书的CA签名两部分组成(3)数字证书的优点 (四)电子商务交易安全协议 1.SSL安全协议:SSL(Secure Sockets Layer)安全协议由Netscape Communication公司设计开发,又称为安全套接层协议。在SSL中,采用了公开密钥和私有密钥两种加密方法,主要用于提高应用程序之间的数据安全系数。SSL协议的整个概念可以被概括为:它是一个保证任何安装了安全套接层的客户和服务器间事务安全的协议,该协议向基于TCP/IP的客户/服务器应用程序提供了客户端和服务器端的鉴别、数据完整性及信息机密性等安全措施,并为用户提供了Internet和企业内联网的安全通信服务。 2、SSL安全协议主要提供三方面的服务: (1)加密数据以隐藏被传送的数据。 (2)维护数据的完整性,确保数据在传输过程中不被改变 (3)认证用户和服务器,使得它们能够确信数据将发送到正确的客户机和服务器上。 3、SSL安全协议的运行步骤 :(1)接通阶段 •(2)密码交换阶段 •(3)会谈密码阶段 •(4)检验阶段 •(5)客户认证阶段 •(6)结束阶段 4.SET安全协议 • (1)SET安全协议运行的目标 •(2)SET安全协议中交易的参与方 •(3)SET协议使用的技术 •(4)SET交易的流程 •(5)SET安全协议的缺陷 五、电子商务的交易模式 1、企业与企业之间的电子商务 简称为 B to B 电子商务,是指商业机构(企业或公司)之间利用 Internet 进行询价 / 报价,订货 / 接受订货,付款 / 收款等商业活动的完整过程。 2、企业与消费者之间的电子商务 简称为 B to C 电子商务,是指在企业与消费者之间进行的各种电子交易,主要是借助于 Internet 开展的在线销售活动。 3、企业与政府之间的电子商务 简称 B to G 电子商务,是指在企业与政府机构之间进行的各种网上信息交流,管理和服务。 4、消费者与政府之间的电子商务 简称 C to G 电子商务。例如社会福利基金的发放以及个人报税等。 5、企业内部的电子商务 六、电子商务的功能 1、网上采购和分销 2、网上直销 3、网上支付 4、网上交易管理服务 5、开展网上宣传与网上调查 七、构建电子商务系统的主要技术 1、常用的协议标准(1)HTTP协议。 (2)WAP(Wireless Application Protocol,无线应用协议)。 2、脚本语言(1)HTML语言 (2)XML(eXtensible Markup Language,可扩展标记语言)。(3)Java语言和Java Applet.(4)JavaScript.(5)VBScript(6)PHP 2.11 电子政务 一、电子政务的概念 所谓电子政务,就是应用现代信息和通信技术,将管理和服务通过网络技术进行集成,在互联网上实现组织结构和工作流程的优化重组,超越时间和空间及部门之间的分隔限制,向社会提供优质和全方位的、规范而透明的、符合国际水准的管理和服务。 二、电子政务的基本模式 1.政府部门内部的电子政务(E2E) 政府部门内部的电子政务就是通常所说的政府部门办公自动化(OA)2.政府之间的电子政务(G2G) 政府之间的电子政务包括首脑机关与中央和地方政府组成部门之间、中央政府与各级地方政府之间、政府的各个部门之间、政府与公务员和其他工作人员之间的互动。 3.政府与企业之间的电子政务(G2B、B2G) 政府与企业之间的电子政务是指政府通过网络进行采购与招标,快捷迅速地为企业提供各种信息服务;企业通过网络进行税务申报、办理证照等事务。 4.政府与公众之间的电子政务(G2C、C2G) 政府与公众之间的电子政务是指政府通过电子网络系统为公众提供的各种服务。 三、中国政府上网的内容主要包括 1、政府职能上网:即将政府本身及其各部门的职能、职责、组织机构、办事程序、规章制度等在网上发布。 2、信息上网:即在网上公布政府部门各项活动,把网络作为政务公开的一个渠道。 3、网上办公:建立一个文件资料电子化中心,将各种证明和文件电子化,提高办事效率。 4、网上专业市场交易:目前中国大多数的部委和各级部门已经不同程度的上网,应用项目的实现由此进人良性循环。 四、电子政务建设现状 1993 年底,为适应全球建设信息高速度公路的潮流,中国正式启动了国民经济信息化的起步工程一“三金工程”即金桥工程、金关工程和金卡工程。金桥工程,属于信息化的基础设施建设,是中国信息高速公路的主体。 目前我国电子政务建设工作主要围绕 “ 两网一站四库十二金 ” 重点展开。 “两网”,是指政务内网和政务外网,“一站”,是政府门户网站,“四库”,即建立人口、法人单位、空间地理和自然资源、宏观经济等四个基础数据库,“十二金”工程,是指重点推进办公业务资源系统等十二个业务系统。 这 12 个重点业务系统又可以分为三类,一类是对加强监管、提高效率和推进公共服务起到核心作用的办公业务资源系统、宏观经济管理系统建设; 喷泉模型主要用于描述面向对象的开发过程。喷泉一词体现了面向对象开发过程的迭代一无间隙特征。迭代意味着模型中的开发活动常常需要多次重复,在迭代过程中不断地完善软件系统。无间隙是指在开发活动(如分析、设计、编码)之间不存在明显的边界,也就是说,它不像瀑存模型那样,需求分析活动结束后才开始设计活动,设计活动结束后才开始编码活动,而是允许各开发活动交叉、迭代地进行。 4.3 需求分析 一、需求分析概述 需求分析是指在充分了解客户情况,包括客户生产、财务及管理流程后,与客户一起计论对系统的具体要求,钍对其现行体制中的不足及目前所需的信息,制定一套用户对系统的需求方案。 二、需求分析的任务 需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。具体来说有以下几点: 1、确定软件系统的综合要求; 2、分析软件系统的数据要求; 3、导了系统的逻辑模型; 4、修正项目开发计划; 5、如有必要,开发一个原型系统。 三、需求分析方法 常见的需求分析方法有结构化分析方法和面向对象分析方法。 1、结构化分析方法(structured analysis)简称SA方法,它是面向数据流的需求分析方法,适用于大型数据处理系统。 (1)数据流图(DFD,Data Flow Diagram):数据流图用来描述数据流从输入到输出的变换过程。数据流图的基本成分有数据流、加工、文件、源/宿等。 (2)数据词典:数据词典就是为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项作出说明,其中对加工的描述称为“小说明”,也称为“加工逻辑说明”。 2、面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA模型由5个层次(主题层、对象层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。 4.4 软件复用 软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。是期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识,开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。 目前及近期的未来最有可能产生显著效益的复用是对软件生命周期中一些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为如下的复用组别: 1、代码的复用 包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久。当前大部第二篇:openwrt学习总结
第三篇:openwrt升级功能流程简介
第四篇:AutoCad教程总结
第五篇:公务员计算机教程总结