admin管理员组

文章数量:1530844

2024年1月24日发(作者:)

竭诚为您提供优质文档/双击可除

udp协议电脑怎么设置

篇一:如何关闭端口和防范udp攻击的技术

如何关闭端口和防范udp攻击的技术

端口就像一所房子(服务器)的几个门一样,不同的门通向不同的房间(服务器提供的不同服务)。我们常用的Ftp默认端口为21,而www网页一般默认端口是80。但是有些马虎的网络管理员常常打开一些容易被侵入的端口服务,比如139等;还有一些木马程序,比如冰河、bo、广外等都是自动开辟一个您不察觉的端口。那么,只要我们把自己用不到的端口全部封锁起来,不就杜绝了这两种非法入侵吗?

这里举例关闭的端口有,135,137,138,139,445,1025,2475,3127,6129,3389,593,还有tcp,其他我就不一一指出了。

具体操作如下:

认情况下,windows有很多端口是开放的,在你上网的时候,

1 21

网络病毒和黑客可以通过这些端口连上你的电脑。为了让你的系统变为铜墙铁壁,应该封闭这些端口,主要有:tcp135、139、445、593、1025端口和udp135、137、138、445端口,一些流行病毒的后门端口(如tcp2745、3127、6129端口),以及远程服务访问端口3389。

下面介绍如何在winxp/2000/20xx下关闭这些网络端

口。

第一步,点击“开始”菜单/设置/控制面板/管理工具,双击打开“本地安全策略”,选中“ip安全策略,在本地计算机”,在右边窗格的空白位置右击鼠标,弹出快捷菜单,选择“创建ip安全策略”,于是弹出一个向导。在向导中点击“下一步”按钮,为新的安全策略命名;再按“下一步”,则显示“安全通信请求”画面,在画面上把“激活默认相应规则”左边的钩去掉,点击“完成”按钮就创建了一个新的ip安全策略。

第二步,右击该ip安全策略,在“属性”对话框中,把“使用添加向导”左边的钩去掉,然后单击“添加”按钮添加新的规则,随后弹出“新规则属性”对话框,在画面上点击“添加”按钮,弹出ip筛选器列表窗口;在列表中,首先把“使用添加向导”左边的钩去掉,然后再点击右边的“添加”按钮添加新的筛选器。

第三步,进入“筛选器属性”对话框,首先看到的是寻

2 21

址,源地址选“任何ip地址”,目标地址选“我的ip地址”;点击“协议”选项卡,在“选择协议类型”的下拉列表中选择“tcp”,然后在“到此端口”下的文本框中输入“135”,点击“确定”按钮,

这样就添加了一个屏蔽tcp135(Rpc)端口的筛选器,它可以防止外界通过135端口连上你的电脑。

点击“确定”后回到筛选器列表的对话框,可以看到已经添加了一条策略,重复以上步骤继续添加tcp137、139、445、593端口和udp135、139、445端口,为它们建立相应的筛选器。

再重复以上步骤添加tcp1025、2745、3127、6129、3389端口的屏蔽策略,建立好上述端口的筛选器,最后点击“确定”按钮。

第四步,在“新规则属性”对话框中,选择“新ip筛选器列表”,然后点击其左边的圆圈上加一个点,表示已经激活,最后点击“筛选器操作”选项卡。在“筛选器操作”选项卡中,把“使用添加向导”左边的钩去掉,点击“添加”按钮,添加“阻止”操作:在“新筛选器操作属性”的“安全措施”选项卡中,选择“阻止”,然后点击“确定”按钮。

第五步、进入“新规则属性”对话框,点击“新筛选器操作”,其左边的圆圈会加了一个点,表示已经激活,点击“关闭”按钮,关闭对话框;最后回到“新ip安全策略属

3 21

性”对话框,在“新的ip筛选器列表”左边打钩,按“确定”按钮关闭对话框。在“本地安全策略”窗口,用鼠标右击新添加的ip安全策略,

然后选择“指派”。

这时候你就可以电脑了,重新启动后,电脑中上述网络端口就被关闭了,在这时候病毒和黑客应该是已经不能连上这些端口了,从而保护了你的电脑

篇二:Vb里winsock的udp协议做局域网聊天其实很简单

Vb里winsock的udp协议做局域网聊天其实很简单,但代码写起来稍复杂些。winsock的tcp协议其实代码的理解更容易,但是要在局域网里某电脑ip开启一个服务器,就已tcp协议聊天室为例根你说说

创建一个非常简单的服务器:

要创建一个tcp服务器,请按照以下步骤执行:

创建新的standardexe工程。

将缺省窗体的名称改为frmserver。

将窗体的标题改为“tcp服务器”。

在窗体中放入一个winsock控件,并将它的名字改为tcpserver。

在窗体上添加两个textbox控件。将第一个命名为txtsenddata,第二个为txtoutput。

4 21

为窗体添加如下的代码。

privatesubForm_load()

将localport属性设置为一个整数。

然后调用listen方法。

ort=1001

显示客户端的窗体。

endsub

privatesubtcpserver_connectionRequest(byValrequestidaslong)

检查控件的state属性是否为关闭的。

如果不是,

在接受新的连接之前先关闭此连接。

接受具有requestid参数的

连接。

requestid

endsub

privatesubtxtsenddata_change()

名为txtsenddata的textbox控件中

包含了要发送的数据。当用户往文本框中

5 21

键入数据时,使用senddata方法

发送输入的字符串。

endsub

privatesubtcpserver_dataarrival_(byValbytestotalaslong)

为进入的数据声明一个变量。

调用getdata方法,并将数据赋予名为txtoutput

的textbox的text属性。

dimstrdataasstring

astrdata

=strdata

endsub

上面的步骤创建了一个简单的服务器应用程序。为了使它能够工作,还必须为它创建一个客户端的应用程序。

要创建tcp客户端,请按照以下步骤执行:

在工程中添加一个新的窗体,将其命名为frmclient。

将窗体的标题改为“tcpclient”。

在窗体中添加一个winsock控件,并将其命名为tcpclient。

在frmclient中添加两个textbox控件。将第一个命名

6 21

为txtsend,第二个为txtoutput。

在窗体上放一个commandbutton控件,并将其命名为cmdconnect。

将commandbutton控件的标题改为connect。

在窗体中添加如下的代码。

重点必须将Remotehost属性值修改为您的计算机的名字。

privatesubForm_load()

winsock控件的名字为tcpclient。

注意:要指定远程主机,可以使用

ip地址(例如:"121.111.1.1"),也可以使用

计算机的“好听的名字”如下所示。

host="Remotecomputername"

port=1001

endsub

privatesubcmdconnect_click()

调用connect方法,初始化连接。

t

endsub

privatesubtxtsenddata_change()

endsub

7 21

privatesubtcpclient_dataarrival_(byValbytestotalaslong)

dimstrdataasstring

astrdata

=strdata

endsub

评论(1)|0

20xx-10-2222:27打死不过圣诞节|七级

引用vb的帮助文件:

tcp连接初步

如果应用程序要使用tcp协议,那么首先必须决定应用程序是服务器还是客户端。如果要创建一个服务器端,那么应用程序需要“监听”指定的端口。当客户端提出连接请求时,服务器端能够接受请求并建立连接。在连接建立之后,客户端与服务器端可以自由地互相通讯。

下列步骤创建一个非常简单的服务器:

要创建一个tcp服务器,请按照以下步骤执行:

创建新的standardexe工程。

将缺省窗体的名称改为frmserver。

将窗体的标题改为“tcp服务器”。

在窗体中放入一个winsock控件,并将它的名字改为

8 21

tcpserver。

在窗体上添加两个textbox控件。将第一个命名为txtsenddata,第二个为txtoutput。

为窗体添加如下的代码。

privatesubForm_load()

将localport属性设置为一个整数。

然后调用listen方法。

ort=1001

显示客户端的窗体。

endsub

privatesubtcpserver_connectionRequest_

(byValrequestidaslong)

检查控件的state属性是否为关闭的。

如果不是,

在接受新的连接之前先关闭此连接。

ckclosedthen_

接受具有requestid参数的

连接。

requestid

endsub

9 21

privatesubtxtsenddata_change()

名为txtsenddata的textbox控件中

包含了要发送的数据。当用户往文本框中

键入数据时,使用senddata方法

发送输入的字符串。

endsub

privatesubtcpserver_dataarrival_

(byValbytestotalaslong)

为进入的数据声明一个变量。

调用getdata方法,并将数据赋予名为txtoutput

的textbox的text属性。

dimstrdataasstring

astrdata

=strdata

endsub

上面的步骤创建了一个简单的服务器应用程序。为了使它能够工作,还必须为它创建一个客户端的应用程序。

要创建tcp客户端,请按照以下步骤执行:

在工程中添加一个新的窗体,将其命名为frmclient。

将窗体的标题改为“tcpclient”。

在窗体中添加一个winsock控件,并将其命名为

10 21

tcpclient。

在frmclient中添加两个textbox控件。将第一个命名为txtsend,第二个为txtoutput。

在窗体上放一个commandbutton控件,并将其命名为cmdconnect。

将commandbutton控件的标题改为connect。

在窗体中添加如下的代码。

重点必须将Remotehost属性值修改为您的计算机的名字。

privatesubForm_load()

winsock控件的名字为tcpclient。

注意:要指定远程主机,可以使用

ip地址(例如:"121.111.1.1"),也可以使用

计算机的“好听的名字”如下所示。

host="Remotecomputername"

port=1001

endsub

privatesubcmdconnect_click()

调用connect方法,初始化连接。

t

endsub

privatesubtxtsenddata_change()

11 21

endsub

privatesubtcpclient_dataarrival_

(byValbytestotalaslong)

dimstrdataasstring

astrdata

=strdata

endsub

上面的代码创建了一个简单的客户/服务器模式的应用程序。我们可以将两者都运行起来:运行工程,然后单击“连接”。在两个窗体之一的txtsenddata文本框中键入文本,可以看到同样的文字将出现在另一个窗体的txtoutput文本框中。

接受多个连接请求

上面设计的基本服务器只能接受一个连接请求。通过创建控件数组,使用一个控件也可以同时接受多个连接请求。利用这种方法,不需要关闭连接,而只需创建

篇三:udp传输原理

udp(userdatagramprotocol)用户数据报协议,它在osi模型的传输层,osi模型的传输层有udp协议,tcp协议和刚开发出来的一种新的协议sctp。udp是一种无连接的、不可靠的协议,适用于要求开销小,传输速度快且对准确性

12 21

要求不高的场合,如:视频聊天等。

1.1进程到进程的通信

在学习udp协议之前,我们必须先了解主机到主机之间的通信和进程到进程之间的通信的概念和它门之间的区别。

回忆一下,ip是主机到主机之间的通信,因为ip在互联网上唯一标识一台主机,ip的任务就是把尽自己最大努力将数据送给对应目的ip地址的某台主机。但是这远远不够的,比如,你一边上网(进程1),一边用迅雷下载文件(进程2),那么ip它不知到自己携带的数据是网页的数据还是迅雷的数据,它只要把数据送到你的电脑上就完事了。那么怎样将数据无误地送给对应网页和迅雷呢?也就是说将数据无误地送给对应的进程呢?于是传输层应运而生,udp就是其中一种协议,udp的责任就是将数据正确地送给对应的进程。

1.1.1端口号

虽然有多种方法实现进程到进程之间的通信。但是,最通用的还是客户—服务器模式,本地主机a上运行的一个进程叫做客户,它需求另一台主机b(a和b通常距离很远)上的一个进程的服务,另一台主机的该进程叫做服务器。客户和服务器都需要有相同的名字,即两个进程同名。

然而,今天的操作系统支持多用户多程序对的环境,一台远程的主机可以运行多个服务程序,同时本地主机也可以

13 21

同时运行多个客户程序。为了通信,我们必须定义:1本地主机

2本地进程

3远程主机

4远程进程

我们已经用ip定义了本地主机和远程主机,于是我们使用端口号来定义进程。在tcp/ip协议族中端口号是0-65536的整型数。

定义客户端的端口号叫做短暂端口号。短暂端口号的存活时间很短。一般推荐使用大于1023的任意整数。

服务器也需要端口号,这个端口号可不能使用任意整数,如果使用了任意整数,客户端将无法获知正确地端口号,从而正确地使用服务。当然,客户端可以发送请求服务器端口号的报文,这不但增加了开销,也会使本来就很拥挤的网络变得更拥挤。所以tcp/ip为服务器定义了通用端口号,称为知名端口号。

icann机构将端口号分成3种:

知名端口号:从0到1023的整数。系统进程所用。

注册端口号:从1024到49151的整数。程序开发员可以到icann去为自己开发的网络程序申请一个端口号。

动态端口号:从49152到65536的整数。可以被临时使用或作为私有端口号。1.1.2套接字地址

14 21

正如上面看到的,udp在每次连接时需要ip地址和端口号两个确定因素,ip地址和端口号的结合叫做套接字地址。服务端套接字地址唯一的定义了一台主机的一个服务进程,就像服务器套接字地址唯一的定义了一个远程主机的一个服务进程一样。所以,为了使用udp,我们需要一对套接字地址:客户端套接字地址和服务器套接字地址。

1.2用户数据报

udppackets,叫做用户数据报,有固定的8个字节的头。8字节如下:

源端口号(16bits):如果发送udp分组的是客户端,源端口号在大多数情况下是一个短暂

端口号,该端口号是应用层程序所需且udp应用程序生成的短暂端口号。如果发送udp分组的是服务器,源端口号一般都是知名端口号。

目的端口号(16bits):如果发送udp分组的是客户端,目的端口号一般都是知名端口号。如果发送udp分组的是服务器,目的端口号大多数情况下是从客户端发送过来需求服务的udp分组中的源端口号中复制过来的短暂端口号。

长度(16bits):这是一个16位的存储单元,意味着udp数据报长度(header+data)可以从0到65536,然而,正真udp长度要小于65536,因为udp包含于ip。而ip分组的最大长度就是65536。

15 21

回忆一下ip分组的格式,其中有个hlen,即headerlength。有个totallength。因为udp是包含于ip的,totallength-hlen=udptotallength,为什么udp中还要有个totallength呢?因为设计者认为直接在udp报文中获取udp的长度比进入网络层访问ip报头效率更高,因为数据进入传输层将丢弃ip的头。

1.3检验和

udp的检验和与ip,icmp的检验和不同,它有一个伪首部,检验时要将伪首部算在内。伪首部中包含32bits的源ip地址,32bits的目的ip地址,8bits的全0,8bits的ip包含协议类型,16bits的udp总长。为什么udp检验和中要加入伪首部呢?如果udp检验和中没有伪首部,如果ip头在传输过程中受到干扰被修改,数据将会传给错误的主机,即错误的主机接收到了该数据,数据的安全性就得不到保证。

1.3.1在发送端的检验和计算

1.给udp用户数据报添加伪首部。

2.复位检验和存储区。

3.将udp用户数据报每16bits一分。

4.如果udp用户数据报不能正好分成16bits,则添加填充位(全0)。

5.将所有16为分块相加,注意:其中会产生进位,有时由于进位会产生第16为和第17位,就将第16和17位截

16 21

下,加到结果的第0和第1位上。

6.将最终结果取反,填入检验和存储区。

用户数据报丢弃伪首部和填充位。

8.将udp用户数据报传送到ip层进行分装。

1.3.2在接收端的检验和计算

1.给udp用户数据报添加伪首部。

2.如果需要,添加填充位。

3.将所有数据分成每16位一块。

4.将所有16为分块相加。方法如上。

5.取反结果。

6.如果结果为0,丢弃伪首部和填充位并接收该数据,否则,丢弃该数据。

1.4udp的操作

udp使用的概念和传输层一样,这里简单讨论一下,详细的放在tcp中讲解。

1.4.1无连接服务

正如前面所述,udp提供了一种无连接服务,这意味着udp所发送的每个用户数据报是独立的,一台逐句的相同进程发往另一台主机的相同udp都是毫无关系的udp。这就造成,udp不能传输数据流,除非udp将该数据流切碎成不同的但又相关的用户数据报。

1.4.2流量控制和差错控制

17 21

udp是一种非常简单的,不可靠的传输协议。无流量控制和窗口机制。接收者会出现接收溢出的情况。

udp除了检验和之外没有任何差错控制机制,导致发送者无法得知发送的数据丢失或被复制了。当接收者通过检验和发现一个错误,数据将被悄悄的丢弃。

1.4.3封装和拆装(encapsulationanddecapsulation)

1.4.4.排队

我们之前只谈了端口号,而没有谈它们正真的作用。在udp中,队列(queues)和端口号息息相关。

在客户端,当一个进程开始,它需要操作系统给予一个端口号。一些编译程序为进程生成输入队列和输出队列,另一些编译程序只产生输入队列。

注意:即使一个进程与多个进程通信,该进程也只能获得一个端口号,一个输出队列和一个输入队列。通常,短暂端口号标识客户端的队列,队列和进程同时存在,当进程结束,队列就被销毁。

客户进程通过输出队列使用源端口号发送特别请求。udp一个一个地移动这些消息,在完成添加udp头后,将数据移交至ip层,一个输出队列有可能溢出。如果发生这种情况,操作系统会通知客户进程等待一会。

当一个消息抵达客户端,udp检查是否有接收到的用户数据包中端口号标识的输入队列,如果有该队列,udp将接

18 21

收到的数据送入该输入队列的尾部,如果没有该队列,udp丢弃该数据报并发送icmp端口不可达报文(type3code3)给服务器端,当输入队列溢出时,udp丢弃溢出的用户数据包并发送端口不可达icmp报文。

服务器端发送和接收的队列与客户端一样,这里不再缀述。

1.4.5复用和分用

在一台使用tcp/ip协议族的主机中,有许多进程需要使用单独的udp。为了解决这个问题,udp使用了复用和分用(multiplexinganddemultiplexing)。

复用:发送端有许多进程需要发送用户数据包。然而,只有一个udp。这就是多对一的关系且需要复用。udp从不同进程接收消息,在添加udp头后将其传给ip层。

分用:在接收端,只有一个udp。然而,我们有许多进程能接收用户数据包。这就是一对多的关系且需要分用。udp从ip层接收用户数据包。在检查完和丢弃udp头后,udp根据不同的端口号将数据分给正确的进程。

1.6udp软件包

udppackets包含5个元素:控制块表,输入队列,控制块模块,输入模块,输出模块。控制块表:跟踪打开的端口号。该标有4个项,分别是:thestate,whichcanbeFReeorin-use,theprocessid,thepor

19 21

tnumber,andthecorrespondingqueuenumber.未被创建的地方为全0。输入队列:每个进程都有一个输入队列,用端口号唯一标识。

控制块模块:用于管理控制块表。当一个进程生成时,他会向操作系统索要端口号。操作系统分配一个知名端口号给服务进程或一个短暂端口号给客户进程。该进程将processid和端口号传送给控制块模块从而在控制块表中为该进程创建一个表项。注意:控制块模块不能创建队列。目前还没有方法解决控制块表满的问题。

1.接收到一个进程标识(processid)和一个端口号。

2.搜索控制块表找到一个状态为FRee的表项。如果没找到,使用预定义

策略删除一个表项。

3.创建一个新的状态为in-use的表项。

4.输入进程标识和端口号。

5.返回。

输入模块:从ip层接收用户数据包。它搜索控制块表,查找知否有和用户数据包中端口号相同的表项。如果表项找到了,输入模块利用控制块表项中的信息将数据送入正确的队列。如果没找到,产生一个icmp。

1.收到一个用户数据包

2.在控制块表中查找相应的表项。

20 21

如果找到了相应的表项,就检查相应队列是否分配,如果没有分

配就分配一个,然后将数据插入相应的队列。

如果没找到,发送icmp端口不可达报文,并且丢弃该用户数据包。

3.返回。

输出模块:用于创建和发送用户数据包。

21 21

本文标签: 端口号数据进程端口队列