网络基础】哪种通信模型是最简单的

2021-03-01 15:44发布

2条回答
是开心果呀 - 热爱生活
2楼 · 2021-03-01 17:33

阻塞模型:应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待


征戰撩四汸
3楼 · 2021-12-29 17:03

1、阻塞IO模型

     阻塞 I/O 是最简单的 I/O 模型,一般表现为进程或线程等待某个条件,如果条件不满足,则一直等下去。条件满足,则进行下一步操作。应用进程通过系统调用 recvfrom 接收数据,但由于内核还未准备好数据报,应用进程就会阻塞住,直到内核准备好数据报,在IO两端都会发生阻塞,recvfrom 完成数据报复制工作,应用进程才能结束阻塞状态。

2、非阻塞IO模型

   应用进程与内核交互,目的未达到之前,不再一味的等着,而是直接返回。然后通过轮询的方式,不停的去问内核数据准备有没有准备好。如果某一次轮询发现数据已经准备好了,那就把数据拷贝到用户空间中,只在O端发生阻塞。应用进程通过 recvfrom 调用不停的去和内核交互,直到内核准备好数据。如果没有准备好,内核会返回error,应用进程在得到error后,过一段时间再发送recvfrom请求。在两次发送请求的时间段,进程可以先做别的事情。

3、信号驱动IO模型

   应用进程在读取文件时通知内核,如果某个 socket 的某个事件发生时,请向我发一个信号。在收到信号后,信号对应的处理函数会进行后续处理。应用进程预先向内核注册一个信号处理函数,然后用户进程返回,并且不阻塞,当内核数据准备就绪时会发送一个信号给进程,用户进程便在信号处理函数中开始把数据拷贝的用户空间中,也是只在O端阻塞。

4、IO复用模型

    多个进程的IO可以注册到同一个管道上,这个管道会统一和内核进行交互。当管道中的某一个请求需要的数据准备好之后,进程再把对应的数据拷贝到用户空间中。(就是只用这个管道进程去轮询了,不用像非阻塞模型,每个进程线程都去轮询),IO多路转接是多了一个select函数,多个进程的IO可以注册到同一个select上,当用户进程调用该selectselect会监听所有注册好的IO,如果所有被监听的IO需要的数据都没有准备好时,select调用进程会阻塞。当任意一个IO所需的数据准备好之后,select调用就会返回,然后进程在通过recvfrom来进行数据拷贝。

5、异步IO模型

   异步IO模型。应用进程把IO请求传给内核后,完全由内核去操作文件拷贝。内核完成相关操作后,会发信号告诉应用进程本次IO已经完成。(就是将数据从内核缓冲区拷贝到进程缓存区也是由内核完成,不是由用户进程来完成)

从1-5是不断进化发展,第1个最简单








相关问题推荐

  • 回答 3

    交换机上面的线可以随便插,但是主线别忘插了,随便怎么插都可以,不是必须插第一个,网速慢不是因为插错孔,而是络没有设置号,希望能解决你的困惑 1M的线.4个人上,不卡才叫见鬼了,最少得3M才能正常上网 你们所有人都慢还是只有一个人慢...

  • 回答 5

    这里以常见的二层交换机为例,更高层次的交换机不在本次套路内容。交换机工作于OSI七层模型中的第二层,数据链路层;交换机依靠MAC地址进行寻址,内部维护着一张MAC地址表。

  • 回答 6

    交换机的作用:从功能上:交换机是用于连接多台设备,让其具备网络互通的条件。从定义上:交换机是一个网络设备,能连接多台设备到计算机网络中,通过数据包交换的方式,将数据转发到目的地。交换机的连接方式:目前连接线最长采用的有两种:双绞线(网线)和光...

  • 回答 12

    交换机的作用:1、 像集线器一样,交换机提供了大量可供线缆连接的端口,这样可以采用星型拓扑布线。2、 像中继器、集线器和网桥那样,当它转发帧时,交换机会重新产生一个不失真的方形电信号。3、像网桥那样,交换机在每个端口上都使用相同的转发或过滤逻辑...

  • 回答 5

    1、地址不同。传统交换机是从网桥发展而来的,它根据MAC地址,通过站表选择路由,站表的建立和维护由交换机自动进行。路由器属于OSI第三层网络设备,它根据IP地址进行寻址,通过路由表路协议产生。2、性质不同。交换机主要是完成相同或相似的物理介质和链路协...

  • 回答 2

    路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机根据MAC地址寻址。交换机在中继层路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。路由...

  • 回答 4

    直接从交换机连接网线到路由器LAN口就可以了

  • 回答 2

    华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置。交换机的配置命令等等。华为路由器交换机配置命令:计算机命令PCAlogin:root;使用root用户password:linux;口令是linux#shu...

  • 回答 5

    岗位职责1、研究基于身份认证进行特权账号密码的保护技术;2、数据安全领域的密码算法的选择,改进,负责数据安全领域的密码学标准跟踪和最佳实践实现。任职要求:1、熟悉网络通信协议及Linux系统下的软件开发全流程,熟练掌握C/Java至少一种编程语言;2、熟...

  • 回答 9

    netsh interface ip set address name=本地道连专接属 source=static addr=10.161.0.32 mask=255.255.255.0  netsh interface ip add address name=本地连接 addr=1.1.1.1 mask=255.255.255.0  netsh interface ip set addres......

  • 回答 6
    已采纳

    第一种:ASCII码第二种:GBK 和 GB2312第三种:Unicode第四种:UTF-8

  • 回答 6

    常用的统计编码方法包括哈夫曼编码和算术编码

  • 回答 5

    计算机通用的字符编码:ASCII码ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 64...

  • 回答 4

    物理层 : O S I 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面P C 上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠...

  • 回答 2

    如果密码没有问题的话,那有没有可能是你的输入法设置有问题?比如中文、英文切换不正确?空格键等特殊字符输入错误?图片上的提示,是说你输入的密码是错误的,楼主可以重新切换输入法在输入密码看看,或者干脆注销当前账户,用root账户登陆。楼主如果对Linu...

  • 回答 1

    check_nt对于64位的windows显示的内存其实是windows的实际内存加page file之和nagios服务端:nagios/objects/commands.cfg添加如下内容# CheckWindowsPhysical Mem command definitiondefine command {command_name CheckWindowsPhysicalMemcommand......

没有解决我的问题,去提问