多端口 监听 处理

1、 http://bbs.csdn.net/topics/270053850

 

2、

 01、TCP是面向连接的协议,就象打电话;而UDP是无连接的协议,就象邮寄信件。 
      TCP是可靠的,它需要确认,而UDP是不可靠的,因为它不需要确认。所以一般情况下重要数据的传输都用TCP,不太重要的,丢失后不会造成太大影响的数据都用UDP来传输。 
     与TCP相比,UDP帧的长度要小的多。

02、

   TCP/IP是网络协议 UDP也是协议之一 监听端口80是系统自己监听用的 可以选择开启或者不开启

03、

   TCP,UDP都是传速协议,而UDP传速安全性不高。监听端口是系统的端口。

3、

计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议。在TCP传输控制协议中,建立端对端的连接是靠IP地址和TCP的端口号的共同作用。
一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议,UDP也是使用端口号进行连接的。
对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。

当你要访问别的主机上的网络应用进程(如WEB服务)时,你发送的IP数据包里除了有对方主机的IP地址外还要有你访问程序的端口号。

而所谓的端口监听,是指主机网络进程接受到IP数据包后,察看其的目标端口是不是自己的端口号,如果是的话就接受该数据包进行处理。进行网络通讯的主机,既要发送数据,也要接受数据,所以就要开启相应的端口以接受数据。一个网络上的主机有可能开启多个网络进程(如即浏览网页又上QQ),也就是监听了多个端口。

如果你想看你电脑开启的端口
可以 开始/运行 输入cmd 进入命令提示符

然后输入 netstat -a (中间有空格)
这样你就可以看到你所监听的TCP/UDP端口了

 

4、

启动程序,该程序建立一个包含四个线程的线程池提供 TCP 服务,在 80 端口上进行监听,在客户端使用 TELNET 来进行测试,首先启动四个客户端,并且输入一个字母,让服务器的四个线程都进行繁忙状态,然后在启动一个客户端,依然能够进行连接,想起 TCP 监听端口在有连接请求过来时是有一个队列进行缓冲的,该值默认是 5,所以在启动五个客户端,这样4个在繁忙,五个进入了缓冲队列,最后一个应该连接不上了吧?结果发现启动了几十个客户端全部都连上了,此时服务器的线程池都在“繁忙”中,主线程在等待线程池结束,那么是谁接受了客户端的连接?郁闷不解中.......

查看 ACE 的源代码,发现在建立 TCP 端口监听时,对缓冲队列的大小设置是通过宏 ACE_DEFAULT_BACKLOG 来指定的,该宏在 Windows 上使用系统定义的 SOMAXCONN ,(在其他系统上使用默认值 5) , 而 SOMAXCONN 的定义是 0x7fffffff , (当然实际上不可能有这么多的连接到达,即使有缓冲队列也不可能容纳的下,因为几乎不可能有那么大的内存来做缓冲)查阅 MSDN 说使用该值,系统将尽可能的缓冲所有的客户端连接请求,就是说在 Windows 上,只要服务器系统能力允许,几十服务器上的程序繁忙,客户端的连接请求几乎都能够被系统缓存下来,客户端不会发生连接失败的情况;

最后在 TCP/IP 详解一书中的 194 页找到了相关的描述,在建立 TCP 的端口监听时可以指定一个连接的缓冲队列,该队列的长度上限在 Unix 和早期的 Windows 上默认实现都是 5 个,在新版本的 Windows 中该队列的上限系统不再做限制;

当客户端发起连接时,首先是 TCP 接受了该连接,然后应用程序接受该连接,如果应用程序忙没有即时接受连接(即将该连接从 TCP 接受的连接队列中移走)那么只有在队列满后 TCP 将不再接受客户端的连接,所以此时服务器程序即使处于繁忙中,客户端的连接因为 TCP 接受了,虽然服务器程序没有接受该连接,但是客户端的表现是连接已经建立,但是发送任何内容给服务器都没有反映(因为服务器程序没有接受该连接);

 

5、

一、常用端口及其分类
  电脑在Internet上相互通信需要使用TCP/IP协议,根据TCP/IP协议规定,电脑有256×256(65536)个端口,这些端口可分为TCP端口和UDP端口两种。如果按照端口号划分,它们又可以分为以下两大类:
  1.系统保留端口(从0到1023)
  这些端口不允许你使用,它们都有确切的定义,对应着因特网上常见的一些服务,每一个打开的此类端口,都代表一个系统服务,例如80端口就代表Web服务。21对应着FTP,25对应着SMTP、110对应着POP3等。
  2.动态端口(从1024到65535)
  当你需要与别人通信时,Windows会从1024起,在本机上分配一个动态端口,如果1024端口未关闭,再需要端口时就会分配1025端口供你使用,依此类推。
  但是有个别的系统服务会绑定在1024到49151的端口上,例如3389端口(远程终端服务)。从49152到65535这一段端口,通常没有捆绑系统服务,允许Windows动态分配给你使用。
  二、如何查看本机开放了哪些端口
  在默认状态下,Windows会打开很多“服务端口”,如果你想查看本机打开了哪些端口、有哪些电脑正在与本机连接,可以使用以下两种方法。
  1.利用netstat命令
  Windows提供了netstat命令,能够显示当前的 TCP/IP 网络连接情况,注意:只有安装了TCP/IP协议,才能使用netstat命令。
  操作方法:单击“开始→程序→附件→命令提示符”,进入DOS窗口,输入命令 netstat -na 回车,于是就会显示本机连接情况及打开的端口。其中Local Address代表本机IP地址和打开的端口号,Foreign Address是远程计算机IP地址和端口号,State表明当前TCP的连接状态,LISTENING是监听状态,表明本机正在打开135端口监听,等待远程电脑的连接。
  如果你在DOS窗口中输入了netstat -nab命令,还将显示每个连接都是由哪些程序创建的。本机在135端口监听,就是由svchost.exe程序创建的,该程序一共调用了5个组件 (WS2_32.dll、RPCRT4.dll、rpcss.dll、svchost.exe、ADVAPI32.dll)来完成创建工作。如果你发现本机打开了可疑的端口,就可以用该命令察看它调用了哪些组件,然后再检查各组件的创建时间和修改时间,如果发现异常,就可能是中了木马。
  2.使用端口监视类软件
  与netstat命令类似,端口监视类软件也能查看本机打开了哪些端口,这类软件非常多,著名的有Tcpview、Port Reporter、绿鹰PC万能精灵、网络端口查看器等,推荐你上网时启动Tcpview,密切监视本机端口连接情况,这样就能严防非法连接,确保自己的网络安全,详见本刊2005年2月88页《让端口开放尽收眼底》一文。
众所周知,计算机之间通信是通过端口进行的,例如你访问一个网站时,Windows就会在本机开一个端口(例如1025端口),然后去连接远方网站服务器的一个端口,别人访问你时也是如此。默认状态下,Windows会在你的电脑上打开许多服务端口,黑客常常利用这些端口来实施入侵,因此掌握端口方面的知识,是安全上网必备的技能。

6、

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值