网络IO | 计算机原理
文章平均质量分 88
网络IO的相关知识
戴国进
往后余生,专注人工智能领域!!!
展开
-
三次握手,四次挥手,为什么是三次握手四次挥手
三次握手,四次挥手,为什么是三次握手四次挥手四次挥手TCP的连接的拆除需要发送四个包,因此称为四次挥手。客户端或服务器均可主动发起挥手动作。由于TCP连接时全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成他的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。这是因为服务端的LISTEN状态下的socket当收到.原创 2020-07-05 18:31:57 · 68503 阅读 · 1 评论 -
通俗讲解 同步、异步、阻塞、非阻塞 编程
# 真正意义上的 异步IO 是说内核直接将数据拷贝至用户态的内存单元,再通知程序直接去读取数据。# select / poll / epoll 都是同步IO的多路复用模式1.同步和异步# 同步和异步关注的是消息通信机制# 所谓同步,就是在发出一个*调用*时,没得到结果之前,该*调用*就不返回。但是一旦调用返回就得到返回值了,*调用者*主动等待这个*调用*的结果# 所谓异步,就是在发出一个*调用*时,这个*调用*就直接返回了,不管返回有没有结果。当一个异步过程调用发出后,*被调用者*.原创 2020-06-17 15:09:01 · 68526 阅读 · 3 评论 -
以 工厂图画 通俗讲解 进程和线程
我们都知道,进程(process)和线程(thread)是操作系统最基本的几个概念,也面试官在操作系统部分最喜欢考察的问题之一。然而这两个概念一直比较抽象,不太容易形象化地理解和掌握。但是对于这个问题,周末在考古阮一峰老师的博客时却发现,他在2013年的一篇帖子中https://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html对于这两个概念就已经做了一个很清晰的对比和解释,而且相当地通俗易懂。相信读完一定会对进程和线程的理解有一个很原创 2021-08-26 22:09:37 · 418 阅读 · 0 评论 -
一个 TCP 连接上面能发多少个 HTTP 请求
一道经典的面试题是从 URL 在浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。但是你有没有想过,收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开? 一个 TCP 连接可以对应几个 HTTP 请求? 一个 TCP 连接中 HT转载 2021-01-07 21:42:52 · 4057 阅读 · 0 评论 -
动态图 详细演示 TCP
你是一台电脑,你的名字叫 A只要你知道另一位伙伴 B 的 IP 地址,且你们之间的网络是通的,无论多远,你都可以将一个数据包发送给你的伙伴 B这就是物理层、数据链路层、网络层这三层所做的事情。站在第四层的你,就可以不要脸地利用下三层所做的铺垫,随心所欲地发送数据,而不必担心找不到对方了。虽然你此时还什么都没干,但你还是给自己这一层起了个响亮的名字,叫做传输层。你本以为自己所在的第四层万事大吉,啥事没有,但很快问题就接踵而至。问题来了前三层协议只能把数据包从一个原创 2021-02-01 19:35:02 · 6591 阅读 · 5 评论 -
网络IO的理解
Unix/Linux系统下IO主要分为磁盘IO,网络IO,我今天主要说一下对网络IO的理解,网络IO主要是socket套接字的读(read)、写(write),socket在Linux系统被抽象为流(stream)。网络IO模型在Unix/Linux系统下,IO分为两个不同阶段:等待数据准备好 从内核向进程复制数据阻塞式I/O阻塞式I/O(blocking I/O)是最简单的一种,默认情况下,socket 套接字的系统调用都是阻塞的,我以recv/recvfrom 理解一下网络IO的模型转载 2020-10-19 19:01:26 · 6930 阅读 · 0 评论 -
一文彻底理解I/O多路复用
编者荐语:多路I/O复用做为高并发服务的基石,redis, nginx为啥性能这么彪悍,值得你认真学习。以下文章来源于码农的荒岛求生,作者码农的荒岛求生码农的荒岛求生助你逃离固有技术点的禁闭岛,实现技术进阶。本篇是高性能、高并发系列的第三篇,承接上文《读取文件时程序经历了什么》,在讲解了进程、线程以及I/O后,我们来到了高并发中又一关键技术,即I/O多路复用。在讲解该技术之前,我们需要预习一下文件以及文件描述符。什么是文件程序员使用I/O最终都逃不过文件这个概念。..转载 2020-12-25 13:38:51 · 4347 阅读 · 0 评论