网络与服务器
文章平均质量分 81
deerleaper
这个作者很懒,什么都没留下…
展开
-
网络基本功(十七):细说tcpdump的妙用(上)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 tcpdump命令最初设计用于观察TCP/IP性能问题,它是一个用于截取网络分组,并输出分组内容的工具。tcpdump可以将网络中传送的数据包的报文头完全截获下来提供分析,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and, or, not等转载 2015-02-27 14:30:40 · 543 阅读 · 0 评论 -
细说网络那些事儿之网络基本功(一):细说网络传输
网络基本功(一):细说网络传输转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 常言道:欲练神功,必先练好基本功。之前做了一个关于IP路由,默认网关和掩码的问答贴,做完这个帖子觉得如果对网络知识点做一个系统的阐述,应该会很有帮助。本系列文章着重于讲解网络管转载 2015-02-27 14:18:38 · 395 阅读 · 0 评论 -
网络基本功(十八):细说tcpdump的妙用(下)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese更多信息 (承接上文) 过滤: 要有效地使用tcpdump,掌握过滤器非常必要的。过滤允许用户指定想要抓取的数据流,从而用户可以专注于感兴趣的数据。此外,ethereal这样的工具使用tcpdump过滤语法来抓取数据流。如果用户很清楚对转载 2015-02-27 14:31:34 · 390 阅读 · 0 评论 -
网络基本功(四):细说路由(上)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 以太网交换机工作在第二层即数据链路层,用于在同一网络内部转发以太网帧。但是,当源和目的IP地址位于不同网络时,以太网帧必须发送给路由器。路由器负责在不同网络间传输报文,通过路由表来决定最佳转发路径。当主机将报文发送至不同IP地址时,由于主机无法直接转载 2015-02-27 14:21:26 · 495 阅读 · 0 评论 -
Windows sockets网络开发-基本TCP套接字编程
// server.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #pragma comment(lib, "ws2_32.lib")#define LISTEN_PORT 5000#define BUFFER_SIZE 102原创 2014-08-16 16:35:43 · 505 阅读 · 0 评论 -
TCP 的那些事儿(上)
作者:陈皓 转自 酷 壳 – CoolShell.cn转载 2014-08-19 14:50:53 · 416 阅读 · 0 评论 -
Windows sockets网络开发-基本UDP套接字编程
1、服务器// vs_demo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #pragma comment(lib, "ws2_32.lib")#define LISTEN_PORT 5000#define BUFFER_SI原创 2014-08-18 15:49:29 · 436 阅读 · 0 评论 -
linux服务器开发浅谈
转自 http://www.cnblogs.com/viviman/archive/2012/10/16/2775117.html[开发前准备]在进行linux服务器开发之前,必须很清楚地了解所开发的对象需要考虑的相关问题比如:功能架构:提供服务的模块体系结构稳定性:服务器的出core率,内存泄露情况性能:请求与返回的速度与正确性负载能力:能同时访问的最大数转载 2014-08-15 17:00:11 · 491 阅读 · 0 评论 -
Windows sockets网络开发-select模型
1、服务器#pragma once#include #include #pragma comment(lib, "ws2_32.lib")#define LISTEN_PORT 5000#define BUFFER_SIZE 1024int select_tcp_server_daemon(){ WSADATA wsd; SOCKET sock_listen;原创 2014-08-27 16:20:14 · 360 阅读 · 0 评论 -
Windows sockets网络开发-重叠IO模型
1、服务器#pragma once#include #include #pragma comment(lib, "ws2_32.lib")#define LISTEN_PORT 5000#define BUFFER_SIZE 1024unsigned long WINAPI client_handler(void* lparam);int overlapped原创 2014-08-25 16:26:01 · 502 阅读 · 0 评论 -
iocp sever demo
// Demo.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;#pragma comment(lib, "ws2_32.lib")#define LISTEN_PORT 6600#def转载 2013-02-19 18:15:08 · 361 阅读 · 0 评论 -
Linux网络编程之多播
转自 http://blog.csdn.net/chenjin_zhong/article/details/72703621.概念单播是用于两个主机之间传送数据,广播是一个主机对局域网内的所有主机发送数据。而多播,又称为组播,它是对一组特定的主机通信。将网络上同一类型业务逻辑上分组,只和组内的成员通信,其它主机没有加入组则不能通信。与单播相同的是,组播允许在Internet上通转载 2014-08-11 16:28:33 · 616 阅读 · 0 评论 -
Windows sockets网络开发-IOCP模型
1、服务器#pragma once#include #include #pragma comment(lib, "ws2_32.lib")#define LISTEN_PORT 5000#define BUFFER_SIZE 1024#define RECV_POSTED_KEY 0x0005#define EXIT_CODE 0x0000ffff原创 2014-08-21 13:57:27 · 524 阅读 · 0 评论 -
Linux 网络编程之原始套接字
转自http://blog.csdn.net/chenjin_zhong/article/details/72703841. 介绍前面主要介绍了流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),基本上能够满足TCP与UDP的应用。但一些问题,我们仍然无法解决,如:(1)发送一个自定义的IP包(2)发送ICMP包(3)侦听网络上的转载 2014-08-11 16:27:40 · 691 阅读 · 0 评论 -
网络基本功(十二):细说Linux网络配置(上)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 将一台设备添加到本地网络的基本步骤包括:指定唯一的IP地址与主机名。确保启动时正确配置网络接口。创建默认路由。指定DNS域名服务器以使设备能够连接到网络其他部分。更多信息 指定主机名与IP地址: 使用/转载 2015-02-27 14:27:43 · 453 阅读 · 0 评论 -
网络基本功(十六):细说网络性能监测与实例(下)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 网络问题中,性能问题是最复杂的问题之一,解决这样的问题能够透彻的了解整个网络的结构。但通过合适的吞吐量和数据流测试工具,能够帮你快速找到问题所在。本文承接上文,阐述netperf和netstat的用法。更多信息 吞吐量测量转载 2015-02-27 14:29:56 · 683 阅读 · 0 评论 -
网络基本功(八):细说TCP滑动窗口
转载出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 将TCP与UDP这样的简单传输协议区分开来的是它传输数据的质量。TCP对于发送数据进行跟踪,这种数据管理需要协议有以下两大关键功能:可靠性:保证数据确实到达目的地。如果未到达,能够发现并重传。数据流控:管理数据的发送速率,以使接收设备不致于过载。要完成这转载 2015-02-27 14:25:11 · 1389 阅读 · 0 评论 -
网络基本功(三):细说VLAN与Trunk
转载出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 网络性能是影响业务效率的一个重要因素。将大型广播域分段是提高网络性能的方法之一。路由器能够将广播包阻隔在一个接口上,但是,路由器的LAN接口数量有限,它的主要功能是在网络间传输数据,而不是对终端设备提供网络接入。访问LAN的功能还是由接入层交换机来实现。与三层交换机转载 2015-02-27 14:21:08 · 694 阅读 · 0 评论 -
网络基本功(十):细说TCP确认机制
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 在TCP确认机制中,无法有效处理非连续TCP片段。确认号表明所有低于该编号的sequence number已经被发送该编号的设备接收。如果我们收到的字节数落在两个非连续的范围内,则无法只通过一个编号来确认。这可能导致潜在严重的性能问题,特别是高速或转载 2015-02-27 14:26:09 · 550 阅读 · 0 评论 -
网络基本功(九):细说TCP重传
转载出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 TCP的主要任务是很简单:打包和发送数据。TCP与其他协议的不同之处在于使用滑动窗口来管理基本数据收发过程,同时确保数据流的有效及可靠传输,从而不致发送速率明显快于接收速率。本文将描述TCP是如何确保设备可靠、有效地进行传输的。首先阐述TCP检测丢失片段以及重传的转载 2015-02-27 14:25:55 · 411 阅读 · 0 评论 -
网络基本功(六):链路聚合
转载出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 链路聚合是在两个设备间使用多个物理链路创建一个逻辑链路的功能。这种方式允许物理链路间共享负载。交换机网络中使用的一种链路聚合的方法是EtherChannel。EtherChannel可以通过思科的端口聚合协议(Port Aggregation Protocol, P转载 2015-02-27 14:22:47 · 773 阅读 · 0 评论 -
网络基本功(五):细说路由(下)
转载出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 静态路由是指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。动态路由是指路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由表的过程。是基于某种协议来实现的。本文详细阐述这两者的实现过转载 2015-02-27 14:22:05 · 459 阅读 · 0 评论 -
网络基本功(十五):细说网络性能监测与实例(上)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 网络路径性能检测主要包括三方面的内容:带宽测量能够获知网络的硬件特性,如网络的最大容量,吞吐量测量能够获得网络实际可提供的最大容量,数据流测量能够了解真实占用的网络容量。本文介绍在评估网络性能是否合理时,需要收集的数据及收集方式。涉及工具包括:p转载 2015-02-27 14:29:23 · 744 阅读 · 0 评论 -
网络基本功(十四):细说诊断工具ping
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 ping的工作原理很简单,一台网络设备发送请求等待另一网络设备的回复,并记录下发送时间。接收到回复之后,就可以计算报文传输时间了。只要接收到回复就表示连接是正常的。耗费的时间喻示了路径长度。重复请求响应的一致性也表明了连接质量的可靠性。因此,ping转载 2015-02-27 14:28:57 · 2052 阅读 · 0 评论 -
网络基本功(十三):细说Linux网络配置(下)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 本文承接细说Linux网络配置(上) 。更多信息 Linux网络硬件选项: ethtool命令查询并设置网络接口关于媒体相关的参数。如:链路速度和双工。它代替了以前的mii-tool命令,但有些系统中两者并存。转载 2015-02-27 14:27:59 · 835 阅读 · 0 评论 -
网络基本功(十一):TCP窗口调整与流控
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 前文已经介绍过了TCP滑动窗口大小的重要性。在客户端与服务器的连接中,客户端告知服务器它一次希望从服务器接收多少字节数据,这是客户端的接收窗口,即服务器的发送窗口。类似地,服务器告知客户端一次希望从客户端接收多少字节数据,也就是服务器的接收窗口和客户转载 2015-02-27 14:27:04 · 440 阅读 · 0 评论 -
网络基本功(二):细说交换机
网络基本功(二):细说交换机转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍本节介绍交换机的帧转发技术,MAC地址表的维护方式,三种帧转发模式,以及冲突域和广播域。更多信息帧转发: 网络及电信中的交换概念以太网上的帧包含源MAC地转载 2015-02-27 14:18:44 · 663 阅读 · 0 评论 -
网络基本功(十九):细说NAT原理与配置
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 NAT技术让少数公有IP地址被使用私有地址的大量主机所共享。这一机制允许远多于IP地址空间所支持的主机共享网络。同时,由于NAT屏蔽了内部网络,也为局域网内的机器提供了安全保障。NAT的基本实施过程包括使用一个预留给本地IP网络的私有地址转载 2015-02-27 14:32:17 · 928 阅读 · 0 评论 -
网络基本功(七):细说IP地址与子网
转载出处:EMC中文支持论坛https://community.emc.com/go/chinese介绍 起初,IP地址只有两层结构:网络与主机。子网地址向其中添加了一层新的结构:不同于仅有主机,网络有分为子网与主机。每一个子网的功能近乎于完整的网络。子网的添加构成了三层网络结构:包含子网的网络,各自由若干主机构成。IP地址由此被分为三个部分:网络ID,子网ID转载 2015-02-27 14:23:36 · 502 阅读 · 0 评论 -
Linux网络编程之SYN洪水攻击
转自http://blog.csdn.net/chenjin_zhong/article/details/72720431.概述TCP建立连接需要3次握手,从IP层来看,客户端发送SYN请求,服务器对SYN响应,而客户端对服务器的响应再次确认才能建立连接。在服务器响应之后,等待一段时间,才能获得客户端的确认.从服务器接收到客户端的确认之前,服务器的资源一直占用。如果这时客户端不转载 2014-08-12 04:47:21 · 887 阅读 · 0 评论 -
高并发的epoll+线程池,epoll在线程池内
epoll是linux下高并发服务器的完美方案,因为是基于事件触发的,所以比select快的不只是一个数量级。单线程epoll,触发量可达到15000,但是加上业务后,因为大多数业务都与数据库打交道,所以就会存在阻塞的情况,这个时候就必须用多线程来提速。 epoll在线程池内,测试结果2000个/s增加了网络断线后的无效socket检测。 测试工具:stressmark转载 2014-08-11 15:51:18 · 441 阅读 · 0 评论 -
Linux下EPoll通信模型简析
简介: EPoll基于I/O的事件通知机制,由系统通知用户那些SOCKET触发了那些相关I/O事件,事件中包含对应的文件描述符以及事件类型,这样应用程序可以针对事件以及事件的source做相应的处理(Acception,Read,Write,Error)。相比原先的SELECT模型(用户主动依次检查SOCKET),变成被动等待系统告知处于活跃状态的SOCKET,性能提升不少(不需转载 2014-08-11 15:59:23 · 366 阅读 · 0 评论 -
boost高并发网络框架+线程池
转自http://blog.chinaunix.net/uid-311680-id-2439724.htmlboost的官方例子,有单线程的网络框架,httpserver2是线程池的。下面参照网上某人的代码修改了一点(忘了哪位大仙的代码了) 测试工具,适用stressmark,测试效果非常好, 9000个/s #inc转载 2014-08-11 15:54:51 · 475 阅读 · 0 评论 -
Linux网络编程之广播
转自http://blog.csdn.net/chenjin_zhong/article/details/72702131.概念前面介绍的TCP,UDP都是单播方式,即一对一.而广播是一台主机向局域网内的所有主机发送数据。这时,同一网段的所有主机都能接收到数据。发送广播包的步骤大致如下:(1)确定一个发送广播的接口,如eth0(2)确定广播的地址,通过ioctl转载 2014-08-11 16:25:01 · 369 阅读 · 0 评论 -
Linux网络编程之高级并发服务器
转自http://blog.csdn.net/chenjin_zhong/article/details/72697171. 介绍在上一节,我们介绍了Linux简单的并发服务器,通过在服务器端建立多个子进程,来接收客户端的请求,实现并发处理,但这种方式明显有缺陷,服务器并不知道客户端请求的数量,所以事先建立的进程数不好确定。所以,这里介绍三种高级并发服务器模式。第一种是服务器端转载 2014-08-11 16:13:12 · 314 阅读 · 0 评论 -
TCP 的那些事儿(下)
作者:陈皓 转自 酷 壳 – CoolShell.cn这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本转载 2014-08-19 14:51:55 · 516 阅读 · 0 评论 -
利用文件映射发送文件
DWORD SendFileByFileMapping(const std::wstring& file_path, SOCKET s){ DWORD result = -1; DWORD error_code = 0; if (file_path.empty() || s == INVALID_SOCKET) { return result; } HANDLE hFile =原创 2014-05-30 17:38:33 · 607 阅读 · 0 评论 -
WSAsocket客户端请求服务器示例
DWORD WSARequestServerVerifyCode(const std::string server_ip, int server_port, const std::string& request_verify_code_xml_){ if (request_verify_code_xml_.length() <= 0) return -1; USES_CONVERSI原创 2014-05-30 09:53:35 · 1367 阅读 · 0 评论 -
sockutil工具类
1、sockdef.h#if (_MSC_VER >= 1020)#pragma once#endif#ifndef __SOCKDEF_H__#define __SOCKDEF_H__#ifdef WINVER/** * Windows socket 2 header file. */#include #include #else/** * Linux s转载 2014-01-08 23:38:03 · 717 阅读 · 0 评论 -
windows socket api 封装
#ifndef __WINSOCK_UTIL_H__#define __WINSOCK_UTIL_H__#include #pragma comment(lib, "Ws2_32.lib")int WinSock_Startup(int nVerHigh, int nVerLow){ WORD wVersionRequested; WSADATA wsaData; int n原创 2014-01-08 23:32:03 · 766 阅读 · 0 评论