SQL
基础知识
1.
SELECT
命令
SELECT 姓名 FROM 职员档案表 WHERE 年龄 >25
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 年龄 =18
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 年龄 >16 AND DA. 年龄 <35
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 年龄 BETWEEN 16 AND 35
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 部门 =” 技术部 ” OR DA. 部门 =” 信息部 ”
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 部门 IN(” 技术部 ”,” 信息部 ”)
MS SQL 通配符
SELECT * FROM 职员档案表 AS DA WHERE 姓名 LIKE ‘ 李 % ’ //”%” 表示任意字符
SELECT * FROM 职员档案表 AS DA WHERE 编号 LIKE ‘02_’ //”_ 表示任意一个字符
ACCESS 通配符
SELECT * FROM 职员档案表 AS DA WHERE DA. 姓名 LIKE ‘ 李 * ’ //”*” 表示任意字符
SELECT * FROM 职员档案表 AS DA WHERE DA. 部门 LIKE ’’? 术部 ” //”?” 表示任意一个字符
SELECT * FROM 职员档案表 AS DA WHERE DA. 编号 LIKE ’’02#” //”#” 表示任意一个数字
ORDER BY 排序
SELECT * FROM 职员档案表 AS DA ORDER BY DA. 年龄 >18 DESC //DESC 降序
SELECT * FROM 职员档案表 AS DA ORDER BY DA. 部门 ,DA. 薪金 DESC // 先将相同部门列在一起 , 然后按薪金降序排列
DISTINCT 和 ALL 和 聚合函数
SELECT 所在城市 AS 城市 DISTINCT FROM 职员档案表 //DISTINCT 只能使用一次 , 视为首词
SELECT AVG( ALL 薪金 ) AS ‘ 平均工资 ’ FROM 职员档案表 // 显示 :2633.33 ALL 默认可选
SELECT AVG( DISTINCT 薪金 ) AS ‘ 平均工资 ’ FROM 职员档案表 // 显示 :1676.20 因为 DISTINCT 会忽略掉相同工资中的其它项
SELECT COUNT ( 编号 ) AS ‘ 总人数 ’ FROM 职员档案表
SELECT COUNT (*) AS ‘ 记录数 ’ FROM 职员档案表
SELECT MAX ( 年龄 ) AS ‘ 最大年龄 ’ FROM 职员档案表
SELECT MIN ( 薪金 ) AS ‘ 最低工资 ’ FROM 职员档案表
GROUP BY : 按某字段对数据进行分组汇总 ( 显示 )
SELECT 部门 ,COUNT( 编号 ) AS 人数总数 ,AVG( 年龄 ) AS 平均年龄 ,SUM( 薪金 ) AS 薪金总数 FROM 职员档案表 GROUP BY 部门 // 注意 , ” 部门 ” 是分组字段 , 其它都使用了聚合函数 , 而 GROUP BY 后面只能使用使用分组字段
SELECT 部门 ,COUNT( 编号 ) AS 人数总数 ,AVG( 年龄 ) AS 平均年龄 ,SUM( 薪金 ) AS 薪金总数 FROM 职员档案表 GROUP BY 部门 HAVING 部门 = 技术部 //HAVING 只能在 GROUP BY 后面
INNER JOIN ON : 内连接
SELECT DA. 编号 ,DA. 姓名 ,DA. 部门 FROM 职员档案表 AS DA INNER JOIN 部门信息表 AS BM ON DA. 部门 =BM. 编号
SELECT * FROM( 职员档案表 AS DA INNER JOIN 部门信息表 AS BM ON DA. 部门 =BM. 编号 ) INNER JOIN 负责人信息表 AS FZR ON DA. 编号 =FZR. 编号
SELECT 姓名 FROM 职员档案表 WHERE 年龄 >25
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 年龄 =18
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 年龄 >16 AND DA. 年龄 <35
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 年龄 BETWEEN 16 AND 35
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 部门 =” 技术部 ” OR DA. 部门 =” 信息部 ”
SELECT 姓名 FROM 职员档案表 AS DA WHERE DA. 部门 IN(” 技术部 ”,” 信息部 ”)
MS SQL 通配符
SELECT * FROM 职员档案表 AS DA WHERE 姓名 LIKE ‘ 李 % ’ //”%” 表示任意字符
SELECT * FROM 职员档案表 AS DA WHERE 编号 LIKE ‘02_’ //”_ 表示任意一个字符
ACCESS 通配符
SELECT * FROM 职员档案表 AS DA WHERE DA. 姓名 LIKE ‘ 李 * ’ //”*” 表示任意字符
SELECT * FROM 职员档案表 AS DA WHERE DA. 部门 LIKE ’’? 术部 ” //”?” 表示任意一个字符
SELECT * FROM 职员档案表 AS DA WHERE DA. 编号 LIKE ’’02#” //”#” 表示任意一个数字
ORDER BY 排序
SELECT * FROM 职员档案表 AS DA ORDER BY DA. 年龄 >18 DESC //DESC 降序
SELECT * FROM 职员档案表 AS DA ORDER BY DA. 部门 ,DA. 薪金 DESC // 先将相同部门列在一起 , 然后按薪金降序排列
DISTINCT 和 ALL 和 聚合函数
SELECT 所在城市 AS 城市 DISTINCT FROM 职员档案表 //DISTINCT 只能使用一次 , 视为首词
SELECT AVG( ALL 薪金 ) AS ‘ 平均工资 ’ FROM 职员档案表 // 显示 :2633.33 ALL 默认可选
SELECT AVG( DISTINCT 薪金 ) AS ‘ 平均工资 ’ FROM 职员档案表 // 显示 :1676.20 因为 DISTINCT 会忽略掉相同工资中的其它项
SELECT COUNT ( 编号 ) AS ‘ 总人数 ’ FROM 职员档案表
SELECT COUNT (*) AS ‘ 记录数 ’ FROM 职员档案表
SELECT MAX ( 年龄 ) AS ‘ 最大年龄 ’ FROM 职员档案表
SELECT MIN ( 薪金 ) AS ‘ 最低工资 ’ FROM 职员档案表
GROUP BY : 按某字段对数据进行分组汇总 ( 显示 )
SELECT 部门 ,COUNT( 编号 ) AS 人数总数 ,AVG( 年龄 ) AS 平均年龄 ,SUM( 薪金 ) AS 薪金总数 FROM 职员档案表 GROUP BY 部门 // 注意 , ” 部门 ” 是分组字段 , 其它都使用了聚合函数 , 而 GROUP BY 后面只能使用使用分组字段
SELECT 部门 ,COUNT( 编号 ) AS 人数总数 ,AVG( 年龄 ) AS 平均年龄 ,SUM( 薪金 ) AS 薪金总数 FROM 职员档案表 GROUP BY 部门 HAVING 部门 = 技术部 //HAVING 只能在 GROUP BY 后面
INNER JOIN ON : 内连接
SELECT DA. 编号 ,DA. 姓名 ,DA. 部门 FROM 职员档案表 AS DA INNER JOIN 部门信息表 AS BM ON DA. 部门 =BM. 编号
SELECT * FROM( 职员档案表 AS DA INNER JOIN 部门信息表 AS BM ON DA. 部门 =BM. 编号 ) INNER JOIN 负责人信息表 AS FZR ON DA. 编号 =FZR. 编号
2.
INSERT
命令
INSERT INTO 职员档案表 VALUES (0011,’ 王五 ’,25,’ 信息部 ’,2500)
INSERT INTO 职员档案表 VALUES (0011,’ 王五 ’,25,’ 信息部 ’,2500)
3.
UPDATE
命令
UPDATE 职员档案表 AS DA SET DA. 部门 =’ 销售部 ’ WHERE DA. 年龄 <35
UPDATE 职员档案表 AS DA SET DA. 薪金 *1.1
UPDATE 职员档案表 AS DA SET DA. 部门 =’ 销售部 ’ WHERE DA. 年龄 <35
UPDATE 职员档案表 AS DA SET DA. 薪金 *1.1
4.
DELETE
命令
DELETE FROM 职员档案表
DELETE FROM 职员档案表 AS DA WHERE DA. 姓名 =’ 王五 ’
DELETE FROM 职员档案表 AS DA INNER JOIN 部门信息表 AS BM ON DA. 部门 =BM. 编号 WHERE DA. 姓名 =’ 王五 ’ // 删除与此人相关的其它的表的信息
DELETE FROM 职员档案表
DELETE FROM 职员档案表 AS DA WHERE DA. 姓名 =’ 王五 ’
DELETE FROM 职员档案表 AS DA INNER JOIN 部门信息表 AS BM ON DA. 部门 =BM. 编号 WHERE DA. 姓名 =’ 王五 ’ // 删除与此人相关的其它的表的信息
5.
BACKUP
命令
BACKUP DATABASE 职员档案表 TO DISK=’c:/bak/2007-6-18.bak’
BACKUP DATABASE 职员档案表 TO DISK=’c:/bak/2007-6-18.bak’
6.
RESTORE
命令
RESTORE DATABASE 职员档案表 FROM DISK=’c:/bak/2007-6-18.bak’
RESTORE DATABASE 职员档案表 FROM DISK=’c:/bak/2007-6-18.bak’
网络基础知识
1.
SOI
模型
物理层 、数据链路层、网络层、传输层、会话层、表示层、应用层
各层功能和作用的简单归纳:
由物理层正确利用传输介质,数据链路层走通每个节点,网络层选择路由,传输层找到对方主机,会话层指出对方实体是谁,表示层决定用什么语言交谈,应用层指出做什么事。
物理层 :在传输媒体上传输原始的数据比特流; (10BASE T 、 10BASE TX 、 V.35 、 RS-232)
数据链路层 :在两个或多个网络实体间建立一条逻辑通道; ( 以太网、 IEEE802.3 、令牌环、 IEEE802.5 、 HDLC 、 PPP)
网络层 :路由; (IP 、 IPX)
传输层 :端对端,即主机到主机的层次; (TCP/IP----TCP 和 UDP 、 NOVELL---IPX)
会话层 :允许不同主机上各种进程之间进行会话,即进程到进程之间的层次; ( NFS 、 SQL 、 RPC 、 X-WINDOWS 、 ASP ( APPTALK 会话协议)、 SCP )
表示层 :为上层提供共同需要的数据或信息语法表示变换; ( ASCII , EBCDIC )
应用层 :文件传送、数据库访问等等。 (TELNET 、 FTP 、 TFTP 、 SMTP 、 SNMP 、 HTTP 、 BOOTP 、 DHCP)
物理层 、数据链路层、网络层、传输层、会话层、表示层、应用层
各层功能和作用的简单归纳:
由物理层正确利用传输介质,数据链路层走通每个节点,网络层选择路由,传输层找到对方主机,会话层指出对方实体是谁,表示层决定用什么语言交谈,应用层指出做什么事。
物理层 :在传输媒体上传输原始的数据比特流; (10BASE T 、 10BASE TX 、 V.35 、 RS-232)
数据链路层 :在两个或多个网络实体间建立一条逻辑通道; ( 以太网、 IEEE802.3 、令牌环、 IEEE802.5 、 HDLC 、 PPP)
网络层 :路由; (IP 、 IPX)
传输层 :端对端,即主机到主机的层次; (TCP/IP----TCP 和 UDP 、 NOVELL---IPX)
会话层 :允许不同主机上各种进程之间进行会话,即进程到进程之间的层次; ( NFS 、 SQL 、 RPC 、 X-WINDOWS 、 ASP ( APPTALK 会话协议)、 SCP )
表示层 :为上层提供共同需要的数据或信息语法表示变换; ( ASCII , EBCDIC )
应用层 :文件传送、数据库访问等等。 (TELNET 、 FTP 、 TFTP 、 SMTP 、 SNMP 、 HTTP 、 BOOTP 、 DHCP)
2.
协议
TCP/IP (Transmission Control Protocol/Internet Protocol)
即传输控制协议 / 互联网络协议是 Internet 最基本的协议,简单地说,就是由底层的 IP 协议和 TCP 协议组成的。
HTTP (Hyper Text Transfer Protocol)
即超文本传输协议是一种 Internet 上最常见的协议 , 用于传输超文本标记语言 (HTML--Hyper Text Markup Language) 写的文件,也就是我们通常说的网页,通过这个协议 , 我们可以浏览网络上的各种信息,在浏览器上看到丰富多彩的文字与图片。
UDP (UserDatagramProtocol)
即用户数据报协议 , 主要用来支持那些需要在计算机之间传输数据的网络应用。它是面向非连接的,是不可靠的(有如我们到邮局去寄信,对方不一定能收到)。
TCP(Transmission Control Protocol)
即传输控制协议,是 Internet 最基本的协议 。它是面向连接的,是可靠的(有如我们打电话,必须先连通之后才能通话,此时相会通话时可靠的)。
FTP(File Transfer Protocol)
即文件传输协议,使得主机间可以共享文件。它提供文件的共享、支持间接使用远程计算机、使用户不因各类主机文件存储器系统的差异而受影响、可靠且有效的传输数据。
TELNET(TCP/IP Terminal Emulation Protocol)
即 TCP/IP 环境下的终端仿真协议 , 通过 TCP 建立服务器与客户机之间的连接。 连接之后, TELNET 服务器与客户机进入协商阶段 ( 决定可选项 ) ,选定双方都支持连接操作,每个连接系统可以协商新可选项或重协商旧可选项 ( 在任何时候 ) 。通常 TELNET 任一端尽量执行所有可选项以实现系统最大化性能。
SMTP(Simple Mail Transfer Protocol)
即电子邮件传输的协议。 SMTP 是建模在 FTP 文件传输服务上的一种有效可靠的邮件服务 , 主要用于传输系统之间的邮件信息并提供来信有关的通知。 SMTP 独立于特定的传输子系统 , 且只需要可靠有序的数据流信道支持。 SMTP 重要特性之一是其能跨越网络传输邮件,即 "SMTP 邮件中继 " 。
POP3(Post Office Protocol)
即邮局协议第 3 版 , 它允许工作站动态访问服务器上的邮件,目前已发展到第三版,称为 POP3 。 POP3 允许工作站检索邮件服务器上的邮件。 POP3 传输的是数据消息,这些消息可以是指令,也可以是应答。
LDAP(Lightweighted Directory Access Protocol), 即轻量级目录访问协议。
TCP/IP (Transmission Control Protocol/Internet Protocol)
即传输控制协议 / 互联网络协议是 Internet 最基本的协议,简单地说,就是由底层的 IP 协议和 TCP 协议组成的。
HTTP (Hyper Text Transfer Protocol)
即超文本传输协议是一种 Internet 上最常见的协议 , 用于传输超文本标记语言 (HTML--Hyper Text Markup Language) 写的文件,也就是我们通常说的网页,通过这个协议 , 我们可以浏览网络上的各种信息,在浏览器上看到丰富多彩的文字与图片。
UDP (UserDatagramProtocol)
即用户数据报协议 , 主要用来支持那些需要在计算机之间传输数据的网络应用。它是面向非连接的,是不可靠的(有如我们到邮局去寄信,对方不一定能收到)。
TCP(Transmission Control Protocol)
即传输控制协议,是 Internet 最基本的协议 。它是面向连接的,是可靠的(有如我们打电话,必须先连通之后才能通话,此时相会通话时可靠的)。
FTP(File Transfer Protocol)
即文件传输协议,使得主机间可以共享文件。它提供文件的共享、支持间接使用远程计算机、使用户不因各类主机文件存储器系统的差异而受影响、可靠且有效的传输数据。
TELNET(TCP/IP Terminal Emulation Protocol)
即 TCP/IP 环境下的终端仿真协议 , 通过 TCP 建立服务器与客户机之间的连接。 连接之后, TELNET 服务器与客户机进入协商阶段 ( 决定可选项 ) ,选定双方都支持连接操作,每个连接系统可以协商新可选项或重协商旧可选项 ( 在任何时候 ) 。通常 TELNET 任一端尽量执行所有可选项以实现系统最大化性能。
SMTP(Simple Mail Transfer Protocol)
即电子邮件传输的协议。 SMTP 是建模在 FTP 文件传输服务上的一种有效可靠的邮件服务 , 主要用于传输系统之间的邮件信息并提供来信有关的通知。 SMTP 独立于特定的传输子系统 , 且只需要可靠有序的数据流信道支持。 SMTP 重要特性之一是其能跨越网络传输邮件,即 "SMTP 邮件中继 " 。
POP3(Post Office Protocol)
即邮局协议第 3 版 , 它允许工作站动态访问服务器上的邮件,目前已发展到第三版,称为 POP3 。 POP3 允许工作站检索邮件服务器上的邮件。 POP3 传输的是数据消息,这些消息可以是指令,也可以是应答。
LDAP(Lightweighted Directory Access Protocol), 即轻量级目录访问协议。
3.
端口
概念:
计算机 " 端口 " 是英文 port 的义译,可以认为是 计算机 与外界通讯交流的出口。其中 硬件 领域的端口又称 接口 ,如: USB 端口、串行端口等。软件领域的端口一般指 网络 中面向连接服务和无连接服务的通信协议端口 ,是一种抽象的软件结构,包括一些数据结构和 I/O (基本输入输出)缓冲区。
常用端口:
8080
8080 端口同 80 端口,是被用于 WWW 代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上 “:8080” 端口号,比如 http://www.cce.com.cn:8080 。
21 ( FTP )
FTP 服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开 anonymous 的 FTP 服务器的方法。这些服务器带有可读写的目录。木马 Doly Trojan 、 Fore 、 Invisible FTP 、 WebEx 、 WinCrash 和 Blade Runner 所开放的端口。
23 ( Telnet )
远程登录,入侵者在搜索远程登录 UNIX 的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。
25 ( SMTP )
SMTP 服务器所开放的端口,用于发送邮件。入侵者寻找 SMTP 服务器是为了传递他们的 SPAM 。入侵者的帐户被关闭,他们需要连接到高带宽的 E-MAIL 服务器上,将简单的信息传递到不同的地址。
80 ( HTTP )
用于网页浏览。
聊一聊端口:
周知端口 :是众所周知的端口号,范围从 0 到 1023 ,其中 80 端口分配给 W WW 服务, 21 端口分配给 FTP 服务等。
动态端口 :范围是从 1024 到 65535 。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。
查看端口 :在 Windows 2000/XP 中,可以在命令提示符下使用 “netstat -an” 查 看系统端口 状态,可以列出系统正在开放的端口号及其状态.
常常在网络上听说『我的主机开了多少的 port ,会不会被入侵呀!?』或者是说『开那个 port 会比较安全?又,我的服务应该对应什么 port 呀!?』呵呵!很神奇吧!怎么一部主机上面有这么多的奇怪的 port 呢?这个 port 有什么作用呢?
由于每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,所以啰,当你的主机同时开启了 FTP 与 WWW 服务的时候,那么别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理,当然就不会搞乱啰!(注:嘿嘿!有些很少接触到网络的朋友,常常会问说:『咦!为什么你的计算机同时有 FTP 、 WWW 、 E-Mail 这么多服务,但是人家传资料过来,你的计算机怎么知道如何判断?计算机真的都不会误判吗?!』现在知道为什么了吗?!对啦!就是因为 port 不同嘛!你可以这样想啦,有一天,你要去银行存钱,那个银行就可以想成是『主机』,然后,银行当然不可能只有一种业务,里头就有相当多的窗口,那么你一进大门的时候,在门口的服务人员就会问你说:『嗨!你好呀!你要做些什么事?』你跟他说:『我要存钱呀!』,服务员接着就会告诉你:『喝!那么请前往三号窗口!那边的人员会帮您服务!』这个时候你总该不会往其它的窗口跑吧?! "" 这些窗口就可以想成是『 port 』啰!所以啦!每一种服务都有特定的 port 在监听!您无须担心计算机会误判的问题呦!)
概念:
计算机 " 端口 " 是英文 port 的义译,可以认为是 计算机 与外界通讯交流的出口。其中 硬件 领域的端口又称 接口 ,如: USB 端口、串行端口等。软件领域的端口一般指 网络 中面向连接服务和无连接服务的通信协议端口 ,是一种抽象的软件结构,包括一些数据结构和 I/O (基本输入输出)缓冲区。
常用端口:
8080
8080 端口同 80 端口,是被用于 WWW 代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上 “:8080” 端口号,比如 http://www.cce.com.cn:8080 。
21 ( FTP )
FTP 服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开 anonymous 的 FTP 服务器的方法。这些服务器带有可读写的目录。木马 Doly Trojan 、 Fore 、 Invisible FTP 、 WebEx 、 WinCrash 和 Blade Runner 所开放的端口。
23 ( Telnet )
远程登录,入侵者在搜索远程登录 UNIX 的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。
25 ( SMTP )
SMTP 服务器所开放的端口,用于发送邮件。入侵者寻找 SMTP 服务器是为了传递他们的 SPAM 。入侵者的帐户被关闭,他们需要连接到高带宽的 E-MAIL 服务器上,将简单的信息传递到不同的地址。
80 ( HTTP )
用于网页浏览。
聊一聊端口:
周知端口 :是众所周知的端口号,范围从 0 到 1023 ,其中 80 端口分配给 W WW 服务, 21 端口分配给 FTP 服务等。
动态端口 :范围是从 1024 到 65535 。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。
查看端口 :在 Windows 2000/XP 中,可以在命令提示符下使用 “netstat -an” 查 看系统端口 状态,可以列出系统正在开放的端口号及其状态.
常常在网络上听说『我的主机开了多少的 port ,会不会被入侵呀!?』或者是说『开那个 port 会比较安全?又,我的服务应该对应什么 port 呀!?』呵呵!很神奇吧!怎么一部主机上面有这么多的奇怪的 port 呢?这个 port 有什么作用呢?
由于每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,所以啰,当你的主机同时开启了 FTP 与 WWW 服务的时候,那么别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理,当然就不会搞乱啰!(注:嘿嘿!有些很少接触到网络的朋友,常常会问说:『咦!为什么你的计算机同时有 FTP 、 WWW 、 E-Mail 这么多服务,但是人家传资料过来,你的计算机怎么知道如何判断?计算机真的都不会误判吗?!』现在知道为什么了吗?!对啦!就是因为 port 不同嘛!你可以这样想啦,有一天,你要去银行存钱,那个银行就可以想成是『主机』,然后,银行当然不可能只有一种业务,里头就有相当多的窗口,那么你一进大门的时候,在门口的服务人员就会问你说:『嗨!你好呀!你要做些什么事?』你跟他说:『我要存钱呀!』,服务员接着就会告诉你:『喝!那么请前往三号窗口!那边的人员会帮您服务!』这个时候你总该不会往其它的窗口跑吧?! "" 这些窗口就可以想成是『 port 』啰!所以啦!每一种服务都有特定的 port 在监听!您无须担心计算机会误判的问题呦!)
4.
IP
地址
基本地址格式
现在的 IP 网络使用 32 位地址,以点分十进制表示,如 172.16.0.0 。
地址格式为: IP 地址 = 网络地址+主机地址 或 IP 地址 = 主机地址+子网地址+主机地址。
IP 地址类型
最初设计互联网络时,为了便于寻址以及层次化构造网络,每个 IP 地址包括两个标识码( ID ),即网络 ID 和主机 ID 。同一个物理网络上的所有主机都使用同一个网络 ID ,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机 ID 与其对应。 IP 地址根据网络 ID 的不同分为 5 种类型, A 类地址、 B 类地址、 C 类地址、 D 类地址和 E 类地址。
1 . A 类 IP 地址
一个 A 类 IP 地址由 1 字节的网络地址和 3 字节主机地址组成,网络地址的最高位必须是 “0” , 地址范围从 1.0.0 .0 到 126.0.0.0 。可用的 A 类网络有 126 个,每个网络能容纳 1 亿多个主机。
2 . B 类 IP 地址
一个 B 类 IP 地址由 2 个字节的网络地址和 2 个字节的主机地址组成,网络地址的最高位必须是 “10” ,地址范围从 128.0.0.0 到 191.255.255.255 。可用的 B 类网络有 16382 个,每个网络能容纳 6 万多个主机 。
3 . C 类 IP 地址
一个 C 类 IP 地址由 3 字节的网络地址和 1 字节的主机地址组成,网络地址的最高位必须是 “110” 。范围从 192.0.0.0 到 223.255.255.255 。 C 类网络可达 209 万余个,每个网络能容纳 254 个主机。 ( 加上 网络地址 和 广播地址 就是 256 个 )
4 . D 类地址用于多点广播( Multicast )。
D 类 IP 地址第一个字节以 “lll0” 开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播( Multicast )中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
5 . E 类 IP 地址
以 “llll0” 开始,为将来使用保留。
全零( “0 . 0 . 0 . 0” )地址对应于当前主机。全 “1” 的 IP 地址( “255 . 255 . 255 . 255” )是当前子网的广播地址。
在 IP 地址 3 种主要类型里,各保留了 3 个区域作为私有地址,其地址范围如下:
A 类地址: 10.0.0.0 ~ 10.255.255.255
B 类地址: 172.16.0.0 ~ 172.31.255.255
C 类地址: 192.168.0.0 ~ 192.168.255.255
基本地址格式
现在的 IP 网络使用 32 位地址,以点分十进制表示,如 172.16.0.0 。
地址格式为: IP 地址 = 网络地址+主机地址 或 IP 地址 = 主机地址+子网地址+主机地址。
IP 地址类型
最初设计互联网络时,为了便于寻址以及层次化构造网络,每个 IP 地址包括两个标识码( ID ),即网络 ID 和主机 ID 。同一个物理网络上的所有主机都使用同一个网络 ID ,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机 ID 与其对应。 IP 地址根据网络 ID 的不同分为 5 种类型, A 类地址、 B 类地址、 C 类地址、 D 类地址和 E 类地址。
1 . A 类 IP 地址
一个 A 类 IP 地址由 1 字节的网络地址和 3 字节主机地址组成,网络地址的最高位必须是 “0” , 地址范围从 1.0.0 .0 到 126.0.0.0 。可用的 A 类网络有 126 个,每个网络能容纳 1 亿多个主机。
2 . B 类 IP 地址
一个 B 类 IP 地址由 2 个字节的网络地址和 2 个字节的主机地址组成,网络地址的最高位必须是 “10” ,地址范围从 128.0.0.0 到 191.255.255.255 。可用的 B 类网络有 16382 个,每个网络能容纳 6 万多个主机 。
3 . C 类 IP 地址
一个 C 类 IP 地址由 3 字节的网络地址和 1 字节的主机地址组成,网络地址的最高位必须是 “110” 。范围从 192.0.0.0 到 223.255.255.255 。 C 类网络可达 209 万余个,每个网络能容纳 254 个主机。 ( 加上 网络地址 和 广播地址 就是 256 个 )
4 . D 类地址用于多点广播( Multicast )。
D 类 IP 地址第一个字节以 “lll0” 开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播( Multicast )中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
5 . E 类 IP 地址
以 “llll0” 开始,为将来使用保留。
全零( “0 . 0 . 0 . 0” )地址对应于当前主机。全 “1” 的 IP 地址( “255 . 255 . 255 . 255” )是当前子网的广播地址。
在 IP 地址 3 种主要类型里,各保留了 3 个区域作为私有地址,其地址范围如下:
A 类地址: 10.0.0.0 ~ 10.255.255.255
B 类地址: 172.16.0.0 ~ 172.31.255.255
C 类地址: 192.168.0.0 ~ 192.168.255.255
5.
子网掩码
子网掩码是标志两个 IP 地址是否同属于一个子网的。
A 类地址缺省子网掩码: 255.0.0.0
B 类地址缺省子网掩码: 255.255.0.0
C 类地址缺省子网掩码: 255.255.255.0
子网掩码的计算 :
1 、欲将 B 类 IP 地址 168.195.0.0 划分成 27 个子网:
1 ) 27=11011
2 )该二进制为五位数, N = 5
3 )将 B 类地址的子网掩码 255.255.0.0 的主机地址前 5 位置 1 ,得到 255.255.248.0
2 、将 B 类 IP 地址 168.195.0.0 划分成若干子网,每个子网内有主机 700 台:
1 ) 700=1010111100
2 )该二进制为十位数, N = 10
3 )将该 B 类地址的子网掩码 255.255.0.0 的主机地址全部置 1 ,得到 255.255.255.255
4 )然后再从后向前将后 10 位置 0, 即为: 11111111.11111111.11111100.00000000
5 )子网掩码即 255.255.252.0 。
3 、 一个主机的 IP 地址是 202.112.14.137 ,掩码是 255.255.255.224 ,要求计算这个主机所在网络的网络地址和广播地址。
算法一:
1 ) 256-224 = 32 ,我们知道这个子网只能容纳 32 个 IP 地址(包括网络地址和广播地址)
2 )这种掩码的网络地址一定是 32 的倍数,而网络地址是子网 IP 地址的开始 ,广播地址是结束。
3 )因此略小于 137 而又是 32 的倍数的只有 128 。因此网络地址就是 255.255.255.128
4 )而子网掩码等于 128+32-1=159 ,因为子网掩码就是 255.255.255.159
算法一自注:
1 )注意,划分的任意一个子网内,必然有两个地址属于 网络地址 和广播地址;
2 )网络地址 是子网 IP 地址的开始,广播地址 是子网 IP 地址的结束;
3 )为什么第 4 步要 -1 ,当然啦,不减的话就变成可容纳 33 个地址了,自己扒扒手指头。
算法二:
1 )将 202.112.14.137 和 255.255.255.224 转换成二进制相与。
2 )得到网络地址 255.255.255.128
3 )子网掩码等于 128+32-1=159 ,因为子网掩码就是 255.255.255.159
算法二自注:
1 )此方法没有上面方法灵活,但易理解,不容易错。
2 )其实第一步,你只要将 137 和 224 转换成二进制相与就行了,其它其实都不变的。
3 、 根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有 10 台主机,那么对于这个子网需要的 IP 地址是:
1 ) 10+1+1+1 = 13
2 )第一个 1 是指这个网络连接时所需的网关地址,接着的两个 1 分别是指网络地址和广播地址
3 )因为 13 小于 16 ( 16 等于 2 的 4 次方),所以主机位为 4 位
4 ) 256-16-240 ,所以该子网掩码为 255.255.255.240
自注:
1 )如果一个子网有 14 台主机,不少人常犯的错误是:依然分配具有 16 个地址空间的子网
2 )因为 14 + 1 + 1 + 1 = 17 , 17 大于 16 ,所以只能分配具有 32 个地址( 2 的 5 次方 =32 )
3 )这时子网掩码为: 255.255.255.224
子网掩码是标志两个 IP 地址是否同属于一个子网的。
A 类地址缺省子网掩码: 255.0.0.0
B 类地址缺省子网掩码: 255.255.0.0
C 类地址缺省子网掩码: 255.255.255.0
子网掩码的计算 :
1 、欲将 B 类 IP 地址 168.195.0.0 划分成 27 个子网:
1 ) 27=11011
2 )该二进制为五位数, N = 5
3 )将 B 类地址的子网掩码 255.255.0.0 的主机地址前 5 位置 1 ,得到 255.255.248.0
2 、将 B 类 IP 地址 168.195.0.0 划分成若干子网,每个子网内有主机 700 台:
1 ) 700=1010111100
2 )该二进制为十位数, N = 10
3 )将该 B 类地址的子网掩码 255.255.0.0 的主机地址全部置 1 ,得到 255.255.255.255
4 )然后再从后向前将后 10 位置 0, 即为: 11111111.11111111.11111100.00000000
5 )子网掩码即 255.255.252.0 。
3 、 一个主机的 IP 地址是 202.112.14.137 ,掩码是 255.255.255.224 ,要求计算这个主机所在网络的网络地址和广播地址。
算法一:
1 ) 256-224 = 32 ,我们知道这个子网只能容纳 32 个 IP 地址(包括网络地址和广播地址)
2 )这种掩码的网络地址一定是 32 的倍数,而网络地址是子网 IP 地址的开始 ,广播地址是结束。
3 )因此略小于 137 而又是 32 的倍数的只有 128 。因此网络地址就是 255.255.255.128
4 )而子网掩码等于 128+32-1=159 ,因为子网掩码就是 255.255.255.159
算法一自注:
1 )注意,划分的任意一个子网内,必然有两个地址属于 网络地址 和广播地址;
2 )网络地址 是子网 IP 地址的开始,广播地址 是子网 IP 地址的结束;
3 )为什么第 4 步要 -1 ,当然啦,不减的话就变成可容纳 33 个地址了,自己扒扒手指头。
算法二:
1 )将 202.112.14.137 和 255.255.255.224 转换成二进制相与。
2 )得到网络地址 255.255.255.128
3 )子网掩码等于 128+32-1=159 ,因为子网掩码就是 255.255.255.159
算法二自注:
1 )此方法没有上面方法灵活,但易理解,不容易错。
2 )其实第一步,你只要将 137 和 224 转换成二进制相与就行了,其它其实都不变的。
3 、 根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有 10 台主机,那么对于这个子网需要的 IP 地址是:
1 ) 10+1+1+1 = 13
2 )第一个 1 是指这个网络连接时所需的网关地址,接着的两个 1 分别是指网络地址和广播地址
3 )因为 13 小于 16 ( 16 等于 2 的 4 次方),所以主机位为 4 位
4 ) 256-16-240 ,所以该子网掩码为 255.255.255.240
自注:
1 )如果一个子网有 14 台主机,不少人常犯的错误是:依然分配具有 16 个地址空间的子网
2 )因为 14 + 1 + 1 + 1 = 17 , 17 大于 16 ,所以只能分配具有 32 个地址( 2 的 5 次方 =32 )
3 )这时子网掩码为: 255.255.255.224
6.
路由器、交换机