udp不建立连接怎么通信(UDP需要建立连接吗)

      最后更新:2022-11-24 20:59:51 手机定位技术交流文章

      如何实现TCP和UDP传输

      划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。网络中可以被命名和寻址的通信端口是操作系统的一种可分配资源。由网络OSI(开放系统互联参考模型,OpenSystemInterconnectionReferenceModel)七层协议可知,传输层与网络层最大的区别是传输层提供进程通信能力,网络通信的最终地址不仅包括主机地址,还包括可描述进程的某种标识。所以TCP/IP协议提出的协议端口,可以认为是网络通信进程的一种标识符。应用程序(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。由于TCP/IP传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立。如TCP有一个255号端口,UDP也可以有一个255号端口,两者并不冲突。端口号有两种基本分配方式:第一种叫全局分配这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(binding,绑定)。TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口叫周知口,即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。TCP和UDP规定,小于256的端口才能作为保留端口。按端口号可分为3大类:(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。系统管理员可以"重定向"端口:一种常见的技术是把一个端口重定向到另一个地址。例如默认的HTTP端口是80,不少人将它重定向到另一个端口,如8080。如果是这样改了,要访问本文就应改用这个地址.cn:8080。端口漏洞:8080端口可以被各种病毒程序所利用,比如BrownOrifice(BrO)特洛伊木马病毒可以利用8080端口完全遥控被感染的计算机。另外,RemoConChubo,RingZero木马也可以利用该端口进行攻击。操作建议:一般我们是使用80端口进行网页浏览的,为了避免病毒的攻击,我们可以关闭该端口。端口:21服务:FTP说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所开放的端口。端口:22服务:Ssh说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。端口:23服务:Telnet说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马TinyTelnetServer就开放这个端口。端口:25服务:SMTP说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、EmailPasswordSender、HaebuCoceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口。端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口。端口:102服务:Messagetransferagent(MTA)-X.400overTCP/IP说明:消息传输代理。端口:109服务:PostOfficeProtocol-Version3说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。端口:110服务:SUN公司的RPC服务所有端口说明:常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等端口:119服务:NetworkNewsTransferProtocol说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。端口:135服务:LocationService说明:Microsoft在这个端口运行DCERPCend-pointmapper为它的DCOM服务。这与UNIX111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-pointmapper注册它们的位置。远端客户连接到计算机时,它们查找end-pointmapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行ExchangeServer吗?什么版本?还有些DOS攻击直接针对这个端口。端口:137、138、139服务:NETBIOSNameService说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINSRegisrtation也用它。端口:161服务:SNMP说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络端口:177服务:XDisplayManagerControlProtocol说明:许多入侵者通过它访问X-windows操作台,它同时需要打开6000端口。端口:389服务:LDAP、ILS说明:轻型目录访问协议和NetMeetingInternetLocatorServer共用这一端口。限制端口防非法入侵[分享]一般来说,我们采用一些功能强大的反黑软件和防火墙来保证我们的系统安全,本文拟用一种简易的法——通过限制端口来帮助大家防止非法入侵。非法入侵的方式简单说来,非法入侵的方式可粗略分为4种:1、扫描端口,通过已知的系统Bug攻入主机。2、种植木马,利用木马开辟的后门进入主机。3、采用数据溢出的手段,迫使主机提供后门进入主机。4、利用某些软件设计的漏洞,直接或间接控制主机。非法入侵的主要方式是前两种,尤其是利用一些流行的黑客工具,通过第一种方式攻击主机的情况最多、也最普遍;而对后两种方式来说,只有一些手段高超的黑客才利用,波及面并不广泛,而且只要这两种问题一出现,软件服务商很快就会提供补丁,及时修复系统。对于个人用户来说,您可以限制所有的端口,因为您根本不必让您的机器对外提供任何服务;而对于对外提供网络服务的服务器,我们需把必须利用的端口(比如WWW端口80、FTP端口21、邮件服务端口25、110等)开放,其他的端口则全部关闭。这里,对于采用Windows2000或者WindowsXP的用户来说,不需要安装任何其他软件,可以利用“TCP/IP筛选”功能限制服务器的端口。具体设置如下:1、右键点击“网上邻居”,选择“属性”,然后双击“本地连接”(如果是拨号上网用户,选择“我的连接”图标),弹出“本地连接状态”对话框。2、点击[属性]按钮,弹出“本地连接属性”,选择“此连接使用下列项目”中的“Internet协议(TCP/IP)”,然后点击[属性]按钮。3、在弹出的“Internet协议(TCP/IP)”对话框中点击[高级]按钮。在弹出的“高级TCP/IP设置”中,选择“选项”标签,选中“TCP/IP筛选”,然后点击[属性]按钮。4、在弹出的“TCP/IP筛选”对话框里选择“启用TCP/IP筛选”的复选框,然后把左边“TCP端口”上的“只允许”选上。这样,您就可以来自己添加或删除您的TCP或UDP或IP的各种端口了。添加或者删除完毕,重新启动机器以后,您的服务器就被保护起来了。最后,提醒个人用户,如果您只上网浏览的话,可以不添加任何端口。但是要利用一些网络联络工具,比如OICQ的话,就要把“4000”这个端口打开,同理,如果发现某个常用的网络工具不能起作用的时候,请搞清它在您主机所开的端口,然后在“TCP/IP“里把此端口打开以上来源于网络,不过分析得很好了相同点:都处于传输层不同点:TCP~面向连接、可靠、传输慢、保证数据的顺序UDP~面向无连接、不可靠、传输快、数据按照不同路径到,不保证数据顺序且两者传输的模式不一样
      面向连接的TCP “面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。面向非连接的UDP协议“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。 TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。
      如何实现TCP和UDP传输

      计算机网络-运输层-用户数据报协议UDP

      用户数据报协议UDP只在IP的数据报服务之上增加的功能:复用和分用的功能以及差错检测的功能。 UDP的主要特点是:(1) UDP是无连接的 ,即发送数据之前不需要建立连接(当然,发送数据结束时也没有连接可释放),因此了开销和发送数据之前的时延。(2) UDP使用尽最大努力交付 ,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数)。(3) UDP是面向报文的 。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,如图5-4所示。在接收方的UDP,对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程。也就是说,UDP一次交付一个完整的报文。因此,应用程序必须选择合适大小的报文,若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率。反之,若报文太短,UDP把它交给IP层后,会使IP数据报的首部的相对长度太大,这也降低了IP层的效率。(4)UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如P电话、实时祝频会议等)要求源主机以恒定的速率发递数据,并且允许在网铬发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。(5)UDP支持一对一、一对多、多对一和多对多的交互通信.(6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。(7)网络环境差的情况下,丢包严重。虽然某些实时应用需要使用没有拥塞控制的UDP,但当很多的源主机同时都向网络发送高速率的实时视领流时,网铬就有可能发生拥塞。结果大家都无法正常接收。因此,不使用拥塞控制功能的UDP有可能会引起网络产生严重的拥塞问题。还有一些使用UDP的实时应用,需要对UDP的不可靠的传输进行适当的改进,以减少数据的丢失。在这种情况下,应用进程本身可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传己丢失的报文。用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节(图5-5),由四个字段组成,每个字段的长度都是两个字节。各字段意义如下:(1)源端口   源端口号。在需要对方回信时选用。不需要时可用全0。(2)目的端口   目的端口号。这在终点交付报文时必须使用。(3)长度    UDP用户数据报的长度,其最小值是8(仅有首部)。(4)检验和    检测UDP用户数据报在传输中是否有错。有错就丢弃。伪首部的第3字段是全零;第4字段是P首部中的协议字段的值,对于 UDP协议字段值为17 ;第5字段是UDP用户数据报的长度。当运输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交最后的终点一应用进程。如果接收方UDP发现收到的报文中的目的端口号不正确(即不存在对应于该端口号的应用进程),就丢弃该报文,并由 网际控制报文协议ICMP发送“端口不可达”差错报文 给发送方。“ICMP的应用”中的traceroute时,就是让发送的UDP用户数据报故意使用一个非法的UDP端口,结果ICMP就返回“端口不可达”差错报文,因而达到了测试的目的。请注意,虽然在UDP之间的通信要用到其端口号,但由于UDP的通信是无连接的,因此不需要使用套接字(TCP之间的通信必须要在两个套接字之间建立连接)。UDP用户数据报首部中检验和的计算方法有些特殊。在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。所谓“伪首部”是因为这种伪首部并不是UDP用户数据报真正的首部。只是在计算检验和时,临时添加在UDP用户数据报前面,得到一个临时的UDP用户数据报。检验和就是按照这个临时的UDP用户数据报来计算的。伪首部既不向下传送也不向上递交,而仅仅是为了计算检验和。UDP计算检验和的方法 和计算IP数据报首部检验和的方法相似。但不同的是:IP数据报的检验和只检验IP数据报的首部,但UDP的检验和是把首部和数据部分一起都检验。 在发送方 ,首先是先把全零放入检验和字段。再把伪首部以及UDP用户数据报看成是由许多16位的字串接起来的。若UDP用户数据报的数据部分不是偶数个字节,则要填入一个全零字节(但此字节不发送)。然后按二进制反码计算出这些16位字的和。将此和的二进制反码写入检验和字段后,就发送这样的UDP用户数据报。 在接收方 ,把收到的UDP用户数据报连同伪首部(以及可能的填充全零字节)一起,转为8位数二进制,然后按二进制反码求这些16位字的和。当无差错时其结果应为全1。否则就表明有差错出现,接收方就应丢弃这个UDP用户数据报(也可以上交给应用层,但附上出现了差错的警告)。 检验和 ,既检查了UDP用户数据报的源端口号和目的端口号以及UDP用户数据报的数据部分,又检查了IP数据报的源P地址和目的地址。 这里假定用户数据报的长度是15字节,因此要添加一个全0的字节。这种简单的差错检验方法的检错能力并不强,但它的好处是简单,处理起来较快。
      计算机网络-运输层-用户数据报协议UDP

      为什么UDP提供一种无连接服务

      UDP的特点: UDP协议使用IP层提供的服务把从应用层得到的数据从一台主机的某个应用程序传给网络上另一台主机上的某一个应用程序。UDP协议有如下的特点:1、UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。2、UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。3、UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。4、UDP传送数据较TCP快速,系统开销也少。######################################举个例子,有连接的服务是这样的,我要发个东西给你,我先喊你一声,然后你听到了,然后回答我,说我听到了,传过来吧,然后我把东西传过去无连接的是:我直接把东西传过去你问的不大好。我觉得你可以问,为什么它是不可靠的,因为它是无连接的##################没有为什么是无连接的服务,这个是其特性,没有为什么。所谓连接,是数据传送前的通信,如TCP/ip的三次握手一样 不知说了这么多,你明白了没有 ?
      为什么UDP提供一种无连接服务

      用UDP进行通信要连接网络吗?

      当然需要!UDP面向不连接是说,在数据传输过程中,不建立固定的端到端连接,而是数据包在传输过程中随机选择可用网络线路进行传输,以到达目的地,实现通信过程!不连接网络是无法进行数据传输的,也就无法通信。
      用UDP进行通信要连接网络吗?

      UDP连接方式详解

      服务器端(接收端)程序: 1、创建套接字(socket)。2、将套接字绑定到一个本地地址和端口上(bind)。3、等待接收数据(recvfrom)。4、关闭套接字。客户端(发送端)程序:1、创建套接字(socket)。2、向服务器发送数据(sendto)。3、关闭套接字。 client.c#include #include void main(){ WORD wVersionRequested; WSADATA wsaData; int err;wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) {return; } if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 ) {WSACleanup( );return; } SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr("222.26.28.227"); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(5001); sendto(sockClient,"Hello",strlen("Hello")+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));// printf("%dn", sendto(sockClient,"Hello",strlen("Hello")+1,0,//(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))); closesocket(sockClient); WSACleanup();}server.c#include #include void main(){ WORD wVersionRequested; WSADATA wsaData; int err;wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) {return; }if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 ) {WSACleanup( );return; } SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(5001); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); SOCKADDR_IN addrClient; int len = sizeof(SOCKADDR);// int len=sizeof(addrClient); char recvBuf[100] = ""; printf("Wating for message from others: n");int a = recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len); if(a == SOCKET_ERROR) {printf("Errorn");printf("%sn", WSAGetLastError()); } printf("%sn",recvBuf); closesocket(sockSrv); WSACleanup();}
      它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。
      UDP连接方式详解

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/46085.html

          热门文章

          文章分类