草庐IT

network-flow

全部标签

networking - UDP/TCP中使用伪报头的意义是什么

为什么是Pseudoheader预先添加到UDP数据报以计算UDP校验和?这背后的道理是什么? 最佳答案 最接近您“直接从马嘴里”得到答案的是来自DavidP.Reed的以下链接。http://www.postel.org/pipermail/end2end-interest/2005-February/004616.html答案的简短版本是,“伪header的存在是出于历史原因”。最初,TCP/IP是一个单一的整体协议(protocol)(简称TCP)。当他们决定将其拆分为TCP和IP(以及其他)时,他们并没有将两者完全分开:IP

networking - 从子网掩码计算IP范围

比如,我有一个子网255.255.255.242,我在该子网中有一个已知IP,比如192.168.1.101。现在我计算IP范围的方式是这样的:在子网掩码中,找到第一个不是255的八位字节。在我的示例中,它是第4个八位字节,它是242。所以用256减去242,得到14。所以我们现在知道这些网络,192.168.1.x网络,范围都是14。所以就开始列出它们吧……192.168.1.0192.168.1.14192.168.1.28....42....56....70....84....98....112到这里我们可以停下来了。我的地址192.168.1.101属于.98网络。.98包含从

networking - 如何连接两个 tcpdump 文件(pcap 文件)

如何连接两个tcpdump文件,使一个流量在文件中出现一个接一个?具体来说,我想“乘以”一个tcpdump文件,这样所有的session将一个接一个地按顺序重复几次。 最佳答案 mergecap可以解决您的问题,但您必须将它与“-a”选项一起使用,否则它会临时重新排序数据包。然后:mergecap-afile_1.pcapfile_1.pcapfile_1.cap-woutput_file.pcap 关于networking-如何连接两个tcpdump文件(pcap文件),我们在Stac

networking - 计算 TCP 包数据的大小和开始(不包括包头)

我将如何计算TCP数据包中数据的大小和起始字节(不包括header信息)? 最佳答案 我假设您正在处理TCP/IP数据包。您需要自己计算这个尺寸。IPheader有一个“总长度”字段,以字节为单位为您提供整个IP数据包的长度。如果减去构成header的32位字的数量(由IPheader中的header长度字段给出),您将知道TCP数据包的大小。通常,IP数据包的header为20字节,除非存在选项。在TCPheader,DataOffset字段以32位字指定TCPheader的大小。同样,您可以从之前计算的TCP数据包大小中减去该数

networking - 端口号在 TCP 中是如何工作的?

https://serverfault.com/questions/296603/understanding-ports-how-do-multiple-browser-tabs-communicate-at-the-same-timehowcananapplicationuseport80/HTTPwithoutconflictingwithbrowsers?Howdomultipleclientsconnectsimultaneouslytooneport,say80,onaserver?我已阅读上述问题,但似乎答案不一致。我想知道究竟是什么定义了套接字连接,是吗:(sockid,

networking - Google 的 QUIC 有独立的库吗?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。ImprovethisquestionGoogle最近发布了名为QUIC的实验性传输协议(protocol)作为Chrome中的命名空间net.quic。我很乐意使用它,因为它看起来非常适合我的用例,但是我似乎找不到任何关于将它用作独立库的指南。除了Chrome源代码之外,是否有任何可用的方法将QUIC作为独立库获取?GoogleSlideDeck

networking - IP分片和重组

我目前正在浏览我的网络幻灯片,想知道是否有人可以帮助我了解分段和重组的概念。我理解它是如何工作的,即数据报是如何被分割成更小的block的,因为网络链路有一个MTU。然而,图片中的例子让我感到困惑。所以前两节显示长度为1500,因为这是MSU,但这不应该意味着最后一个应该有1000(总共4000字节)而不是1040?这些额外的40个字节从何而来?我的猜测是因为前两个片段都有20字节的header,这额外的40字节数据需要去某个地方,所以它会到达最后一个片段?Fragflag本质上意味着还有另一个片段,所以除了最后一个片段为零之外,所有片段的Fragflag都为1。但是我不明白什么是偏移

networking - 当 tcp/udp 服务器发布速度快于客户端消耗速度时会发生什么?

我试图了解当服务器发布(通过tcp、udp等)速度快于客户端消费数据时会发生什么。在一个程序中,我知道如果队列位于生产者和消费者之间,它会开始变大。如果没有队列,那么生产者将无法生产任何新东西,直到消费者可以消费(我知道可能会有更多变化)。我不清楚当数据离开服务器(可能是不同的进程、机器或数据中心)并发送到客户端时会发生什么。如果客户端不能足够快地响应传入的数据,假设服务器和消费者的耦合非常松散,那么传输中的数据会怎样?我在哪里可以阅读以获取有关此主题的详细信息?我是否只需要阅读TCP/UDP的底层细节?谢谢 最佳答案 对于TCP,

network-programming - 当服务器接受 TCP 连接时端口是否改变?

当客户端使用TCP连接到服务器时,会为TCP流创建一个新的套接字。连接是否保留在建立连接的同一端口上,还是更改为其他端口? 最佳答案 新套接字是一个应用程序级概念,因为每个已建立的连接都需要一个唯一的文件描述符(也不同于监听文件描述符),它映射到TCPsession,但并不相同。session本身由源地址和目标地址以及端口的组合来标识。源(客户端)端口通常是随机选择的,而目标(服务器)端口是监听端口。没有分配额外的端口。 关于network-programming-当服务器接受TCP连接

networking - 如果 TCP 是面向连接的,为什么数据包会遵循不同的路径?

据我所知,如果必须设计Internet应用程序,我们应该使用面向连接的服务或无连接服务,但不能同时使用这两种服务。Internet的面向连接服务是TCP,无连接服务是UDP,两者都驻留在Internet协议(protocol)栈的传输层。Internet的唯一网络层是IP,它是一种无连接服务。因此,这意味着我们设计的任何应用程序最终都会使用IP来传输数据包。面向连接的服务使用相同的路径来传输所有数据包,而无连接则不然。所以我的问题是如果设计了一个面向连接的应用程序,它应该使用相同的路径传输数据包。但IP通过使用不同的路由打破了这一规则。那么从这个意义上说,TCP和IP如何协同工作呢?这