TCP/IP协议基础之一(概念解析)

ZDNet软件频道 时间:2009-12-06 作者:IXPUB技术社区 | IXPUB技术社区 我要评论()
本文关键词:TCP/IP 网络协议 TCP/IP协议
笔者将TCP/IP协议基础写成系列文章,此为第一篇,主要介绍了TCP/IP协议概念。

6、UDP

用户数据报协议UDP提供了无连接的数据报服务。它适用于无须应答并且通常一次只传送少量数据的应用软件。

UDP端口

端口作为多路复用的消息队列使用。

15 NETSTAT 网络状态
53 DOMAIN 域名服务器
69 TFTP 平凡文件传送协议
137 NETBIOS-NS NETBIOS命令服务
138 NETBIOS-DGM NETBIOS数据报服务
161 SNMP SNMP网络监视器

IP地址分配

1、IP地址

IP地址标识着网络中一个系统的位置。我们知道每个IP地址都是由两部分组成的:网络号和主机号。其中网络号标识一个物理的网络,同一个网络上所有主机需要同一个网络号,该号在互联网中是唯一的;而主机号确定网络中的一个工作端、服务器、路由器其它TCP/IP主机。对于同一个网络号来说,主机号是唯一的。每个TCP/IP主机由一个逻辑IP地址确定。

网络号和主机号

IP地址有两种表示形式:二进制表示(1和0太多了就搞不清)和点分十进制表示。每个IP地址的长度为4字节,由四个8位域组成,我们通常称之为八位体。八位体由句点.分开,表示为一个0-255之间的十进制数。一个IP地址的4个域分别标明了网络号和主机号。

2、地址类型

为适应不同大小的网络,internet定义了5种IP地址类型。

可以通过IP地址的前八位来确定地址的类型:

类型 IP形式 网络号 主机号
A类 w.x.y.z w x.y.z
B类 w.x.y.z w.x y.z
C类 w.x.y.z w.x.y z

我们来看一下这5类地址:

A类地址:可以拥有很大数量的主机,最高位为0,紧跟的7位表示网络号,余24位表示主机号,总共允许有126个网络。
B类地址:被分配到中等规模和大规模的网络中,最高两位总被置于二进制的10,允许有16384个网络。
C类地址:被用于局域网。高三位被置为二进制的110,允许大约200万个网络。
D类地址:被用于多路广播组用户,高四位总被置为1110,余下的位用于标明客户机所属的组。
E类地址是一种仅供试验的地址。

3、地址分配指南

在分配网络号和主机号时应遵守以下几条准则:

(1)网络号不能为127。大家知道该标识号被保留作回路及诊断功能,还记得平时ping 127.0.0.1?
(2)不能将网络号和主机号的各位均置1。如果每一位都是1的话,该地址会被解释为网内广播而不是一个主机号。(TCP/IP是一个可广播的协议嘛)
(3)相应于上面一条,各位均不能置0,否则该地址被解释为“就是本网络”。
(4)对于本网络来说,主机号应该是唯一。(否则会出现IP地址已分配或有冲突之类的错误)

分配网络号

对于每个网络以及广域连接,必须有唯一的网络号,主机号用于区分同一物理网络中的不同主机。如果网络由路由器连接,则每个广域连接都需要唯一的网络号。

分配主机号

主机号用于区分同一网络中不同的主机,并且主机号应该是唯一的。所有的主机包括路由器间的接口,都应该有唯一的网络号。路由器的主机号,要配置成工作站的缺省网关地址。

有效的主机号

A类:w.0.0.1--w.255.255.254
B类:w.x.0.1--w.x.255.254
C类:w.x.y.1--w.x.y.254

4、子网屏蔽和IP地址

TCP/IP上的每台主机都需要用一个子网屏蔽号。它是一个4字节的地址,用来封装或“屏蔽”IP地址的一部分,以区分网络号和主机号。当网络还没有划分为子网时,可以使用缺省的子网屏蔽;当网络被划分为若干个子网时,就要使用自定义的子网屏蔽了。

缺省值

我们来看看缺省的子网屏蔽值,它用于一个还没有划分子网的网络。即使是在一个单段网络上,每台主机也都需要这样的缺省值。

它的形式依赖于网络的地址类型。在它的4个字节里,所有对应网络号的位都被置为1,于是每个八位体的十进制值都是255;所有对就主机号的位都置为0。例如:C类网地址192.168.0.1和相应的缺省屏蔽值255.255.255.0。

确定数据包的目的地址

我们说把屏蔽值和IP地址值做“与”的操作其实是一个内部过程,它用来确定一个数据包是传给本地还是远程网络上的主机。其相应的操作过程是这样的:当TCP/IP初始化时,主机的IP地址和子网屏蔽值相“与”。在数据包被发送之前,再把目的地址也和屏蔽值作“与”,这样如果发现源IP地址和目的IP地址相匹配,IP协议就知道数据包属于本地网上的某台主机;否则数据包将被送到路由器上。

注:我们知道“与”操作是将IP地址中的每一位与子网屏蔽中相应的位按逻辑与作比较。

建立子网

1、 子网简介

一个网络实际上可能会有多个物理网段,我们把这些网段称之为子网,其使用的IP地址是由某个网络号派生而得到的。

将一个网络划分成若干个子网,需要使用不同的网络号或子网号。当然了,划分子网有它的优点,通过划分子网,每个单位可以将复杂的物理网段连接成一个网络,并且可以:

(1) 混合使用多种技术,比如以太网和令牌环网。(最流行的两种接口都支持了哦)
(2) 克服当前技术的限制,比如突破每段主机的最大数量限制。
(3) 通过重定向传输以及减少广播等传输方式以减轻网络的拥挤。

实现子网划分

在动手划分子网之前,我们一定要先分析一下自己的需求以及将来的规划。一般情况下我们遵循这样的准则:

(1) 确定网络中的物理段数量。(就是子网个数嘛)
(2) 确定每个子网需要的主机数。注意一个主机至少一个IP地址。
(3) 基于此需求,定义:整个网络的子网屏蔽、每个子网唯一的子网号和每个子网的主机号范围。

子网屏蔽位

在定义一个子网屏蔽之前,确定一下将来需要的子网数量及每子网的主机数是必不可少的一步。因为当更多的位用于子网屏蔽时,就有更多的可用子网了,但每个子网中的主机数将减少。(这和定义IP地址的概念正好相反)

2、定义子网屏蔽

将网络划分成若干个子网时,必须要定义好子网屏蔽。我们来看看定义的步骤:

(1)确定物理网段也就是子网的个数,并将这个数字转换成二进制数。比如B类地址,分6个子网就是110。
(2)计算物理网段数(子网数)的二进制位数,这里是110,所以需要3位。
(3)以高位顺序(从左到右)将这个反码转换成相应的十进制值,因为需要3位,就将主机号前3位作为子网号,这里是11100000,所以屏蔽就是255.255.254.0。

3、定义子网号

子网号与子网屏蔽的位数相同。

(1)列出子网号按高到低的顺序使用的位数。例如子网屏蔽使用了3位,二进制值是11100000。
(2)将最低的一位1转换成十进制,用这个值来定义子网的增量。这个例子中是1110,所以增量是32。
(3)用这个增量迭加从0开始的子网号,直到下一个值为256。这个例子中就是w.x.32.1-w.x.63.254、w.x.64.1-w.x.127.254等。

4、定义子网中的主机号

从上面的例子看出,一旦定义了子网号,就已经确定了每个子网的主机号了。我们在做每次增量后得出的值表明了子网中主机号范围的起始值。

确定每个子网中的主机数目

(1)计算主机号可用的位数。例如在B类网中用3位定义了网络号,那么余下的13位定义了主机号。
(2)将这个余下的位数也就是主机号转换为十进制,再减去1。例如13位值1111111111111转换为十进制的话就是8191,所以这个网络中每个子网的主机数就是8190了。

实现IP路由

1、IP路由简介

路由就是选择一条数据包传输路径的过程。当TCP/IP主机发送IP数据包时,便出现了路由,且当到达IP路由器还会再次出现。路由器是从一个物理网向另一个物理网发送数据包的装置,路由器通常被称为网关。对于发送的主机和路由器而言,必须决定向哪里转发数据包。在决定路由时,IP层查询位于内存中的路由表。

(1)当一个主机试图与另一个主机通信时,IP首先决定目的主机是一个本地网还是远程网。
(2)如果目的主机是远程网,IP将查询路由表来为远程主机或远程网选择一个路由。
(3)若未找到明确的路由,IP用缺省的网关地址将一个数据传送给另一个路由器。
(4)在该路由器中,路由表再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的缺省网关地址。

每发现一条路由,数据包被转送下一级路由器,称为一次“跳步”,并最终发送至目的主机。

若未发现任何一个路由,源主机将收到一个出错信息。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134