分类: 系统运维
2008-07-21 11:58:04
TCP/IP协议号是由网络专家定义的一个8位数值。当IP数据报到达正确的IP地址时,网络互连层必须将数据报传送到传输层,而传输层的协议不是唯一的,它至少包含两个主要协议TCP和UDP。为了确定哪个协议接收下层的数据报(或上层的用户数据包),必须使用TCP/IP协议号。为此,IP数据包的包头专门为协议号开辟了一个“窗口”——协议域。
协议号的工作方式是:
常见的协议号见下面的表
协议名 |
协议号 |
基 本 描 述 |
IP |
0 |
互连网协议 |
ICMP |
1 |
互连网消息协议 |
GGP |
3 |
网关——网关协议 |
TCP |
6 |
传输控制协议 |
EGP |
8 |
外部网关协议 |
UDP |
17 |
用户数据报协议 |
Xns_IDP |
22 |
|
rdp |
27 |
可靠数据流协议 |
rvd |
66 |
MIT远程虚拟磁盘 |
表
网络互连层的IP协议将数据传送到传输层后,传输协议要将数据传递给正确的应用进程。为了识别是哪一个进程,就需要使用端口号。端口号是用来区分和标识应用进程的一个16位值,它也在IP数据报的包头中指定。包括两个端口号:源端口号——代表了发送数据的进程;目的端口号——代表了接收数据的进程。每个应用程序,不管是服务器还是客户端,都有一个唯一的端口号。尤其是专门为完成特定任务的网络程序(像FTP、Telnet和E-mail等这种广泛使用的应用程序)要使用由Internet权威机构制定的端口号——即众所周知的端口号见表
端口号 |
关键字 |
基 本 描 述 |
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主机名服务 |
表
TCP/IP端口就像每个居民住户的门牌号码,你要访问某个家庭,除要知道这个家庭所在的国家、城市、小区和街道外,还要知道其门牌号码才能正确到达。TCP/IP的传输层协议(主要指TCP和UDP)要和各种端口直接打交道,特别是无连接的UDP协议,它在传输数据时重点就放在端口上。当然,面向连接的TCP协议在传输数据时将重点放在连接上,而不是端口,使用TCP的应用程序可以为同一端口打开多个连接,传输仍能正确进行。也就是说,UDP通信就像平信邮递业务,邮差(UDP)只将邮件(数据)放在正确的家庭或单位信箱(端口)中,并不通知收件人(应用程序)邮件已到;而TCP则更像邮政系统的电话业务,只有先建立呼叫(连接)后,才能使用电话(端口)进行对话(数据交换)。
需要注意的是:在编写发送方的应用程序时,一般不用关心程序使用的端口号,但在接收方必须知道。每次发送方传输报文时,传输层自动在包头的源端口域中插入正确的端口号。