TCP/IP协议号和端口

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

1  TCP/IP协议号

  TCP/IP协议号是由网络专家定义的一个8位数值。当IP数据报到达正确的IP地址时,网络互连层必须将数据报传送到传输层,而传输层的协议不是唯一的,它至少包含两个主要协议TCP和UDP。为了确定哪个协议接收下层的数据报(或上层的用户数据包),必须使用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数据报的包头中指定。包括两个端口号:源端口号——代表了发送数据的进程;目的端口号——代表了接收数据的进程。每个应用程序,不管是服务器还是客户端,都有一个唯一的端口号。尤其是专门为完成特定任务的网络程序(像FTP、Telnet和E-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:专用程序端口号

补:

  DNS端口号是 53

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值