![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 94
e我所欲也
在很窄的胡同里长跑
展开
-
并发服务器 IO多路复用之poll 与 epoll(重点)
文章目录I/O多路复用之pollpoll函数接口poll示例: 使用poll监控标准输入(模式)I/O多路复用之epollepoll_create 创建epoll操作句柄epoll_ctl epoll的事件注册函数epoll_wait 监控epoll工作原理epoll的优点(和 select 的缺点对应)epoll工作方式epoll示例: 使用epoll监控标准输入(水平触发LT模式)epoll示例2: 使用epoll监控标准输入(边缘触发ET模式)I/O多路复用之pollpoll函数接口#i原创 2020-06-23 16:47:16 · 992 阅读 · 0 评论 -
并发TCP服务器 IO多路复用之select
文章目录前言初识selectselect函数原型理解select执行过程socket就绪条件select使用示例: 检测标准输入输出select优缺点基于select的并发TCP服务器通信前言记得我们之前写的TCP客户端服务端通信小demo中有个小问题:accept函数和read函数一旦阻塞在其中一个中的话,另一个就没法对相应的请求做出响应,即如果在accept中等待一个连接请求,我们就不能响应输入的命令(接收数据)。类似地,如果在read中等待一个输入命令,我们就不能响应任何连接请求。但是一个并发服务原创 2020-06-23 11:58:43 · 1220 阅读 · 0 评论 -
LInux -- 五种典型的IO模型
文章目录1.阻塞IO模型2.非阻塞IO模型3.信号驱动IO模型4.多路复用IO模型5.异步IO模型首先要理解的概念:IO即输入输出事件,而我们知道不论是标准IO还是文件IO,其实都是要和内存管理和磁盘文件等硬件有关,且Linux下一切皆文件,而在系统中想要实现用户层和内核层交互,只能调用系统调用接口,而对于IO来说,无论是c语言的文件IO函数还是其他语言的IO函数,底层也都是封装了系统调用文件IO来实现用户层与系统层的交互的。而常用的系统文件IO接口read/write。任何IO过程中, 都包含原创 2020-06-19 19:15:30 · 322 阅读 · 0 评论 -
网络基础(六)数据链路层、ARP协议、ICMP协议及DNS域名系统
文章目录网络通信过程简述数据链路层概念及功能认识MAC地址以太网MTU(最大传输单元)ARP协议DNS(Domain Name System)域名解析协议ICMP协议ping命令网络通信过程简述基于TCP/IP协议网络通信的过程中,将发出数据的主机称为源主机,接收数据的主机称为目的主机。当源主机发出数据时,数据在源主机中从上层向下层传送。源主机中的应用进程先将数据交给应用层,应用层加上必要的控制信息就成了报文流,向下传给传输层。传输层将收到的数据单元加上本层的控制信息,形成报文段、数据报,再交给网际层原创 2020-06-18 16:12:49 · 1435 阅读 · 0 评论 -
网络基础(五)网络层IP协议、NAPT端口映射及路由选择
文章目录基本概念主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称;原创 2020-06-17 21:06:10 · 2940 阅读 · 0 评论 -
网络基础(四) TCP的可靠传输
文章目录TCP协议的复杂性和功能检验和(发送方填充)序列号确认应答机制超时重传机制滑动窗口机制快速重传机制流量控制拥塞控制机制慢启动与拥塞避免算法快恢复延迟应答机制捎带应答机制另外面向字节流TCP异常情况保活计时器基于TCP应用层协议TCP小结TCP协议的复杂性和功能应用层向TCP层发送用于网间传输的、用字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TC原创 2020-06-14 20:43:01 · 1317 阅读 · 2 评论 -
网络基础(三)传输层UDP / TCP协议
文章目录传输层概念及功能UDP协议传输层概念及功能传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。而在数据传送阶段又分为一般数据传送和加速数据传送两种形式。传输层中最为常见的两个协议分别是传输控制协议TCP原创 2020-06-13 16:09:43 · 1815 阅读 · 0 评论 -
网络编程 socket(三) 基于TCP的客户端-服务端的并发程序(多进程&多线程)
文章目录再谈TCP协议通讯流程多进程版本多线程版本再谈TCP协议通讯流程服务器初始化:调用socket, 创建文件描述符;调用bind, 将当前的文件描述符和ip/port绑定在一起; 如果这个端口已经被其他进程占用了, 就会bind失败;调用listen, 声明当前这个文件描述符作为一个服务器的监听描述符, 为后面的accept做好准备;调用accecpt, 并阻塞, 等待客户端连接过来。建立连接的过程:调用socket, 创建文件描述符;调用connect, 向服务器发起连接请原创 2020-05-13 11:58:43 · 962 阅读 · 0 评论 -
网络编程 socket套接字(二)基于TCP的客户-服务端通信小程序(单连接版)
文章目录TCP编程流程TCP套接字接口介绍监听描述符和已连接描述符之间的区别基于tcp的客户端—服务端通信小程序(单连接版)TCP编程流程TCP套接字接口介绍TCP协议不同于UDP,TCP是面向连接的,必须要在双方已经连接上的前提下才可以进行通信。两者创建套接字都是同样的接口,不同的是客户端通过调用connect函数来建立和服务器的连接。剩下的套接字函数bind、listen和accept被服务器用来和客户端建立连接。创建 socket 文件描述符 (TCP/UDP, 客户端 + 服务器)原创 2020-05-12 18:16:36 · 904 阅读 · 0 评论 -
网络编程 socket(一) 基于UDP的客户端和服务端的小程序
文章目录TCP/IP协议简单理解再谈端口号连接UDP协议简单介绍UDP套接字的编程流程及接口介绍基于udp的客户端-服务器端的的通信小程序每台因特网主机都运行实现TCP/IP协议(Transmission ControlProtocol/Internet Protocol,传输控制协议/互联网络协议)的软件,几乎每个现代计算机系统都支持这个协议。因特网的客户端和服务器混合使用套接字接口函数和UnixIO函数来进行通信。套接字函数典型地是作为会陷入内核的系统调用来实现的,并调用各种内核模式的TCP/IP函原创 2020-05-11 21:02:48 · 1609 阅读 · 0 评论 -
网络基础(一)理解网络及协议
文章目录前言客户端-服务器编程模型从计算机体系结构来理解网络网络的层次结构网络协议理解封装协议分层从每个协议层来介绍数据包封装和分用网络中的地址管理网络字节序前言网络应用随处可见。任何时候你浏览Web、发送E-mail 等,你就正在使用一个网络应用程序。有趣的是,所有的网络应用都是基于相同的基本编程模型,有着相似的整体逻辑结构,并且依赖相同的编程接口。网络应用依赖于很多在系统研究中已经学习过的概念,例如,进程、信号、字节顺序、存储器映射以及动态存储分配,都扮演着重要的角色。还有一些新概念 要掌握。我原创 2020-05-09 17:25:03 · 1133 阅读 · 0 评论