草庐IT

network-flow

全部标签

networking - 传输层在哪里运行?

我想知道OSI模型的传输层在计算机系统中的什么位置运行。它是操作系统的一部分吗?它是否在自己的进程或线程中运行?它如何将信息向上传递到其他应用程序或向下传递到其他层? 最佳答案 I'dliketoknowwheretheTransportLayeroftheOSImodelisrunninginacomputersystem.事实并非如此。OSI模型适用于OSI协议(protocol)套件,该套件已失效且未在任何地方运行AFAICS。然而,TCP/IP有自己的模型,其中还包括一个传输层。我将假定这就是您以后的意思。Isitparto

networking - TCP PSH 是如何工作的?

PSH是一种通过TCP发送数据的方式。除此之外,我几乎找不到关于如何正确实现它的信息。这是我感兴趣的:假设,服务器窗口为8000字节,我发送了2个请求,分别为150字节和600字节。我是否得到某种确认已收到数据?我能以某种方式触发确认吗?我见过一些ACK数据包,它们不包含PSH但包含某种有效负载数据(Wireshark将其标记为“TCP段数据”)。这些数据是否传递给用户,如果是,我们为什么需要PSH标志? 最佳答案 TCPPSH通常根本“不起作用”。Berkely派生的TCP实现完全忽略它。来源:W.R.Stevens,TCP/IP

networking - TCP 在 GHCi 中工作,在使用 Leksah 编译的程序中缓冲直到程序退出

我编写了这个简单的原型(prototype)客户端来向我正在开发的服务器发送命令。它在GHCi中运行完美,但编译版本会缓冲输入的所有内容,直到我输入“退出”并退出程序。那时所有的输入文本都被发送了。我做错了什么?为什么编译时会有所不同?更新:如果使用ghcMain.hs编译,它会按预期工作。使用Leksah编译时会出现问题通过包->构建。有人知道如何获取Leksah使用的命令行吗?系统信息:OSX10.6、GHC7.0.3、网络2.3.0.2moduleMain(main)whereimportSystem.IOimportNetworkmain=dohServerIO()loophS

networking - 传输 100kb/s 的网络的实际位传输速率是多少?

例如,当通过Internet传输1GB的数据时,这些数据被分成数据包,每个数据包包含一小块数据,并且每个数据包都是帧的一部分。例如。Windows报告您正在通过TCP连接以100kb/s的速度传输文件,但这似乎是每秒传输的文件数据量,并且似乎不包括ip或tcpheader或以太网帧。以这种速度传输所需的网络实际流量是多少?还是该数据实际上已经包含在传输速度中,但只是小到没有显着差异?此外,IP最多支持1500字节/数据包(我认为?),但是在加载reddit上的高清图像时,数据包的常见大小是多少?很抱歉我现在可能应该自己弄清楚这些相当基本的问题...... 最

networking - 区分在同一端口上复用的 RTP 和 RTCP 数据包

我正在使用Tcpdump在我的网络接口(interface)上捕获数据包。在Wireshark中,我可以看到RTP和RTCP事务在同一个端口上进行。我正在使用Libpcap编写一个解析器,它将解析并将所有RTP和RTCP数据包保存在不同的文件中。问题我如何区分哪个是RTP包,哪个是RTCP包? 最佳答案 通常是RTP和RTCPareusingadifferentport.但是,Duckduckgoing“同一端口上的RTP和RTCP”给了我MultiplexingRTPandRTCPonaSinglePort,RFC5761.Sec

networking - 适用于 Windows 的 tcpflow

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestionwindows有tcpflow之类的工具吗?我只需要嗅探tcp的数据(没有header)。我更喜欢使用命令行工具,例如我可以grep输出。

c - 以编程方式更改 "Advanced TCP/IP Settings"- 正在检查 "Use Default Gate Way on Remote Network"

描述:我以编程方式创建了一个拨号连接,以便与我的设备和笔记本电脑进行通信。一旦建立了拨号连接创建的连接,我通过LAN连接的互联网连接就无法正常工作,我的LAN连接(用于互联网连接)的状态保持连接状态。为了解决这个问题,我需要取消选中“在远程网络上使用默认网关”选项,右键单击我的拨号连接->属性->网络选项卡->选择Internet协议(protocol)(TCP/IP)->属性->高级->我获得高级TCP/IP设置->取消选中“在远程网络上使用默认网关”。我正在使用RAS函数为我的拨号连接创建电话簿。是否有任何结构可用于将此作为选项。我没有找到任何结构参数来使它成为一个选项。请指教..

networking - 如何在 node.js 中监听一个随机的 tcp 套接字

我知道我可以在node.js中创建一个类似的tcp服务器vardataServer=net.createServer(function(stream){});dataServer.on("listening",function(){//thisdataserverlistentoarandomport//buthowcanIgetthenumberofportconsole.log(dataServer.localPort)}dataServer.listen(0,'0.0.0.0');但我不知道如何获取端口号并发送到另一个服务。或者我应该找到一个随机的可用端口并传递给dataServ

networking - 为什么在建立连接后的第一个 TCP 请求中 ACK = 1 而不是 2?

我对3次握手后TCP数据包中的ACK和SEQ编号感到困惑。我认为ACK编号是下一个预期的SEQ编号。所以当我在Wireshark中分析TCP连接时,它说TCPSYNwithSEQ=0TCPSYNACKwithSEQ0,ACK=1(clear,serverexpectsSEQ1innextpacket)TCPACKwithSEQ1,ACK=1(clear,senderexpectsSEQ1innextpacket)HTTPRequest:TCPPSHACKwithSEQ1,ACK=1最后一行不清楚。我会说发件人接下来期望SEQ=2,所以它应该是ACK=2?已经有一个来自服务器的SEQ=1

networking - ACK 和 SEQ 背后的基本原理?

我不确定人们是否觉得这很明显,但我有两个问题:在3次握手期间,为什么ACK=SEQ+1,即为什么我要对我期望来自发送方的下一个字节进行ACK?握手后,我的ACK=SEQ+len。为什么这与握手不同?为什么不只是对我期望的下一个字节进行ACK(与握手期间相同)?我知道我一定在某处遗漏了一个基本点。有人可以澄清一下吗? 最佳答案 这是因为序列号空间的第一个字节对应于SYN标志,而不是数据字节。(末尾的FIN标志本身也占用一个字节的序号空间。) 关于networking-ACK和SEQ背后的基