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

中山网站建设公司哪个好深圳网络营销软件

中山网站建设公司哪个好,深圳网络营销软件,甘肃网站建设方案服务至上,东营做网站的公司目录 Linux 用户态和内核态 权限转换 Socket 种类 Socket 数据结构 struct socket Socket 创建 基于 TCP 协议 ​编辑 基于 UDP 协议 Socket 类型 从 Linux 的用户态到内核态之间的交互方式和权限转换来对客户端和服务端之间进行 Socket 通信描述。 Linux 用户态和内核…

目录

Linux 用户态和内核态

权限转换

 Socket 种类

Socket 数据结构

struct socket

Socket 创建

基于 TCP 协议 

​编辑

 基于 UDP 协议

Socket 类型


从 Linux 的用户态到内核态之间的交互方式和权限转换来对客户端和服务端之间进行 Socket 通信描述。

Linux 用户态和内核态

    Linux : 给不同的操作给予不同的“权限”

    Linux 操作系统将权限等级分为 2 个:

  • 内核态(内核空间):提供应用程序运行的空间,只能受限的访问内存,且不允许访问外围设备,占用 CPU 的能力被剥夺,cpu 资源可以被其他程序获取。

  • 用户态(用户空间):cpu 可以访问内存的所有数据,包括外围设备,例如硬盘、网卡,cpu 也可以将自己从一个程序切换到另一个程序。

权限转换

  1. 系统调用:调用库函数或 shell 调用;

  2. 异常:若当前进程运行在用户态时发生了异常事件,就会触发切换。如:缺页异常;

  3. 外设中断:当外设完成用户的请求时,会向 CPU 发送中断信号。

 Socket 种类

    常见的 Socket 有:DARPA Internet 地址(Internet socket)、本地节点的路径名(Unix socket)、CCITT X.25 地址(x.25 socket)等。

    在 Linux 系统中,Socket 是用来替代传输层以上协议实体的标准接口,它负责实现传输层以上的所有功能,可以说是 Socket 是 TCP/IP 协议栈对外的窗口。

Socket 是介于应用层与传输层之间的软件抽象层,属于一组接口。

Socket 数据结构

    Linux 内核在 Socket 层定义了包含 socket 通用属性的数据结构,分别是:struct socket 与 struct sock。

struct socket

    每个 socket 在内核中都唯一对应的 struct socket 结构。

struct socket { socket_state            state;  // 状态unsigned long           flags;  // 设置标志// 存放socket等待缓冲区的状态信息,其值的形式如SOCK_ASYNC_NOSPACE等struct fasync_struct    *fasync_list;  // 等待被唤醒的socket列表// 该链表用于异步文件调用struct file             *file;  // 所属的文件描述符struct sock             *sk;  // 指向存放 socket 属性的结构指针wait_queue_head_t       wait;  // 等待队列short                   type;  // 类型。其取值为 SOCK_XXXX 形式const struct proto_ops *ops;  // socket 层的操作函数块
}

    struct sock 是套接字在网络中的最小描述,包含了内核管理套接字最重要的信息集合。

struct sock_common {unsigned short          skc_family;         // 地址族volatile unsigned char  skc_state;          // 连接状态unsigned char           skc_reuse;          // SO_REUSEADDR 设置int                     skc_bound_dev_if;struct hlist_node       skc_node;struct hlist_node       skc_bind_node;      // 哈希表相关atomic_t                skc_refcnt;         // 引用计数
};

    Linux 中 socket 的存储方式:文件,socket 建立后,用户进程就可以使用常规文件操作访问 socket。

    在 Linux 虚拟文件系统层(VFS)中,每个文件都有一个 VFS inode 结构,每个 Socket 分配了一个该类型的 inode,如下:

struct inode{struct file_operation *i_fop // 指向默认文件操作函数块
}

Socket 创建

基于 TCP 协议 

 基于 UDP 协议

  1. UDP 协议是面向无连接的,不需要三次握手,不需要调用 listen 和 connect,只需要 IP 和 port,因此需要调用 bind;

  2. UDP 是没有维护连接状态的,因而不需要每次连接建立一组 Socket,而是只要有一个 Socket 就能够和多个客户端通信;

  3. 因为没有连接状态,每次通信时都需要调用 send 和 recv,都可以传入 IP 和 port。

Socket 类型

Socket 类型有4种,说明如下:

  1. 主动 socket(Active Socket):通过系统库函数 socket() 生成的主动 socket,

    主要是用于客户端主动向服务器发送连接;

  2. 被动 socket(Passive Socket):通过系统库函数 listen(),可以将主动 socket 标记为被动 socket,用于被动监听客户端的请求连接,也叫监听socket

    被动socket是服务端独有的,将伴随服务端的整个生命周期。

  3. 监听 socket(Listened Socket): 同被动 socket(Passive Socket) 一样。

  4. 已连接socket(Connected Socket):通过系统库函数 accept() 获取的已建立连接的socket,该socket是用于客户端和服务端数据读写的通道, 已连接socket是服务器独有的,生命周期为客户端和服务端的维持的连接时长,当断开连接,生命周期结束。

http://www.lbrq.cn/news/2374705.html

相关文章:

  • 网站建设公司项目介绍百度收录的网站多久更新一次
  • 二环建设部网站微信scrm系统
  • 测试网站怎么做的山东seo网络推广
  • 软件定制公司官网seo方式包括
  • 公众号建网站seo需要懂代码吗
  • 制作网站网站站长工具seo推广 站长工具查询
  • 教做年糕博客网站深圳百度关键字优化
  • 怎么做网站的跳转最近的国际新闻
  • 重庆政府采购网站官网seo软文推广工具
  • 建设一个企业网站要多少钱廊坊百度推广seo
  • 优秀网站设计分析怎么做好推广
  • 网站做留言板b站推广入口2023破解版
  • 怎样做网站跳转下载百度推广app
  • 模板网站建设价位seo搜索优化邵阳
  • 门户网站直接登录系统企业培训机构排名
  • 有哪些公司做网站seo jsbapp9
  • wordpress获取评论广州网站优化服务
  • 三大门户网站哪家做的最好推广方法
  • 开源系统网站百度热搜关键词排行榜
  • 轩与巧之歌wordpress福州seo管理
  • 哪有培训网站开发seo外包公司一般费用是多少
  • 网站和管理系统的区别百度的人工客服
  • 衡水网页网站建设如何进行网站宣传推广
  • 网站建设准备工作总结最厉害的搜索引擎
  • 广东cba最新消息百度seo怎么样优化
  • 网站有些什么内容友情链接qq群
  • 四川微信网站建设百度广告联盟app
  • 网站模板去哪下载广告投放优化师
  • 外贸网站建设培训google谷歌搜索
  • 那个网站做国外售货最好的推广平台排名
  • Linux 进程间通信
  • 计算机网络概述
  • AI Agent开发学习系列 - langchain之LCEL(2):LCEL 链式表达解析
  • 1.easypan-登录注册
  • Axios 和Express 区别对比
  • React源码4 三大核心模块之一:Schedule,scheduleUpdateOnFiber函数