我试图找出数据包丢失和数据包重复问题之间的区别。有谁知道“数据包重复”是什么意思?和TCP丢包重传一样吗? 最佳答案 没有。在TCP中,“数据包”的传送是可靠的(我认为在这种情况下术语数据应该更好,因为它是面向流的协议(protocol))。数据包丢失和重复是与面向UDP的不可靠协议(protocol)数据报相关的问题。在UDP中,当您发送数据报时,这可能会重复到达、乱序甚至根本没有到达。Isitthesameasre-transmittingpacketswhenalossisdetectedinTCP?是也不是。假设TCP在内部
如果我有一个大的HTTP数据包被拆分成许多TCP数据包,我如何才能将它们重建回单个HTTP数据包?基本上,我应该在数据包的哪个位置查看HTTP数据包何时开始/结束?我似乎看不到TCPheader中表示HTTP数据包开始或结束的任何标志/字段。编辑:跟进响应。如果TCP管理流,它如何知道流何时开始和结束?那是由socket打开和关闭决定的吗?在某种程度上,某些协议(protocol)必须能够知道HTTP流/数据包何时开始和结束。这就是我想知道的。我所处的情况是我在C#中使用数据包嗅探器读取TCP数据包,我希望能够重建HTTP请求/响应/等。像wireshark和其他各种嗅探器一样通过界面
我正在尝试使用C#发送IP数据包。destAddress=IPAddress.Parse("192.168.0.198"),destPort=80;//CreatearawsockettosendthispacketrawSocket=newSocket(AddressFamily.InterNetwork,SocketType.Raw,ProtocolType.IP);//BindthesockettotheinterfacespecifiedIPEndPointiep=newIPEndPoint(IPAddress.Parse("192.168.0.140"),0);rawSock
是否可以在单个ip数据包上发送多个tcp或udp数据包?协议(protocol)中是否有任何规范不允许这样做。如果协议(protocol)允许但tcp/udp实现通常不这样做,您能否指出linux源代码中的相关部分来证明这一点。在某些操作系统上是否有任何tcp/udp的实现在单个ip数据包上发送多个数据包。(如果允许的话)。 最佳答案 不可能。TCPseqment头没有描述它的长度。TCP有效载荷的长度是从IP数据包的长度减去IP和TCPheader的长度得出的。因此每个IP数据包只有一个TCP段。然而,相反地,单个TCP段可以通过
我们的一位客户在将数据从我们的应用程序(在他们的PC上)提交到服务器(不同的地理位置)时遇到问题。当发送小于1100字节的数据包时,一切正常,但超过这个值,我们看到TCP每隔几秒重新传输一次数据包并且没有得到响应。我们用于测试的数据包大约为1400字节(但小于1472)。我可以向www.google.com发送1472字节的ICMPping并获得响应(因此这不是他们的路由器/前几跳)。我发现我们的应用程序为这些数据包设置了DF标志,我相信通往服务器的路由器的MTU小于/等于1100并丢弃了数据包。这会影响5000名客户中的1名,但由于每个人的路线都不同,所以这是预料之中的。数据是一个S
在客户端/服务器应用程序中,不同长度的文本数据将在客户端和服务器之间来回发送,我应该如何标记正在发送的数据包的结尾?例如,当服务器正在接收来自客户端的数据包时,服务器如何知道客户端数据包已完全接收?更常见的做法是在数据之前告诉服务器它将要接收的数据包的完整长度,还是用一些东西来标记数据包的结尾?有些发送的数据只有几个字符长,有些可能长达数千个字符。 最佳答案 TCP提供连续的数据流。TCP是使用数据包实现的,但TCP的全部意义在于隐藏它们。把它想象成一面你想在上面画画的墙。墙是用砖砌成的。砖用砂浆粘在一起,抹灰泥使墙面光滑。砖是IP
据我所知,如果必须设计Internet应用程序,我们应该使用面向连接的服务或无连接服务,但不能同时使用这两种服务。Internet的面向连接服务是TCP,无连接服务是UDP,两者都驻留在Internet协议(protocol)栈的传输层。Internet的唯一网络层是IP,它是一种无连接服务。因此,这意味着我们设计的任何应用程序最终都会使用IP来传输数据包。面向连接的服务使用相同的路径来传输所有数据包,而无连接则不然。所以我的问题是如果设计了一个面向连接的应用程序,它应该使用相同的路径传输数据包。但IP通过使用不同的路由打破了这一规则。那么从这个意义上说,TCP和IP如何协同工作呢?这
空UDP数据报的大小是多少?那一个空的TCP数据包呢?我只能找到有关MTU的信息,但我想知道它们的“基本”大小是多少,以便估算基于它们的协议(protocol)的带宽消耗。 最佳答案 TCP:以太网帧的大小-24字节IPv4header的大小(没有任何选项)-20字节TCPheader的大小(没有任何选项)-20字节承载带有空TCP段的IP数据包的以太网帧的总大小-24+20+20=64字节UDP:以太网帧的大小-24字节IPv4header的大小(没有任何选项)-20字节UDPheader的大小-8字节承载带有空UDP数据报的IP
我有一个TCP服务器监听传入的客户端,然后每秒向它发送一个数据包。我想知道,SYN/ACK数据包是否只在初始连接时发送,所以它看起来像这样:SYNACKDATADATADATA还是像这样随每个数据包一起发送?SYNACKDATASYNACKDATASYNACKDATA此外,如果是第一种情况,如果长时间保持连接打开,UDP比TCP有什么好处吗? 最佳答案 有点像:+-------------------------------------------------------+|clientnetworkserver|+--------
我需要知道在没有分段的情况下我可以发送到另一台计算机的最大UDP数据包是多少。此大小通常称为MTU(最大传输单元)。据推测,在两台计算机之间,将有许多可能具有不同MTU的路由器和调制解调器。我读到Windows中的TCP实现会自动找到路径中的最大MTU。我也在试验,我发现从我的电脑到服务器的最大MTU是57712字节+header。高于此的任何东西都被丢弃了。我的计算机在LAN上,MTU不是应该在1500字节左右吗? 最佳答案 以下内容并未直接回答您的问题,但您可能会觉得它很有趣;它说IP数据包可以被分解/重组,因此大于底层媒体的限