关于 网络I/O模型

网络传输的信息格式

  • XML:应用广泛,适合做网络通讯的信息描述格式
  • JSON:轻量级的数据交换格式。
  • Protocol Buffer(PB):一种数据交换格式
  • TLV:T:类型域 L:大小域 V:内容域 用于金融、军事领域
  • 自定义格式:比如Apache Thrift序列化后的数据

BIO的阻塞问题:

无论是客户端还是服务器,同一时间只能发送或者接受一个信息。处于等待回复的间隔,便是"阻塞"问题。
即使使用多线程的方式 服务器端的accept()、read()方法依旧会被阻塞。

NIO同步非阻塞——是对BIO同步阻塞的改进

NIO,又称为多路复用I/O模型。
应用场景:适用于"高并发"场景 ,其他情况NIO没有明显优势
NIO:数据从通道读入缓冲区,从缓冲区写入通道。

  • Channel通道:用于应用程序与操作系统进行交互的渠道。
  • buffer缓冲区:保证每个通道的读写速度。
  • Selector选择器:实现Channel与指定的I/O事件进行绑定。

通道类似于流,但是有区别
1.通道既可以读数据,也可以写数据。但是流的读写操作是单向的。
2.通道可以异步读取
3.通道的数据总是要经过缓冲区

AIO异步非阻塞

异步的体现:

  • 同步的I/O流 服务器端不会"主动"联系客户端 ,但是AIO在数据准备完成后,会主动通知”客户端“
  • 异步的I/O是交给OS处理,而异步应用自己会处理。

AIO与NIO的区别:
AIO与NIO都是通过管道的方式进行I/O操作,但是AIO每一个处理器与通道都是独立的、一一对映,NIO是通过选择器进行匹配。

学习高性能服务系统:网络I/O模型相关推荐

  1. 网络七层模型与物联网三层模型

    前言 学安全,基础知识还是得要学习学习的吧. 网络七层模型 OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model).这一参考 ...

  2. 基于springboot大学校园防疫与服务系统毕业设计源码111556

    基于springboot大学校园防疫与服务系统 摘 要 2019年12月19号中国武汉发生第一例新冠病毒的到来,大家都在听从政府的号召在居家隔离,不管是在城市还是在乡镇.农村,这引起我的注目,设计一套 ...

  3. 基于Spring Boot的大学校园防疫与服务系统毕业设计源码111556

    基于springboo大学校园防疫与服务系统 摘 要 2019年12月19号中国武汉发生第一例新冠病毒的到来,大家都在听从政府的号召在居家隔离,不管是在城市还是在乡镇.农村,这引起我的注目,设计一套大 ...

  4. 数据传输完整性_卫星导航定位服务系统数据传输安全性探究

    引文格式:马雷,韩菲. 卫星导航定位服务系统数据传输安全性研探究[J]. 导航定位学报, 2020, 8(3): 105-109.(MA Lei,HAN Fei. Probe into data tr ...

  5. 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等

    「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统.多目标.模型服务等 在DLP-KDD 2021征稿之际,为大家准备了DLP-KDD2020的全部文章和资源列表,内容涵盖了几 ...

  6. Linux学习笔记_12_进程管理(ps, top)服务管理(service)查看系统网络(netstat)

    1. 进程的基本介绍 在 LINUX 中, 每个执行的程序(代码) 都称为一个进程. 每一个进程都分配一个 ID 号. 每一个进程, 都会对应一个父进程, 而这个父进程可以复制多个子进程. 例如 ww ...

  7. 高性能服务器设计——常用网络服务器设计模型(转载)

    文章来源:http://blog.csdn.net/jiang1013nan/article/details/17471341 在业务服务开发过程中,一个优秀的开发框架,往往能够起到事半功倍的效果.现 ...

  8. 高性能并发TCP网络服务-IOCP框架修正VC2008版本

    From: http://blog.csdn.net/lsfa1234/article/details/6223635 高性能并发TCP网络服务IOCP框架修正VC2008版本 从Source Cod ...

  9. springboot网络招聘服务系统毕业设计源码121727

    目  录 摘要 1 绪论 1.1开发的意义及背景 1.2国内研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2网络招聘服务系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2. ...

最新文章

  1. AjaxFileUpload文件上传组件(php+jQuery+ajax)
  2. 宣布 Windows Azure 通过 PCI DSS 合规性验证并且 ISO 认证范围扩大,同时正式发布 Windows Azure Hyper-V 恢复管理器和其他更新功能...
  3. 【模式匹配】KMP算法的来龙去脉
  4. 微信小程序前端支付代码
  5. 【剑指offer - C++/Java】9、变态跳台阶
  6. java实现可有括号的android计算器
  7. Scrapy爬取美女图片续集 (原创)
  8. 玩转 SpringBoot 2 快速整合 | Thymeleaf 篇
  9. IntelliJ IDEA 12 与 Tomcat7 配置
  10. python画3D图
  11. w ndows10图标,Windows10系统图标怎样提取
  12. 5分钟快速了解区块链中的哈希值Hash(用户密码存储举例说明)?
  13. vscode配置代理
  14. 掌中题库刷题神奇微信小程序介绍
  15. 程序员缺少自信怎么办? AI 训练数千次的回答
  16. 备忘4:爬取微博热门信息以及所有热门微博转发的用户信息
  17. GaussDB数据类型介绍
  18. UML类图的辅助构建的逻辑代码
  19. C语言一秒钟看懂for循环和while循环的用法?
  20. 岭南师范学院计算机证书,2017年岭南师范学院全国计算机等级考试网上报考通知第48次报考程序...

热门文章

  1. 《the Great Gatsby》Day 27
  2. 技术大比武之一:什么是元数据
  3. 荆楚理工学院计算机学院院长,李敏(计算机学院)老师 - 荆楚理工学院 - 院校大全...
  4. 树莓派硬件串口的启用以及映射的简单方法
  5. 志愿者带领事实孤儿首进电影院观看《流浪地球2》
  6. json qbytearray 串 转_Qt之JSON教程-使用篇
  7. vue3 + element plus实现侧边栏
  8. HAO123的迷思----谈谈SEO
  9. 路由器设置上网【不求人】
  10. arcgis字段计算器VB脚本提取字符串