Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658133
  • 博文数量: 107
  • 博客积分: 4135
  • 博客等级: 上校
  • 技术积分: 1182
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-06 16:01
文章分类

全部博文(107)

文章存档

2020年(2)

2012年(5)

2011年(6)

2010年(23)

2009年(17)

2008年(35)

2007年(19)

我的朋友

分类: 系统运维

2008-07-21 11:58:04

    TCP/IP协议号和端口类似于PC机的并口或串口,也可以将其想象成交通中的交叉路口。程序员使用TCP/IP协议号和端口的目的是在TCP/IP的高层(传输层和应用层)为用户数据包选择路径,只不过协议号用来识别传输层的协议,端口用来识别应用层的程序进程。

1  TCP/IP协议号

  TCP/IP协议号是由网络专家定义的一个8位数值。当IP数据报到达正确的IP地址时,网络互连层必须将数据报传送到传输层,而传输层的协议不是唯一的,它至少包含两个主要协议TCPUDP。为了确定哪个协议接收下层的数据报(或上层的用户数据包),必须使用TCP/IP协议号。为此,IP数据包的包头专门为协议号开辟了一个“窗口”——协议域。

协议号的工作方式是:

  • 在信息发送方,协议号用来指明使用哪一种协议对用户数据包进行封装。例如协议号为6时,网络软件将使用TCP格式对数据包中的数据进行封装。
  • 在信息接收方,网络软件通过检查该协议号,将IP数据报传递给与这个协议号相应的协议。例如协议号是17,就将数据报传递给UDP协议。

常见的协议号见下面的表1

协议名

协议号

     

IP

0

互连网协议

ICMP

1

互连网消息协议

GGP

3

网关——网关协议

TCP

6

传输控制协议

EGP

8

外部网关协议

UDP

17

用户数据报协议

Xns_IDP

22

Xerox NS IDP

rdp

27

可靠数据流协议

rvd

66

MIT远程虚拟磁盘

1:常见的TCP/IP协议号

2  TCP/IP端口号

  网络互连层的IP协议将数据传送到传输层后,传输协议要将数据传递给正确的应用进程。为了识别是哪一个进程,就需要使用端口号。端口号是用来区分和标识应用进程的一个16位值,它也在IP数据报的包头中指定。包括两个端口号:源端口号——代表了发送数据的进程;目的端口号——代表了接收数据的进程。每个应用程序,不管是服务器还是客户端,都有一个唯一的端口号。尤其是专门为完成特定任务的网络程序(像FTPTelnetE-mail等这种广泛使用的应用程序)要使用由Internet权威机构制定的端口号——即众所周知的端口号见表2

端口号

关键字

     

7

Echo

回波

9

Discard

丢弃

11

Users

活动的用户

13

Daytime

日期

15

Netstat

网络状态

21

ftp

文件传输协议

23

Telnet

远程登录

25

SMTP

电子邮件

37

Time

时间

43

Nicname

别名查询

69

TFTP

普通文件传送协议

79

Finger

用户信息查询

101

Hostname

NIC主机名服务

2:专用程序端口号

   用户在使用专用程序时,不允许改变其端口号,这是必须遵守的一条规则。不过,用户新开发的网络通信应用程序可以自己设置其端口号,但不能和用做公共服务的端口号发生冲突。一般情况下,所有小于255的端口号都保留做公共服务(程序),其它规定应视你使用的操作系统而定。

  TCP/IP端口就像每个居民住户的门牌号码,你要访问某个家庭,除要知道这个家庭所在的国家、城市、小区和街道外,还要知道其门牌号码才能正确到达。TCP/IP的传输层协议(主要指TCPUDP)要和各种端口直接打交道,特别是无连接的UDP协议,它在传输数据时重点就放在端口上。当然,面向连接的TCP协议在传输数据时将重点放在连接上,而不是端口,使用TCP的应用程序可以为同一端口打开多个连接,传输仍能正确进行。也就是说,UDP通信就像平信邮递业务,邮差(UDP)只将邮件(数据)放在正确的家庭或单位信箱(端口)中,并不通知收件人(应用程序)邮件已到;而TCP则更像邮政系统的电话业务,只有先建立呼叫(连接)后,才能使用电话(端口)进行对话(数据交换)。

  需要注意的是:在编写发送方的应用程序时,一般不用关心程序使用的端口号,但在接收方必须知道。每次发送方传输报文时,传输层自动在包头的源端口域中插入正确的端口号。

阅读(5814) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~