端口点滴
(2009-05-10 00:39:42)
标签:
it |
TCP和UDP协议说明如下。
注重可靠性的场合一般使用TCP协议,例如FTP、Telnet,而在那些更注重实时性、传输率、吞吐量的场合一般使用UDP,如QQ。TCP报文分为首部和数据两部分。TCP报文段首部的前20个字节是固定的,后面有4n字节(n为整数)是可有可无的选项。因此TCP首部的最小长度是20字节。
TCP报文结构如图2-45所示。
SYN:该标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。
FIN:表示发送端已经没有数据要求传输了,希望释放连接。
RST:用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。
URG:为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。
ACK:为确认标志位。如果为1,表示包中的确认号时有效的。否则,包中的确认号无效。
PSH:如果置位,接收端应尽快把数据传送给应用层。1.端口的基本概念
“端口”在计算机网络领域中是个非常重要的概念。它是专门为计算机通信而设计的,它不是硬件,不同于计算机中的“插槽”,可以说是个“软插槽”。如果有需要的话,一台计算机中可以有上万个端口。
端口是由计算机的通信协议TCP/IP协议定义的。其中规定,用IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为Socket。具体来说,就是用[IP:端口]来定位一台主机中的进程。可以做这样的比喻,端口相当于两台计算机进程间的大门,可以随便定义,其目的只是为了让两台计算机能够找到对方的进程。计算机就像一座大楼,这个大楼有好多入口(端口),进到不同的入口中就可以找到不同的公司(进程)。如果要和远程主机A的程序通信,那么只要把数据发向[A:端口]就可以实现通信了。
可见,端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听,那么就会出现与它相对应的端口。由此可见,入侵者通过扫描端口,便可以判断出目标计算机有哪些通信进程正在等待连接。
2.端口的分类
端口是一个16 bit的地址,用端口号进行标识不同作用的端口,参见表2-2和表2-3。端口一般分为两类。
① 熟知端口号(公认端口号):由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口,其数值一般为0~1023。
② 一般端口号:用来随时分配给请求通信的客户进程。
3.TCP/IP协议基础知识
首先简要介绍Internet的基本通信协议TCP/IP协议。TCP/IP,即传输控制协议/网际互连协议,它把整个计算机通信网划分为应用层、运输层、网际层、网络接口层。
Internet的网络通信大多是建立在这个协议之上的,各个主机遵循着TCP/IP协议封装数据包进行通信。
由图2-44可见,TCP/IP在运输层包括两个协议TCP和UDP,并且TCP和UDP都使用相同的网际层IP,TCP与UDP协议各自特点如下。
① 用户数据报协议UDP(User Datagram Protocol):UDP在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP数据报后,不需要给出任何确认。广泛应用于只需一次的客户/服务器模式的请求-应答查询,或者要求提供高效率数据传输的场合。
② 传输控制协议TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的运输服务,用于高可靠性数据的传输。TCP具有完善的错误检测与恢复、顺序控制和流量控制等功能。