随笔分类 -  Network Programing

摘要:PS:这是网络安全的作业题目,要是也有选这课同学看到这篇文章,希望不要直接copy,要不然老师发现会比较不爽哈~题目请设计和实现一个算法,把一个文件M由A传输到B,并保证:– 文件M的完整性– B能够认证M的发送方– 文件M的完整性、机密性算法设计思路信息完整性和抗否认性是信息安全保证的两个基本要素,数字签名技术通过对消息摘要技术和公开密钥技术的有机结合,实现了对在不可靠网络中传输的信息的完整性和抗否认性的有效保证。使用数字签名的方式,实现对文件M完整性和认证的保证。数字签名的大致过程如下:消息发送方首先利用Hash函数对待发消息进行摘要处理,生成一个固定长度的消息摘要H(M),然后用自己的私 阅读全文
posted @ 2012-12-09 17:45 糖拌咸鱼 阅读(1151) 评论(0) 推荐(0) 编辑
摘要:基于脚本的服务器集群管理工具背景: 随着云计算服务的普及,基于云计算的PaaS、IaaS受到越来越多的关注,使用这些服务的用户也越来越多。对于一些大型的应用而言,可能包含多种服务,而这些服务需要部署在多台服务器上。例如:某个应用可能部署了10台数据库服务器,10台Web Http服务器以及5台静态文件存储服务器等。那么作为应用程序管理员来说,一台一台地登录去管理这些机器显得非常繁琐,而且对于同一种服务(比如数据库服务)的机器需要执行的管理任务又都大致相同,那么对每台机器进行重复的工作也会增加集群管理员的负担。 应对上述需求场景,我开发了这样一个基于脚本的服务器集群管理工具,它主要具有如下功能和 阅读全文
posted @ 2012-10-28 11:38 糖拌咸鱼 阅读(4561) 评论(9) 推荐(0) 编辑
摘要:关于iptables参考:Iptables 指南 1.1.19iptables提供的NAT的分析与应用 为什么要进行NAT?一个很好的例子:假设我们只有一台服务器具有外网IP,其他服务器都只具有内网IP,那么这些内网服务器外网无法访问到。那么我们可以将具有外网IP的那台服务器作为一个路由中转,将请求转发到内网的机器上来。如何转发呢?大家都知道IP报文中有两个重要的地址属性:源地址与目的地址。IP报文传递过程中需要经过哪台机器,是由这两个地址所决定的。 首先有个问题要明确。首先,客户端对某台服务器访问时,可能会需要多个路由的转发才能到达,但是这样的转发并没有改变IP报文的源地址和目的地址,路由器 阅读全文
posted @ 2012-07-18 23:22 糖拌咸鱼 阅读(2148) 评论(0) 推荐(0) 编辑
摘要:什么是线程池?诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这样就引入了“池”的概念,“池”的概念使得人们可以定制一定量的资源,然后对这些资源进行复用,而不是频繁的创建和销毁。线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建一定数量的线程 阅读全文
posted @ 2012-03-10 20:36 糖拌咸鱼 阅读(33490) 评论(2) 推荐(8) 编辑
摘要:poll函数 在上文unix下网络编程之I/O复用(二)中已经介绍了select函数的相关使用,本文将介绍另一个常用的I/O复用函数poll。poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。 poll函数原型: #include<poll.h> int poll (struct pollfd * fdarray , unsigned long nf... 阅读全文
posted @ 2012-03-01 13:27 糖拌咸鱼 阅读(1336) 评论(1) 推荐(1) 编辑
摘要:select函数该函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或是多个事件发生或经历一段指定的时间后才唤醒它。我们调用select告知内核对哪些描述字(就读、写或异常条件)感兴趣以及等待多长时间。我们感兴趣的描述字不局限于套接口,任何描述字都可以使用select来测试。select函数原型:#include<sys/select.h>#include<sys/time.h>int select (int maxfd , fd_set *readset ,fd_set *writeset, fd_set *exceptionset , const str 阅读全文
posted @ 2012-02-29 15:04 糖拌咸鱼 阅读(1904) 评论(2) 推荐(3) 编辑
摘要:什么是I/O复用? What we need is the capability to tell the kernel that we want to be notified if one or more I/O conditions are ready (i.e., input is ready to be read, or the descriptor is capable of takin... 阅读全文
posted @ 2012-02-28 23:22 糖拌咸鱼 阅读(1807) 评论(0) 推荐(0) 编辑
摘要:首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,不过可以通过修改宏定义甚至重新编译内核的方式提升这一限制。... 阅读全文
posted @ 2012-01-06 22:12 糖拌咸鱼 阅读(47478) 评论(8) 推荐(11) 编辑
摘要:#include <stdio.h>#include <signal.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <netdb.h>#include <setjmp.h> 阅读全文
posted @ 2010-12-05 21:16 糖拌咸鱼 阅读(6263) 评论(1) 推荐(0) 编辑
摘要:Server:#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>#include <sys/socket.h>#define MAXSIZE 1024#define SERV_PORT 2000void dg_echo(int sockfd, struct sockaddr * pcliaddr, socklen_t clilen){ int n; socklen_t len; while(1) { char mesg[M 阅读全文
posted @ 2010-12-05 21:12 糖拌咸鱼 阅读(490) 评论(0) 推荐(0) 编辑
摘要:最近在学习unix网络编程,现在正在学习tcp的通信。其实,只要建立起了tcp通信,操作远端的计算机就不是什么问题了。正向telnet一样,也是基于tcp/IP协议的。所以这个实验,也算是对telnet功能的一种简单的模拟。 但是,值得注意的问题是关机涉及到系统权限,所以要给运行在Server端的程序以足够的权限,这样才可以在接收到Client端的关机请求时,执行关机。将会模拟如下执行过程:1. 执行 mytelnet 跟上参数telnet服务器 IP地址 127.0.0.12. 输入login 向服务器请求登录,随之服务器会要求输入密码3. 输入一个错误的登录密码 1234. 服务器验证不. 阅读全文
posted @ 2010-12-05 21:07 糖拌咸鱼 阅读(1171) 评论(0) 推荐(0) 编辑
摘要:TCP连接的建立以及利用tcpdump分析连接建立的过程一、实验目的实验1_1:使用Freebsd/Linux操作系统下的C编译器和网络程序的调试方法,掌握TCP连接建立和终止以及调整缓冲区大小的方法。实验1_2:使用ethereal/TCPDump等抓包工具,截取TCP建立过程中产生的数据包,分析连接建立过程。二、实验环境操作系统:Ubuntu 10.04 系统编辑器:vim网络环境:PC1:Ipv4地址10.3.1.210 PC2:Ipv4地址10.3.1.211 两台电脑在同一个网段,可以互相通信,能ping通。代码语言:c语言代码编译器:gcc编译器三、实验内容1.设计思路该实验分为两 阅读全文
posted @ 2010-12-05 20:49 糖拌咸鱼 阅读(1987) 评论(0) 推荐(0) 编辑