标签: network-programming

如何使用tcpdump捕获所有HTTP数据包

我想运行tcpdump一些参数(仍然不知道要使用什么),然后加载stackoverflow.com页面.

输出应该是HTTP通信.后来,我想将它用作shell脚本,所以每当我想检查站点site.com的HTTP通信时,我就可以运行了script.sh site.com.

HTTP通信应该足够简单.像这样:

GET /questions/9241391/how-to-capture-all-the-http-communication-data-using-tcp-dump
Host: stackoverflow.com
... 
...

HTTP/1.1 200 OK
Cache-Control: public, max-age=60
Content-Length: 35061
Content-Type: text/html; charset=utf-8
Expires: Sat, 11 Feb 2012 15:36:46 GMT
Last-Modified: Sat, 11 Feb 2012 15:35:46 GMT
Vary: *
Date: Sat, 11 Feb 2012 15:35:45 GMT


....
decoded deflated data
....
Run Code Online (Sandbox Code Playgroud)

现在,我应该使用哪些选项tcpdump来捕获它?

bash network-programming http tcpdump

39
推荐指数
2
解决办法
7万
查看次数

为最大吞吐量,UDP数据包的最佳大小是多少?

我需要通过可能有损的网络将数据包从一个主机发送到另一个主机.为了最小化数据包延迟,我不考虑TCP/IP.但是,我希望最大化吞吐量uisng UDP.应该使用的UDP数据包的最佳大小是多少?

以下是我的一些注意事项:

  • 网络中交换机的MTU大小为1500.如果我使用大数据包,例如8192,则会导致碎片.丢失一个片段会导致丢失整个数据包,对吧?

  • 如果我使用较小的数据包,我将产生UDP和IP头的开销

  • 如果我使用一个非常大的数据包,我可以使用的最大数据包是多少?我读到最大的数据报大小是65507.我应该使用什么缓冲区大小来发送这样的大小?这有助于提高我的吞吐量吗?

  • 常见操作系统(例如Windows,Linux等)支持的典型最大数据报大小是多少?

更新:

数据的一些接收器是未实现TCP/IP堆栈的嵌入式系统.

我知道这个地方到处都是那些非常喜欢使用可用内容的人.但我希望能得到更好的答案,而不仅仅关注MTU.

c++ linux windows udp network-programming

38
推荐指数
4
解决办法
5万
查看次数

38
推荐指数
1
解决办法
3万
查看次数

使用C/C++(GCC/G ++)在Linux中使用套接字编程发送和接收文件

我想使用能够发送和接收文件的套接字和C/C++语言实现在Linux上运行的客户端 - 服务器体系结构.是否有任何库使这项任务变得简单?有人可以提供一个例子吗?

c c++ sockets linux network-programming

37
推荐指数
4
解决办法
11万
查看次数

C:套接字连接超时

我有一个简单的程序来检查端口是否打开,但我想缩短套接字连接的超时长度,因为默认值太长.我不知道该怎么做.这是代码:

#include <sys/socket.h>
#include <sys/time.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char **argv) {
    u_short port;                /* user specified port number */
    char addr[1023];             /* will be a copy of the address entered by u */
    struct sockaddr_in address;  /* the libc network address data structure */
    short int sock = -1;         /* file descriptor for the network socket */

    if (argc != …
Run Code Online (Sandbox Code Playgroud)

c network-programming

37
推荐指数
7
解决办法
12万
查看次数

的java.net.UnknownHostException

我正在使用jdk1.6.0_23安装CSVN,我收到以下Java错误:

2011-02-10 16:25:50,951 [WrapperJarAppMain] WARN util.GrailsUtil - [WARNING] Property [ldapServerPort] of domain class com.collabnet.svnedge.console.Server has type [int] and doesn't support constraint [nullable]. This constraint will not be checked during validation.
2011-02-10 16:25:51,117 [WrapperJarAppMain] ERROR ehcache.Cache - Unable to set localhost. This prevents creation of a GUID. Cause was: vkqgae01: vkqgae01
java.net.UnknownHostException: vkqgae01: vkqgae01
at java.net.InetAddress.getLocalHost(InetAddress.java:1354)
at net.sf.ehcache.Cache.<clinit>(Cache.java:143)
Run Code Online (Sandbox Code Playgroud)

我的服务器有3个NIC(eth0,eth1和eth2).我在以下主机文件中添加了一个条目,包含以下内容:127.0.0.1 vkqgae01

我可以成功ping vkqgae01,但nslookup无法解决它.

有任何想法吗?

java network-programming

37
推荐指数
2
解决办法
9万
查看次数

AlamoFire在后台会话中下载

我在一个新应用程序中使用Alamofire(基于Alamofire的下载管理器示例)我需要一些关于使用后台会话下载文件的说明.我需要覆盖SessionDelegate才能使它工作?还是只是backgroundCompletionHandler

通常使用Alamofire处理后台下载的步骤是什么?我如何处理我的应用程序相关的情况,下载量不断变化.

network-programming ios swift alamofire

37
推荐指数
3
解决办法
2万
查看次数

网络通信设计模式

我已经意识到我过去曾问过几个问题,比如这个问题真的归结为一个更基本的问题.

是否有任何众所周知的网络通信设计模式,以及它的性质,协议构造/解析?谷歌搜索没有透露太多.

请注意,我不是在寻找任何给定问题的解决方案,我正在寻找处理网络通信及其协议的文档化设计模式.

编辑:

请不要提出各种实现细节或讨论特定协议,除非它与设计模式相关联.协议设计不是问题,它是用于创建或解析我正在寻找的协议的设计模式,更不用说通信模式本身了.

EDIT2:

我发现很难相信没有人提出任何常见的网络通信模式.是的,我知道"这取决于",但你可以说任何项目,但有很多模式涵盖一般的想法.

design-patterns network-programming network-protocols

36
推荐指数
2
解决办法
2万
查看次数

使用TcpClient通过网络发送和接收数据

我需要开发一个连接到TCP服务器的服务.主要任务是读取传入消息,并在十分钟内将命令发送到服务器,如同步命令.例如,我使用了TcpClient对象,如下所示:

...
TcpClient tcpClient = new TcpClient();
tcpClient.Connect("x.x.x.x", 9999);
networkStream = tcpClient.GetStream();
clientStreamReader = new StreamReader(networkStream);
clientStreamWriter = new  StreamWriter(networkStream);
while(true)
{
   clientStreamReader.Read()
}
Run Code Online (Sandbox Code Playgroud)

此外,当我需要在任何方法中写出一些内容时,我使用:

 clientStreamWriter.write("xxx");
Run Code Online (Sandbox Code Playgroud)

这种用法是否正确?或者,还有更好的方法?

c# network-programming tcpclient

35
推荐指数
3
解决办法
25万
查看次数

Web服务器如何在单个端口(80)上一次处理多个用户的传入请求?

Web服务器如何在单个端口上同时处理多个传入请求(80)?

示例:同时,300k用户希望从www.abcdef.com看到分配了IP 10.10.100.100和端口80的图像.那么www.abcdef.com如何处理这些传入用户的负载?

一台服务器(分配有IP 10.10.100.100)可以处理这么多的传入用户吗?如果没有,那么如何将一个IP地址分配给多个服务器来处理此负载?

networking network-programming tcp web-applications web

35
推荐指数
4
解决办法
4万
查看次数