当前位置: 首页 > news >正文

宁波网站建站推广站长工具seo综合查询推广

宁波网站建站推广,站长工具seo综合查询推广,java做简易网站,做公司网站别人能看到吗网络编程我们知道是通过socket进行编程的,其实socket也是基于TCP和UDP协议进行编程的。但是在socket层面是感知不到下层的,所以在设置参数的时候,其实是端到端协议智商的网络层和传输层。TCP是数据流所以设置为SOCK_STREAM,而UDP是…

网络编程我们知道是通过socket进行编程的,其实socket也是基于TCP和UDP协议进行编程的。但是在socket层面是感知不到下层的,所以在设置参数的时候,其实是端到端协议智商的网络层和传输层。TCP是数据流所以设置为SOCK_STREAM,而UDP是基于数据报的,设置为SOCK_DGRAM

基于 TCP 协议的 Socket 程序函数调用过程

整体流程其实就是显示服务端进行bind ip+端口 可以进一步确定机器和将数据发送给那个应用程序,然后就开始监听状态。

在内核中,为每个 Socket 维护两个队列。一个是已经建立了连接的队列,这时候连接三次握手已经完毕,处于 established 状态;一个是还没有完全建立连接的队列,这个时候三次握手还没完成,处于 syn_rcvd 的状态。

服务端拿出一个已经完成的连接进行处理,客户端通过connect函数创建连接,指明要连接的目标IP+port。内核会给客户端分配一个临时的端口。

监听的 Socket 和真正用来传数据的 Socket 是两个,一个叫作监听 Socket,一个叫作已连接 Socket。
连接建立完成,就通过一写一读的模式进行处理数据。

Socket 在 Linux 中就是以文件的形式存在的。除此之外,还存在文件描述符。写入和读出,也是通过文件描述符。
在这里插入图片描述

基于 UDP 协议的 Socket 程序函数调用过程

UDP因为不需要进行连接,所以只需要端口和IP使用senddtp就可以发送数据,recvfrom接收数据。
在这里插入图片描述

服务器如何接更多的项目?

因为上面的方式其实就是一个客户端对应一个服务端的模式,但是对于高性能、高并发系统来说,其实都是需要一个服务端进行同时处理上千上万的客户端请求处理,所以这种方式不可以,那么服务端最大TCP连接数其实是受到文件描述符限制 也就是ulimit 文件描述符的数目,另一个就是内存,每个TCP连接都要占用一定的内存,硬件资源也是有限制的。

多进程方式

一种方式就是有一个专门处理连接+转发任务的进程,但是当有新的客户端请求进来的时候,这个主进程会fork新的进程进行处理客户端的请求,因为是通过frok的形式,所以会复制文件描述符的列表,也会复制内存空间。所以子进程也可以访问内核态统一打开文件列表的文件,当子进程处理完毕之后,就可以通过函数的返回值进行判断。如果是整数就是父进程,如果是0就是子进程。

在这里插入图片描述

多线程方式

线程相比进程暂用的资源更少,但是对于C10K问题来说,其实还有有点捉襟见肘。

IO 多路复用

select模式
由于socket是文件描述符,所以可以通过一个线程进行所有的文件描述符,将所有的文件描述符放在一起,fd_set中,会实时监听,那些文件描述符有变化,当发生变化的时候就将fd_set设置为1,表示socket可读或者可写,然后继续调用select进行监听下一轮的变化。

epollo
因为监听这种方式需要遍历所有的文件描述符,并且有最大数据限制。
所以最好的方式是那个文件描述符有变化,进行主动通知的方式,在内核的实现方式不是通过轮训的方式,而是通过注册callback函数的方式,当某个文件描述符发送变化的时候,主动通知。
在这里插入图片描述
比如创建了m n x三个socket。那么会先创建一个epoll对象,也就是一个文件描述符,对应结构其实就是一个红黑树,保存所有这个监听所有的socket。当添加一个socket的时候,其实就是加入这个红黑树,红黑树的节点指向这个结构,将这个结构挂在被监听的socket事件列表中,当一个socket来了一个事件的时候,就可以从列表中获取epoll对象,并调用call back进行回调。
epoll 被称为解决 C10K 问题的利器

小结

本篇主要介绍了UDP和TCP网络编程流程细节,以及支撑大量连接的高并发的服务端不容易,多进程、多线程、IO多路复用等。

推荐阅读:https://blog.csdn.net/jia970426/article/details/130611163?spm=1001.2014.3001.5501

[https://blog.csdn.net/jia970426/article/details/132947333?spm=1001.2014.3001.5501]

http://www.hengruixuexiao.com/news/56405.html

相关文章:

  • 网站建设com优化网站排名
  • 乐山旅游英文网站建设品牌推广和营销推广
  • 怎样做静态网站关键词怎么提取
  • 哈市哪里网站做的好seo网站诊断分析报告
  • 东莞ui设计公司seo怎么赚钱
  • 哪家网站做旅游攻略好做销售最挣钱的10个行业
  • 常用于做网站的软件深圳优化seo
  • 编程外包平台哪里可以学seo课程
  • 外贸平台做摩托车配件什么网站好聚名网域名注册
  • 网站建设成都北京营销公司排行榜
  • 株洲今日头条最新消息国外网站seo
  • 如何做自己的广告网站google seo优化
  • 社会信用体系网站建设百度置顶广告多少钱
  • 河北seo网站优化价格google seo 优化
  • 舟山的房子做民宿上什么网站域名申请的流程
  • 浙江交通工程建设集团网站2345浏览器网址
  • 高端集团网站建设应用商店aso优化
  • 人力资源和社会保障部证书有用吗石家庄网络seo推广
  • 网站网警备案流程seo优化排名易下拉用法
  • 网站设计语言有哪些前端seo是什么意思
  • wordpress修改首页模板大侠seo外链自动群发工具
  • 公司做网站的价格几千元广东省最新新闻
  • 外网设计素材网站app推广赚佣金
  • 南京汤山建设银行网站百度竞价开户
  • h5页面怎么做百度seo公司
  • 柳州正规网站制作公司英文站友情链接去哪里查
  • 怎么做网站的内链外链搜易网托管模式的特点
  • 企业网站构建方案东莞网络优化服务商
  • 网站做404好处企业网站的搜索引擎推广与优化
  • 上海 国际网站设计东莞关键词优化实力乐云seo