
网络编程
first_wolf
linux
展开
-
拒绝服务攻击(DoS, Denial of Service)
当一个服务器处理多个客户时,它决不能阻塞于只与单个客户相关相关的某个函数调用,否则可能导致服务器呗挂起,拒绝为其他客户服务。这就是“拒绝服务(denial of service)型攻击”。可能解决办法:(1)使用非阻塞式I/O;(2)让每个客户由单独的线程提供服务;(3)为I/O操作设置一个超时。原创 2013-02-19 10:44:36 · 2311 阅读 · 0 评论 -
libpcap详解
一 概述:(一)libpcap(Packet Capture Library),即数据包捕获函数库,是Unix/Linux平台下的网络数据包捕获函数库。它是一个独立于系统的用户层包捕获的API接口,为底层网络监测提供了一个可移植的框架。libpcap的捕获机制不影响linux系统中网络协议栈对数据包的处理。(二)访问数据链路层的三个常用方法(libpcap都支持):(1)B原创 2013-04-12 14:45:27 · 2520 阅读 · 0 评论 -
线程与IO
待续...原创 2013-05-13 16:23:03 · 737 阅读 · 0 评论 -
UDP套接字编程(一)
待续...原创 2013-08-03 21:59:04 · 709 阅读 · 0 评论 -
UDP套接字编程(二)
待续...原创 2013-08-03 21:59:32 · 654 阅读 · 0 评论 -
I/O复用:select、poll、pselect和epoll
一 I/O模型:(1)阻塞式I/O:最常用的I/O模型。默认情况下,所有套接字都是阻塞的。(2)非阻塞式I/O:不把进程投入睡眠,而是返回一个错误。(3)I/O复用:调用select或poll,阻塞在这两个系统调用中的某一个之上,而不是阻塞在真正的I/O系统调用上。(4)信号驱动I/O:让内核在描述符就绪时发信号通知进程。优势:等待数据到达期间进程不被阻塞。(5)异步I/O:告原创 2013-05-25 21:13:47 · 1998 阅读 · 0 评论 -
网络编程经验
一 进程相关:(1)当fork子进程时必须捕获SIGCHLD信号,并且SIGCHLD的信号处理程序需正确编写,使用waitpid函数。(2)当捕获信号时,必须处理被中断的系统调用:当一个进程阻塞在系统调用时捕获某个信号且信号处理程序返回时,该系统调用可能返回一个EINTR错误。有些内核自动重启某些被中断的系统调用。为了便于移植,必须对系统调用返回EINTR做好准备;在套接字中,accept原创 2013-09-11 19:44:12 · 715 阅读 · 0 评论 -
TCP/IP:MSS MSL MTU
一 MSL(最大报文长度:Maximum Segment Size):在TCP报文首部的选项中设置(可以通过getsockopt和setsockopt获取和设置TCP套接字选项TCP_MAXSEG)。(1)概述:MSS是每一个TCP报文段中的数据字段部分的最大长度:MSS=TCP报文段长度-TCP首部长度(2)MSS的取值:*MSS与接收窗口没有关系,并不是考虑接收方的接受缓存原创 2013-04-24 08:38:38 · 3316 阅读 · 1 评论 -
UNIX网络编程中RST分节
UNIX网络编程中RST分节总结RST的含义为“复位”,它是TCP在某些错误情况下所发出的一种TCP分节。有三个条件可以产生RST: 1), SYN到达某端口但此端口上没有正在监听的服务器。 2), TCP想取消一个已有连接 3), TCP接收了一个根本不存在的连接上的分节。1. Connect 函数返回错误ECONNREFUSED原创 2013-02-20 20:47:48 · 1078 阅读 · 0 评论 -
TCP与UDP疑难杂症
一 TCP: 1.服务进程终止: 2.服务器主机崩溃: 3.服务器主机崩溃后重启: 4.服务器主机关机:二 UDP 1.服务器未运行。 2.验证接收到的响应即回复。 3.数据报丢失和截断。 4.UDP connect、超时和重传、序列号。原创 2013-02-20 20:45:53 · 503 阅读 · 0 评论 -
UNIXI/O模型
(1) 阻塞式I/O(linux下默认I/O都是阻塞式,最流行) (2)非阻塞式I/O (3)I/O复用(select和poll) (4)信号驱动式I/O (5)异步I/OPOSIX把同步I/O和异步I/O定义如下:同步I/O操作:导致进程被阻塞,直到I/O完成。(前四种模型)异步I/O操作:不导致进程阻塞。(第五种即异步I/O)原创 2013-02-19 10:47:57 · 393 阅读 · 0 评论 -
防火墙
一 概述:(一)防火墙(firewall)定义:是一项协助确保信息安全的设备,会依照特定的规则,允许或是限制传输的数据通过。防火墙可以是一台专属的硬件也可以是架设在一般硬件上的一套软件。(二)功能(大多数是阻止):1.阻止:阻止某种类型的流量通过防火墙。(从外部网络到内部网络,或反过来)。2.允许:与阻止相反。(三)防火墙技术分类:1.网络级防火墙:主要用来原创 2013-06-23 14:51:25 · 870 阅读 · 0 评论 -
网络间数据传输
待续...原创 2013-06-27 10:59:24 · 896 阅读 · 0 评论 -
网络安全概述
一 网络安全概述:(一)网络上的威胁主要分为两大类(主动攻击和被动攻击):1.主动攻击分为3类:*中断(interruption):攻击者有意中断他人在网络上的通信。*篡改(modification):攻击者故意篡改网络上发送的报文。*伪造(fabrication):攻击者伪造信息在网络上发送。2.从类型分主动攻击分为:*更改报文流:包括对通过连接的PDU的真实原创 2013-06-26 21:35:48 · 1390 阅读 · 0 评论 -
SSH
SSH有很多非常酷的特性,如何它是你每天的工作伴侣,那么我想你有必要了解以下16条高效使用SSH的秘籍,它们帮你节省的时间肯定会远远大于你用来配置它们的时间。1. 多条连接共享如果你需要在多个窗口中打开到同一个服务器的连接,而不想每次都输入用户名,密码,或是等待连接建立,那么你可以配置SSH的连接共享选项,在本地打开你的SSH配置文件,通常它们位于~/.ssh/config,然后添转载 2013-02-27 12:56:48 · 797 阅读 · 0 评论 -
libnet函数库
一 基本概念:libnet函数库:提供构造任意协议的分组并将其输出到网络中的接口。以实现无关的方式,提供原始套接字访问方式和数据链路访问方式。原创 2013-04-17 21:20:55 · 805 阅读 · 0 评论 -
select、poll和epoll
待续...原创 2013-05-14 10:48:09 · 670 阅读 · 0 评论 -
套接字选项
一 获取和设置套接字相关选项的函数:(1)仅适用于套接字:getsockopt和setsockopt。格式:*int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen);*int setsockopt(int sockfd,int level,int optname,const vo原创 2013-05-31 12:24:02 · 886 阅读 · 0 评论 -
名字和地址的转换
一 IP主机名(只支持IPv4):(1)gethostbyname:主机名->IP。(2)gethostbyaddr:IP->主机名。*命令:hostname和uname。二端口服务:从名字到端口的映射保存在文件/etc/services文件中。(1)getservbyname:服务->端口。(2)getservbyport:端口->服务。三 支持IPv原创 2013-06-03 16:24:25 · 827 阅读 · 0 评论 -
Unix域套接字
一 概述:(1)Unix域不是一个实际的协议簇,而是单个主机上客户/服务器通信的一种方法,所采用的API就是在不同主机上客户/服务器进行通信所有的套接字API。(2)Unix域提供两类套接字:字节流套接字(类似TCP)和数据报套接字(类似UDP)。(3)功能:*Unix域套接字往往比通信两端在同一个主机的TCP套接字快出一倍。*Unix域套接字可用于在同一个主机的不同进程之间传原创 2013-06-03 16:44:42 · 937 阅读 · 0 评论 -
/etc/hosts与/etc/resolv.conf
一 /etc/hosts:(1)/etc/hosts:The static table lookup for hostnames(详情:man 5 hosts)。(2)/etc/hosts associates IP address with hostnames,one line per IP address.*格式:IP_address canonical_hostname [ali原创 2013-06-05 21:56:03 · 1241 阅读 · 0 评论 -
带外数据
待续...原创 2013-06-07 18:14:56 · 962 阅读 · 0 评论 -
原始套接字
待续...原创 2013-06-07 18:12:38 · 619 阅读 · 0 评论 -
客户/服务器程序设计模板(二)客户
一 客户程序的类型(速度从慢到快):(1)停-等模式运行:*缺点:进程被阻塞以等待用户输入,看不到诸如对端关闭连接等网络事件;批处理效率极低。(2)select+shutdown+阻塞I/O:解决了上述的两个问题。(3)fork版本:比非阻塞稍慢。(4)线程化版本:略快于fork版本。(5)非阻塞I/O:*优点:速度最快.*缺点:代码最复杂。二 总结原创 2013-07-07 10:16:45 · 724 阅读 · 0 评论 -
拒绝服务攻击(dos)
一 类型:(1)SYN Flood攻击:*SYN Flood是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。*TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无原创 2013-06-25 13:24:15 · 896 阅读 · 0 评论 -
客户/服务器程序设计模板(一)服务器
一 Unix服务器程序可选的进程控制类型:(1)迭代服务器。(2)多进程并发服务器。(3)select+单个进程的服务器。(4)多线程并发服务器(5)进程池:预先派生子进程,让服务器在启动阶段调用fork创建一个子进程池。(6)线程池:预先派生子线程,让服务器在启动阶段创建一个线程池。原创 2013-07-06 16:52:38 · 1122 阅读 · 0 评论