-端口号
端口号为了标记本计算机应用层中的各个进程在和运输层交互时的层间接口。在不同计算机中,相同的端口号是没有关联的。
分为两大类:软件和硬件端口。
硬件端口:就是不同硬件设备之间的接口。如路由器,交换机上的端口。
软件端口:应用层的各种协议进程与运输实体进行交互的一种地址。
运输层的端口号分为以下两大类:
服务器端使用的端口号。
这里又分为两类,①最重要的一类叫熟知端口号或系统端口号,数值0~1023.这些数值在www.iana.org可查到,IANA把这些端口号指派给TCP/IP最重要的一些应用程序,让所有用户都知道。一些常见的熟知端口号如下:
②另一类叫做登记端口号,数值为1024~49151.这类端口号为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记,防止重复。
客户端使用的端口号。
数值为49152~65535.由于这类端口号仅在客户端进程运行时才动态选择,因此又叫做短暂端口号。当服务器进程收到客户进程的报文时,就知道客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束时,该端口号不存在,可以供其他客户进程使用。
- TCP报文中首部格式的PSH和URG的区别
紧急URL:当URL=1时,表明紧急指针字段有效,它告诉系统次报文段中有紧急数据,应尽快送达,这时无需排队等待,发送方TCP把紧急数据插入到本报文段数据的最前面。需要结合紧急指针字段配合使用。
推送PSH:当两个应用进程进行交互式的通信时,有时在一端的应用中进程中希望在键入一个命令后立即就能收到对方的响应。这时,发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快交付接收应用进程,而不在等到整个缓存都填满了后再向上交付。
以上两个控制位的区别为:
发送方URG有效时,数据段不用进入缓冲队列而直接交付给接收方。
发送方PSH有效时,接收方收到时,数据段不用等待缓冲队列满就直接向上交付。
总的来说,URG是针对发送方发送紧急数据的。而PSH是针对接收方,让接收方尽快的将数据向上交付。