草庐IT

tcp - 为什么UDP没有 "accept()"?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我是从实际意义上问的。在TCP中,accept()将为每个connect()提供新的套接字。它允许仅与一个服务器端口进行多个并发通信。问题是为什么我们在UDP中没有这么方便?不要告诉我UDP是无连接的,因此......从逻辑上讲,accept()与此无关(底层IP无论如何都是无连接的)。一个后果是您必须应用大量UDP端口,这可能会使防火墙设置复杂化。所以我

linux - 如何使用 proc 命令跟踪 UDP 数据包丢失

我需要在我的LINUX机器上跟踪UDP接收队列丢弃。因为我正在使用以下命令`cat/proc/net/udp并且输出是sllocal_addressrem_addresssttx_queuerx_queuetrtm->whenretrnsmtuidtimeoutinode20:00000000:861400000000:00000700000000:0000000000:0000000000000000500044306002ffff81007a40b380`我在这里没有得到任何关于udp丢弃的信息..?无论如何定制proc/net/udp。 最佳答案

c++ - 在 Linux 中获取 TCP/UDP 表

有没有办法获取与它们关联的tcp、udp连接和进程的列表?我在Windows中使用“GetExtendedTcpTable()”和“GetExtendedUdpTable()”完成了此操作,我想在Linux中实现相同的功能。有人可以帮忙吗?谢谢。 最佳答案 你可以这样做:#include#includeintmain(){std::ifstreamtcp("/proc/net/tcp");std::stringline;while(std::getline(tcp,line))std::cout要发现还有哪些其他名称可用,请在命令行

sockets - UDP有多安全?

我正在考虑是使用TCP还是UDP来进行我正在处理的一些非常简单的通信。以下是基本细节:所有消息都放在一个1500字节的数据包中(因此顺序无关紧要)这些消息的收件人将受到来自许多不同来源的数据包的轰炸。TCP可以处理拥塞,但是从数十个或数百个源同时到达同一端口的UDP数据包是否会相互破坏?丢失/损坏的消息不是什么大问题。只要他们仍然是少数,并且他们被正确识别为无效,他们就可以被忽略数据包以波浪的形式到达,几秒钟内每秒几个,然后几分之一秒内到达数万个。网络应该能够处理这些峰值中的带宽您是否发现为此使用UDP有任何问题,请记住顺序无关紧要,可以安全地忽略丢失/损坏的数据包,并且这些数据包峰值

tcp - 当某些协议(protocol)直接通过 IP 时,为什么还需要 UDP?

据我所知,TCP是拥塞控制和错误恢复或将信息从一个节点可靠地传递到另一个节点所必需的,它并不是传递信息最快的协议(protocol)。某些路由协议(protocol)(例如EIGRP和OSPF)直接运行在IP之上。甚至ICMP也直接通过IP。为什么甚至需要UDP?它是否只是为了让开发人员/程序员可以根据数据包中包含的目标端口号来识别入站数据包应该发送到哪个应用程序?如果是这种情况,那么在没有端口号信息的情况下,如何从直接位于IP之上的协议(protocol)收集的信息发送到适当的进程?为什么语音和视频通过UDP发送?为什么不直接通过IP?(请注意,我确实完全理解TCP的用例。我不是在问

java - 为什么我的 TCP 系统比 UDP 系统快?

我有两个(客户端-服务器-客户端)系统。第一个使用TCP,第二个使用UDP。有趣的是,在传输5-6MB的文件时,我使用TCP的系统比使用UDP的系统更快。出现问题是因为我的编码错误还是会发生?TCP客户端try{socket=newSocket("localhost",7755);}catch(Exceptione){System.out.println(e.getMessage().toString());}out=newPrintWriter(socket.getOutputStream(),true);inti=0;while(file.hasNext()){Stringline

networking - UDP 和 TCP 有什么区别?

在维基百科中浏览RUDP时,我得到以下定义为了确保质量,它通过添加以下附加功能来扩展UDP:1.接收数据包的确认2.开窗与流量控制3.丢包重传4.过度缓冲(比实时流更快)这也是TCP所做的。现在,当这些功能实现到UDP时,两者之间的最大区别是什么。我是网络新手,请解释。 最佳答案 TCP在开始通信流之前在2个端点之间建立持久连接。RUDP没有,因为它在UDP之上提供服务。来自draftRUDPislayeredontheUDP/IPProtocolsandprovidesreliablein-orderdelivery(uptoam

tcp - 为什么我需要 UDP 上的源端口

当我使用TCP时,我需要目标端口(以便能够与另一台主机上的其他进程“对话”)和源端口(因为TCP是面向连接的,所以我会像ack、seq和更多的)。另一方面,无连接的UDP也需要源端口。这是为什么呢?(我不需要发回数据) 最佳答案 可能有两个原因。首先,接收者通常需要回复,为此提供标准工具很有用。其次,您可能有多个接口(interface)(网卡)并使用源地址,您决定必须使用其中的哪个来发出数据包。 关于tcp-为什么我需要UDP上的源端口,我们在StackOverflow上找到一个类似的

ios - 我可以编写使用 TCP/UDP 通信的 iPhone/iPad 应用程序吗?

Apple是否允许在iOS应用程序中使用套接字(TCP或UDP)并允许它们在AppStore上使用?如果是,请提供Apple的官方确认或一些应用示例。 最佳答案 是的。从这个landingpage开始iOS网络主题。如果您想使用UDP/TCP,请查看CFNetworkProgrammingGuide;特别是流。通常您会集成bonjour进入您的应用程序,以便您获得通过流(BSD套接字)建立TCP/UDP通信所需的信息:BonjouristhepowerfulzeroconfigurationprotocolfromApplethat

tcp - 如果您实现了自己的错误检查,为什么还要使用 TCP 而不是 UDP?

我在网上阅读了很多关于为什么要使用UDP或TCP的资料,但我仍然需要帮助来理解一些东西。如果我在我的应用程序中实现错误检查和重新传输,我为什么还要考虑使用TCP?开发人员利用TCP的内置功能而不是在应用层自己实现它们是否更方便?我知道TCP包括流量控制,这使得它对网络上的其他服务更友好,但是,如果我是一个自私的SCSS,可以对其他人都该死并希望我的应用程序尽可能快,我不会选择UDP在每种情况下?在您的应用程序中重新实现TCP的功能是否是一项艰巨的任务?我只是需要帮助来理解,如果UDP快得多,为什么每个应用程序不会在所有情况下都使用UDP。 最佳答案