UDP协议如何进行通信
B并不用确定A的端口号,因为UDP本身就是不面向连接的数据传送,所以不存在连接问题。 参考如下:UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
UDP协议不需要显式的连接,需要在两个Winsock控件中间发送数据,关键需要完成以下的三步: 1.将RemoteHost属性设置为另一台计算机的名称。2.将RemotePort属性设置为第二个控件的LocalPort属性。 3.调用Bind方法,指定使用的LocalPort。

端口的协议端口
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。本地操作系统会给那些有需求的进程分配协议端口(protocol port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据包后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽象,那么继续跟我来,别走开。端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺利地回传数据包到这个端口。端口详解每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,当你的主机同时开启了FTP与WWW服务时,别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理。· 每一个 TCP 连接都必须由一端(通常为 client )发起请求,这个 port 通常是随机选择大于 1024 以上(因为0-1023一般被用作知名服务器的端口,被预定,如FTP、HTTP、SMTP等)的 port 号来进行!其 TCP封包会将(且只将) SYN旗标设定起来!这是整个联机的第一个封包;· 如果另一端(通常为 Server ) 接受这个请求的话(特殊的服务需要以特殊的 port 来进行,例如 FTP 的 port 21 ),则会向请求端送回整个联机的第二个封包!其上除了 SYN旗标之外同时还将 ACK 旗标也设定起来,并同时在本机端建立资源以待联机之需;· 然后,请求端获得服务端第一个响应封包之后,必须再响应对方一个确认封包,此时封包只带 ACK旗标(事实上,后继联机中的所有封包都必须带有 ACK 旗标);· 只有当服务端收到请求端的确认( ACK )封包(也就是整个联机的第三个封包)之后,两端的联机才能正式建立。这就是所谓的 TCP 联机的'三次握手( Three-Way Handshake )'的原理。经过三向交握之后,你的 client 端的 port 通常是高于 1024 的随机取得的 port,至于主机端则视当时的服务是开启哪一个 port 而定,例如 WWW 选择 80 而 FTP 则以 21 为正常的联机信道!总而言之,我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念。根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。那么,如果攻击者使用软件扫描目标计算机,得到目标计算机打开的端口,也就了解了目标计算机提供了哪些服务。我们都知道,提供服务就一定有服务软件的漏洞,根据这些,攻击者可以达到对目标计算机的初步了解。如果计算机的端口打开太多,而管理者不知道,那么,有两种情况:一种是提供了服务而管理者没有注意,比如安装IIS的时候,软件就会自动增加很多服务,而管理员可能没有注意到;一种是服务器被攻击者安装木马,通过特殊的端口进行通信。这两种情况都是很危险的,说到底,就是管理员不了解服务器提供的服务,减小了系统安全系数。

udp 协议 如何实现 局域网 一对多的通信?他们对应的原理是什么?腾讯qq 是用tcp还是udp?求教高手详解谢谢
QQ应该是UDP吧,tcp是要通信前要建立好连接的,QQ可以离线传送文件一对多就是“组播”的通信模式咯,源端将数据发送至一个组地址,只有加入该组的成员可以接收该数据。相比单播来说,使用组播方式传递信息,用户的增加不会显著增加网络的负载;不论接收者有多少,相同的组播数据流在每一条链路上最多仅有一份,这样就及时解决了网络中用户数量不确定的问题。另外,相比广播来说,组播数据流仅会流到有接收者的地方,不会造成网络资源的浪费。关于UDP协议如何实现组播,去分析一下UDP报文格式,及封装IP头后的格式吧,源地址与目的地址应该在IP头里说一下数据链路层吧,单播情况的数据收发过程如下:1.当上层要发送数据的时候,把数据提交给MAC子层。2.MAC子层把上层提交来的数据放入缓存区。3.然后加上目的MAC地址和自己的MAC地址(源MAC地址),计算出数据帧的长度,形成以太网帧。4.以太网帧根据目的MAC地址发送到对端设备。5.对端设备用帧的目的MAC地址,跟mAC地址表中的条目进行比较只要有一项匹配,则接收该以太网帧若无任何匹配的项目,则丢弃该以太网帧以上描述的是单播情况。如果上层应用程序加入一个组播组,数据链路层根据应用程序加入的组播组形成一个组播MAC地址,并把该组播MAC地址加入MAC地址表。这样当有针对该组的数据帧的时候,MAC子层就接收该数据帧并向上层发送。
这个还真不知道情况他们的原理是怎么样的,我好像知道有一款ESFramework的通信框架支持这样的通信,你可以去研究一下。

UDP "TCP/IP详解" 第十章 读书笔记
头部8字节, 四个字段各2Byte长度2Byte-> 在这里虽然依旧能够到达65535Byte, 但是是冗余的, 在IP数据报中已经记录大小.校验和2Byte-> 在IPv4中做12字节伪头部 or 在IPv6中做40字节伪头部进行校验.穿过NAT后, 伪头部会被修改.值得注意的是:可以容忍部分的内容错误下一头部字段 136头部中的校验和字段变成了校验范围, 能够选择校验0~65535中的前多少. 但是这个值在1~7之间是非法的, 因为头部要求必须被校验MTU常见的是1500Byte,留给UDP内容是1472Byte.如果超过这个大小, UDP就会被分片. 不同的分片段有同一个IP数据报序号.前面的片MF被设置"还有更多". 每一个分片带有偏移字段, *8后代表最终携带的字节.在非第一个分片的IP数据报中, 没有说明"下一个头部"的号码.拥有更大的偏移量的片会被优先投递, 让接收方提前知道这个UDP数据报到底有多大, 可以提前分配内存只对前两个分片报告ICMP超时, 后续的不再报告.甚至有可能根本不报告, 因为收到的前两个数据报中没有携带端口信息, 导致ICMP数据报缺少内容收到第一个分片就开始计时, 收到后续分片不重置计时器, 一般是30s超时发送的第一个UDP数据报可能默认是DF(不要分片)的, 这样如果IP数据报大小大于MTU时会被直接丢弃, 并返回一个ICMP消息. 如果在网络层报告的MTU信息之后, 这个程式还在运行, 那么就会利用这个MTU发现, 来更改DF信息, 允许分片. MTU信息也会有超时, 如果超时了, 那么又会恢复到之前的默认状态.历史问题:对于无状态的地址转化, 原来被分片后带有零校验和的IPv4-UDP不能转换, 因为变成IPv6之后没法计算(IPv6没有首部校验)虽然字段上能设置成65535 - 8 = 65527Byte, 但是应用程序不一定能接受这么大, 或者系统不接受这么大系统会API截断, 丢弃这个数据报中超出的部分 or 超出的部分留到下一次读取中 or 通知上层有多少被丢弃了. (取决于系统实现). 这被称为消息边界. TCP没有消息边界, 以"流"的形式传输.要注意IPv6和IPv4的地址长度不同, 使用不同的数据结构.IPv6的程序端口可能会同时占用Ipv4的端口如果想让重用同样的端口给不同的地址, 需要显式的通知系统.(e.g. 监听两个网卡的80端口).每一个端点都会收到一个拷贝. (端点的概念同时包含了防止多线程的进程多次读取)虽然只有<0.1%的流量是分片的, 但是70%左右的分片都是UDP的分片出现的可能因素:

名词解释dns,tcp,udp
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17
dns域名系统是用于域名转换的工具,例如你输入域名 www.baidu.com会帮助你转换为相应的网络IP地址。tcp/udp是tcp/ip协议栈中运输层的两个协议,它们有各自对应支持的应用程序。 深入了解其结构和工作原理推荐看《TCP/IP详解:卷一》

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