
网络
文章平均质量分 69
bytxl
归零。
得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。
不怕死,不找死。
展开
-
无线路由模式——Ad-hoc、Infrastructure、AP、Station
Ad-hoc和Infrastructure模式无线网络有两种建网模式,Ad-hoc和Infrastructure模式:Infrastructure--无线网与有线网通过一接入点来进行通讯。Ad-hoc模式--带有无线设备的计算机之间直接进行通讯(类似有线网络的双机互联)。如果无线网络中的计算机需要使用有线网络中的资源,则需要设置无线网络为Infrastructure模式(Infrast原创 2015-12-28 16:01:31 · 22609 阅读 · 0 评论 -
AP、路由、中继、桥接、客户端模式之间的区别
AP、路由、中继、桥接、客户端模式之间的区别在TP-Link迷你无线路由器上一般有AP(接入点)模式、Router(无线路由)模式、Repeater(中继)模式、Bridge(桥接)模式、 Client(客户端)模式;但很多用户都不清楚这几种模式的之间的区别,下面将对这几种模式进行详细的介绍。注意:有的型号的TP-Link 迷你无线路由器上只有AP(接入点)模式、Router(无线转载 2015-12-28 14:41:27 · 42844 阅读 · 0 评论 -
HTTP认证机制
HTTP请求报头: AuthorizationHTTP响应报头: WWW-AuthenticateHTTP认证 基于 质询 /回应( challenge/response)的认证模式。◆ 基本认证 basic authentication ← HTTP1.0提出的认证方法 客户端对于每一个realm,通过提供转载 2015-12-22 14:12:47 · 2424 阅读 · 0 评论 -
HTTP协议之基本认证
http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢? 什么是HTTP基本认证 桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64算法加密后的字符串放在http req转载 2015-12-22 13:53:18 · 688 阅读 · 0 评论 -
getaddrinfo()函数详解
1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间。IPv6中引入了getaddrinfo()的新API,它是协议无关的,既可用于IPv4也可用于IPv6。getaddrinfo函数能够处理名字到地址以及服务到端口这两种转换,返回的是一个addrin转载 2015-12-19 11:25:07 · 526 阅读 · 0 评论 -
Linux下网络IP地址的转换函数
网络IP地址本是用32位二进制来表示的,为了记忆的方便可以用点分十进制来表示IP地址,同时,网络IP地址在网络传输和计算机内部的存储方式也不同,需要用函数来进行转换。 1.将点分十进制字符串转换成十进制长整型数:in_addr_t inet_addr(const char *cp); in_addr_t 即long型,参数cp表示一个点分十进制字符串,返回值是十进制长整型数。转载 2015-12-09 19:56:19 · 898 阅读 · 0 评论 -
串行与并行、同步和异步串行通信
串行与并行一、串行通信中数据按位传输,即一次传输一位; 二、并行传输中数据按字节传输,即一次传输8位。 三、优缺点:并行速度快,但造价高,内部的多根线缆同步较困 难,相互之间易产生干扰,在远距离通信中多用串 行通信,计算机内部大多使用并行通信。 四、使用串行通信的接口是串行接口,使用并行通信的接口是并行接口。同步和异步串行通信串行通信又分为同步传输和异步传输。一原创 2015-12-06 10:25:55 · 5571 阅读 · 2 评论 -
L2TP中LAC与LNS
在使用L2TP协议构建的VPDN典型组网中,包含LAC和LNS两部分。1、LACLAC表示L2TP访问集中器(L2TP Access Concentrator),是附属在交换网络上的具有PPP端系统和L2TP协议处理能力的设备。LAC一般是一个网络接入服务器NAS,主要用于通过PSTN/ISDN网络为用户提供接入服务。LAC位于LNS和远端系统(远地用户和远地分支机构)之间原创 2015-12-01 09:21:49 · 17945 阅读 · 0 评论 -
PPP协议详解
1.简介 PPP是为了在点对点物理链路(例如RS232串口链路、电话ISDN线路等)上传输OSI模型中的网络层报文而设计的,它改进了之前的一个点对点协议–SLIP协议–只能同时运行一个网络协议、无容错控制、无授权等许多缺陷,PPP是现在最流行的点对点链路控制协议。这种连接提供了同时的双向的全双工操作,并且假定数据包是按顺序投递的。PPP连接提供了一种广泛的解决办法,方便地将多种多样不忘的原创 2015-11-30 14:26:40 · 56630 阅读 · 3 评论 -
点对点通信-简介
点对点连接是两个系统或进程之间的专用通信链路。想象一下直接连接两个系统的一条线路。两个系统独占此线路进行通信。点对点通信的对立面是广播,在广播通信中,一个系统可以向多个系统传输。电话呼叫是面向电路的两部电话机之间的点对点链路。但是,呼叫通常是通过电话公司中继线多路复用的;因此虽然电路本身可能是虚拟的,但用户在进行点对点通信会话。端到端连接是指通过交换网络的两个系统间的连接。例如,因转载 2015-11-27 08:55:47 · 8462 阅读 · 0 评论 -
wireshark过滤规则
WireShark过滤语法 1.过 滤IP,如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP2.过滤端 口例子:tcp.port eq 80 // 不管端口是来源转载 2015-10-17 13:53:47 · 638 阅读 · 0 评论 -
spurious retransmission timeouts理解
在学习tcp协议自身和tcp优化方面的文章时,经常可以看到spurious retransmission timeouts概念,网上搜索了比较多,目前发现rfc4138描述得较为详细。http://tools.ietf.org/html/rfc4138按照rfc4138的描述,虚假超时重传指的是实际上没有超时,但看起来超时了(根据rtt估算出的RTO超时了,原创 2015-10-16 17:44:40 · 17544 阅读 · 0 评论 -
linux socket套接字超时之setsockopt以及各网络接口超时判断
概述对于一个套接字的读写(read/write)操作默认是阻塞的,如果当前套接字还不可读/写,那么这个操作会一直阻塞下去。可以在进行读写操作的时候可以指定超时值,这样就读写操作就不至于一直阻塞下去。对于非阻塞的套接字立即返回.超时对于阻塞的套接字更有用. 在涉及套接字的I/O操作上设置超时的方法有三种: 1:调用alarm,它在指定的超时期满时产生SIGALRM原创 2015-09-15 10:56:57 · 2426 阅读 · 0 评论 -
linux socket编程示例——UDP
在网络传输协议中,TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接。TCP有一种“重传确认”机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送。相对而言,UDP协议则是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务。使用UD原创 2015-08-26 09:11:44 · 818 阅读 · 0 评论 -
TCP和UDP的"保护消息边界"
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。 对于UDP转载 2015-08-25 08:41:23 · 838 阅读 · 0 评论 -
TCP的SACK选择确认选项
1.前言 TCP通信时,如果发送序列中间某个数据包丢失,TCP会通过重传最后确认的包开始的后续包,这样原先已经正确传输的包也可能重复发送,急剧降低了TCP性能。为改善这种情况,发展出SACK(Selective Acknowledgment, 选择性确认)技术,使TCP只重新发送丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数 据已经转载 2015-08-01 17:50:22 · 4539 阅读 · 0 评论 -
udt4 helloworld
Hello World!In this section we will introduce the simplest UDT program that can transfer data in high performance.This simple "Hello World!" example includes a server program and a client pr转载 2015-07-15 17:31:02 · 746 阅读 · 0 评论 -
udt4编程简介(原文)
Introduction to Programming with UDTThe prerequisite knowledge for using UDT is sound experience on C++ and socket programing. This is enough to use UDT in distributed applications. If you are f转载 2015-07-15 17:14:40 · 1234 阅读 · 0 评论 -
什么是ftp主动模式和被动模式
FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21(也称为控制端口),其实还有一个数据端口20,根据FTP工作方式的不同,数据端口也不都是20,主动模式的被动模式使用的数据端口是不一样的,下面我就一步一步介绍主动ftp模式和被动ftp模式的区别: 一、什么是主动FTP 主动模式的FTP转载 2015-07-14 15:58:21 · 720 阅读 · 0 评论 -
网卡混杂模式Promiscuous与linux上混杂模式的设置
混杂模式混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由原创 2015-07-13 14:44:26 · 20643 阅读 · 0 评论 -
linux TCP未完成队列和完成队列
已完成连接队列(completed connection queue)(1)三次握手已经完成,但还未被应用层接收(accept),但也处于ESTABLISHED状态.(2)队列长度由listen的backlog参数和内核的 net.core.somaxconn 参数共同决定.(3)当这个队列满了之后,不管未完成连接队列是否已满,是否启用syncookie,都不在接收新的SYN请求.转载 2015-06-27 09:57:42 · 2539 阅读 · 0 评论 -
Nginx 性能调优 Tuning NGINX for Performance
原文地址:http://nginx.com/blog/tuning-nginx/Tuning NGINX for PerformanceNginx 性能调优NGINX is well known as a high performance load balancer, cache and web server, powering over 40% of th转载 2015-06-25 09:58:33 · 1085 阅读 · 0 评论 -
linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别
UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。linux: struct timeval timeout={3,0};//3s int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,&timeo转载 2015-06-19 17:39:19 · 5012 阅读 · 0 评论 -
linux TCP ipv4参数官方文档转载
/proc/sys/net/ipv4/* Variables:ip_forward - BOOLEAN 0 - disabled (default) not 0 - enabled Forward Packets between interfaces. This variable is special, its change resets all configuration pa转载 2015-06-19 08:56:22 · 3625 阅读 · 0 评论 -
Win32 UDP Socket通信学习
学习内容,参见《Windows网络编程》第7章 Winsock基础 与TCP流式协议不同,UDP为数据报协议。 服务端接受数据,客户端发送数据。UDP服务端流程Socket或WSASocket建立套接字,用SOCK_DGRAM标志。bind绑定到IP地址和端口。recvfrom/WSARecvFrom接受数据。 UDP转载 2015-06-18 16:25:50 · 3763 阅读 · 0 评论 -
关于FIN_WAIT1
前些天,一堆人在 TCPCopy 社区里闲扯蛋,有人提了一个问题:FIN_WAIT1 能持续多久?引发了一场讨论,期间我得到斌哥和多位朋友的点化,受益良多。让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况:TCP Close看图可知,主动关闭的一方发出 FIN,同时进入 FIN_WAIT1 状态,被动关闭的一方响应 ACK,从而转载 2015-06-18 09:30:41 · 21501 阅读 · 0 评论 -
getsockname函数与getpeername函数的使用
getsockname函数用于获取与某个套接字关联的本地协议地址 getpeername函数用于获取与某个套接字关联的外地协议地址定义如下:#includeint getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);int getpeername(int sockfd, struct转载 2015-06-15 17:29:53 · 913 阅读 · 0 评论 -
TCP3次握手和backlog溢出
TCP3次握手实际上可分为4步1 客户端发起connect(),发送SYN j2 服务器从SYN queue中建立条目,响应SYN k, ACK J+13 客户端connect()成功返回,响应ACK K+14 服务器将socket从SYN queue移入accept queue,accept()成功返回注:SYN/FIN各占一个序列转载 2015-06-12 09:30:52 · 1661 阅读 · 0 评论 -
linux诡异的半连接(SYN_RECV)队列长度(二)
继续上回:我们已经确认了全连接队列的长度计算,接下来继续寻找半连接队列长度。试着慢慢减小tcp_max_syn_backlog的值,但还是看不到半连接状态数量的变化。实在没什么思路,只能Google之,搜出来的基本都是关于SYN Flood的文章,难道没同学关注过半连接队列的长度吗?困扰数日终于在某个夜晚被我找一篇题为《关于半连接队列的释疑》的文章,激动呐。根据作者提供的思路我开始翻代转载 2015-06-10 09:36:50 · 1555 阅读 · 1 评论 -
linux诡异的半连接(SYN_RECV)队列长度(一)
最近在学习TCP方面的基础知识,对于古老的SYN Flood也有了更多认识。SYN Flood利用的是TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。SYN Flood的原理简单,实现也不复杂,而且网上有许多现成的程序。我在两台虚拟机上(虚拟机C攻击虚拟机S)做测试,S上跑了apache监听80端口,用C对S的80端口发送SY转载 2015-06-10 09:36:36 · 1868 阅读 · 0 评论 -
linux 内核TCP 相关参数解释
tcp_syn_retries :INTEGER默认值是5对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)tcp_synack_retries :INTEGER默认值是原创 2015-06-10 08:47:38 · 6359 阅读 · 0 评论 -
应用环境下的TIME_WAIT和CLOSE_WAIT处理
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。在服务器的日常维护过程中,会经常用到下面的命令:[plain] view plain原创 2015-06-10 08:34:36 · 1379 阅读 · 0 评论 -
Linux协议栈accept和syn队列问题
环境: Client 通过tcp 连接server,server端只是listen,但是不调用accept。通过netstat –ant查看两端的连接情况。server端listen,不调用accept。client一直去connect server。问题:运行一段时间后,为什么server端的ESTABLISHED连接的个数基本是固定的转载 2015-06-09 09:18:46 · 552 阅读 · 0 评论 -
tcp_tw_recycle和tcp_timestamps导致connect失败问题
近来线上陆续出现了一些connect失败的问题,经过分析试验,最终确认和proc参数tcp_tw_recycle/tcp_timestamps相关;1. 现象 第一个现象:模块A通过NAT网关访问服务S成功,而模块B通过NAT网关访问服务S经常性出现connect失败,抓包发现:服务S端已经收到了syn包,但没有回复synack;另外,模块A关闭了tcp timestamp,而模转载 2015-06-09 09:17:27 · 1245 阅读 · 0 评论 -
TCP洪水攻击(SYN Flood)的诊断和处理
1. SYN Flood介绍前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+AC转载 2015-06-09 09:12:06 · 819 阅读 · 0 评论 -
【经验总结】tcp_tw_recycle参数引发的故障
故障描述: 2010年9月7日,新上线的手机游戏论坛有部分地区用户反应登陆游戏时出现不能登陆或登陆超时等情况,观察用户同时在线数量开始下降情况。排错过程: 一、初步检查是否有变更导致的故障: 1、联系同事检查网络是否有问题或有对该机房网络是否有进行过调整,反回结果是没有变更操作。 2、检查在这个时间点是否有进行程序发布更新,或程序转载 2015-06-08 20:26:44 · 2087 阅读 · 0 评论 -
tcp_tw_reuse、tcp_tw_recycle 使用场景及注意事项
linux TIME_WAIT 相关参数:net.ipv4.tcp_tw_reuse = 0 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭net.ipv4.tcp_tw_recycle = 0 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭net.ipv4.tcp_fin_timeout转载 2015-06-08 15:47:43 · 3367 阅读 · 0 评论 -
Linux内核Backlog笔记
一。listen方法传入的backlog参数,net.core.somaxconn这个参数具体意义,先看看Linux Socket的listen解释man listen #include int listen(int sockfd, int backlog);int类型的backlog参数,listen方法的backlog意义为,已经完成三次握手、已原创 2015-06-08 09:19:31 · 3962 阅读 · 0 评论 -
tcp参数详解之tcp_fin_timeout
tcp_fin_timeout :INTEGER默认值是 60对于本端断开的socket连接,TCP保持在FIN_WAIT_2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。过去在2.2版本的内核中是 180 秒。您可以设置该值﹐但需要注意﹐如果您的机器为负载很重的web服务器﹐您可能要冒内存被大量无效数据报填满的风险﹐FIN-WAIT-2 sock转载 2015-06-03 09:43:31 · 2648 阅读 · 0 评论 -
web服务器最大连接数
主机到主机的通话过程:比如,你从服务器上面拷贝一个东西到你自己的电脑上,那么,你的电脑就要先和服务器建立连接,你可以理解为一条管道。然后再通过这个管道传送数据,数据传送完成后,再断开这个连接,也就是把管理拆了。同时连接数为5就是说,同时只能建立5 个连接,也就是说同时只能有5个管理同时连到服务器上。但这里有些人可能有点误区。比如你用服务器建了一个HTTP站点,并不是说同时只转载 2015-06-03 09:01:31 · 5853 阅读 · 0 评论