随笔分类 -  后台开发

网络编程,多线程编程
摘要:问题聚焦: 进程是Linux操作系统环境的基础。 本篇讨论以下几个内容,同时也是面试经常被问到的一些问题: 1 复制进程映像的fork系统调用和替换进程映像的exec系列系统调用 2 僵尸进程 3 进程间通信的方式之一:管道 4 3种System V进程通信方式:信号量,消息队列和共享内存fork系统调用定义:#include #include pid_t fork( void );函数说明:该函数每次调用返回两次在父进程中返回的是子进程的PID,在子进程中返回的是0,由此判断当前进程是父进程还是子进程(返回值是0的为子进程)作用:fork函数复制当前进程子进程的代码和父进程完全相同子进程复制 阅读全文
posted @ 2014-03-05 09:44 suzhou 阅读(316) 评论(1) 推荐(0) 编辑
摘要:问题聚焦: 前篇提到了I/O处理单元的四种I/O模型。 本篇详细介绍实现这些I/O模型所用到的相关技术。 核心思想:I/O复用使用情景:客户端程序要同时处理多个socket客户端程序要同时处理用户输入和网络连接TCP服务器要同时处理监听socket和连接socket,这是使用最多的场合服务器要同时可处理TCP请求和UDP请求服务器要同时监听多个端口主要技术:selectpollepollselect系统调用作用: 在一段指定时间内,监听用户感兴趣的文件描述符的可读、可写和异常等事件。 select API原型:#include int select ( int nfds, fd_set... 阅读全文
posted @ 2014-02-25 19:49 suzhou 阅读(277) 评论(0) 推荐(0) 编辑
摘要:问题聚焦: 核心章节。 服务器一般分为如下三个主要模块:I/O处理单元(四种I/O模型,两种高效事件处理模块),逻辑单元(两种高效并发模式,有效状态机)和存储单元(不讨论)。服务器模型C/S模型结构:特点:逻辑简单。工作流程:I/O复用技术:select,同时监听多个客户请求。优点:适合资源相对集中的场合。缺点:当访问量过大,可能所有客户都将得到很慢的相应。P2P模型结构:两种结构结构b比结构a增加了发现服务器,用于主机之间的互相发现,尽快找到自己需要的资源。特点:摒弃了服务器为中心的格局,让网络上所有主机处于对等的地位。每台机器在消耗服务的同时也给别人提供服务缺点:当用户之间传输的请求过.. 阅读全文
posted @ 2014-02-24 09:44 suzhou 阅读(534) 评论(0) 推荐(2) 编辑
摘要:问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范。 工欲善其事,必先利其器,这篇主要来探讨服务器程序的一些主要规范。概览:Linux服务器程序一般以后台程序的形式运行,后台进程又称为守护进程。Linux服务器程序一般以某个专门的非root身份运行。Linux服务器程序通常是可配置的,命令行或者配置文件的形式。Linux服务器程序通常会在启动的时候生成一个PID文件,以记录该后台进程的PID。Linux服务器程序通常需要考虑系统资源和限制。日志守护进程:rsyslogd功能:接收用户进程输出的日志.. 阅读全文
posted @ 2014-02-20 23:00 suzhou 阅读(530) 评论(0) 推荐(0) 编辑
摘要:问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系。 这节主要介绍三个方面的内容:套接字(socket地址)API,socket基础API,和网络信息API。套接字API套接字socket:(ip, port),即IP地址和端口对,唯一地表示了使用该TCP通信的一端。需要了解:主机字节序和网络字节序。原因:考虑32位的机器,CPU的累加器一次装载4字节的内容。那么这4字节在内存中的顺序将影响它被累加器装载后的所代表的含义。分类:大端字节序:“高低,低高”,即,一个整数的高位字节(23~31位)存储在内存的低... 阅读全文
posted @ 2014-02-20 10:03 suzhou 阅读(407) 评论(0) 推荐(0) 编辑
摘要:问题聚焦: 本节从如下四个方面讨论TCP协议: TCP头部信息:指定通信的源端端口号、目的端端口号、管理TCP连接,控制两个方向的数据流 TCP状态转移过程:TCP连接的任意一端都是一个状态机 TCP数据流:两种主要类型:交互数据流,成块数据流 TCP数据流的控制:保证可靠传输和提高网络通信质量,两个方面:超时重传,拥塞控制1 TCP服务的特点传输层协议:TCP协议,UDP协议TCP协议特点:面向连接,字节流和可靠传输 先建立连接,才能开始读写数据 双方都要分配内核资源 全双工,读写可以通过一个连接 必须断开连接,以释放资源 一对一,所以不适合基于广播和多播的应用程序(UD... 阅读全文
posted @ 2014-02-17 19:01 suzhou 阅读(505) 评论(0) 推荐(0) 编辑
摘要:问题聚焦: IP协议是TCP/IP协议族的核心协议,也是socket网络编程的基础之一。这里从两个方面较为深入地探讨IP协议: 1,IP头部信息(指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组,和指定部分通信行为);2,IP数据包的路由和转发(发生在除目标机器之外的所有主机和路由器上)。1 特点TCP/IP协议族的动力,为上层协议提供无状态,无连接,不可靠的服务无状态:IP通信双方不同步传输数据的状态信息,因此IP数据包的发送、传输和接收都是无序的。 缺点:无序,不可靠 优点:简单、高效不可靠:不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力。发送端(转发端... 阅读全文
posted @ 2014-01-24 09:26 suzhou 阅读(382) 评论(0) 推荐(0) 编辑
摘要:问题聚焦:简单地梳理一下TCP/IP各层的功能和常用协议详细了解ARP(数据链路层)和DNS(应用层)协议的工作原理1 TCP/IP协议族体系结构数据链路层: 职责:实现网卡接口的网络驱动程序,一处理数据在物理媒介(如以太网、令牌环等)上的传输。 常用协议:ARP协议(地址解析协议),RARP协议(逆地址解析协议)——实现了IP地址和机器物理地址之间的相互转换。 寻址:使用物理地址(MAC地址)寻址一台机器。因此网络层必须先将目标机器的IP地址转化成其物理地址,才能使用数据链路层提供的服务。网络层: 职责:数据包的选路和转发。选路:确定两台主机之间的通信路径,对上层协议隐藏了网络拓扑的细节。 阅读全文
posted @ 2014-01-22 19:35 suzhou 阅读(452) 评论(0) 推荐(0) 编辑