zoukankan      html  css  js  c++  java
  • TCP/IP 插口层

      插口层与协议的具体实现相关。

    引言:重点是插口层和相关的系统调用的实现是最关键的问题。

    splnet处理,重点要理解插口层和系统调用的实现。

    Socket结构

    一直被广泛使用的socket结构和插口层的使用有很大的关系。插口代表一条通信链路的一端,抽象的说就像绳子的一头,绳子代表存储和指向链路有关的信息。

    理解成网线的插口比较好。。。今天华为被怼了,很不爽。特朗普有病。。包括贸易战的大节奏。

    getsocketopt和setsocketopt 的系统调用能修改大部分的插口选项。。。。

    struct socket定义 不必要记 关注它定义了哪些结构。

    SS_NBIO :内核不阻塞进程。

    SS_ASYNC:内核发送SIGIO信号给so_pgid标识。

    主要看函数的调用和进程之间的关系。很无聊。只是一个载体。

    系统调用

    每一个系统调用均被编号,当进程执行一个系统调用时,硬件被配置或传输控制给一个内核函数。

    内核函数syscall,是为了找sysent结构。

    ssocket可以作为系统调用的例子。只要看三点就可以。

    1建立服务器客户端和客户,终止类系统调用。2输入输出类系统调用。3管理类系统调用。

    网络系统调用流程要仔细看。socket主要是开或关,读写,监听,连接。

    进程,描述符和插口

    这三个名称是为了给系统调用做基础的。三个名词,只有描述符比较陌生。比较无聊。。。

    socket系统调用

    socket系统调用生产一个新的插口,并将制定的协议连接起来。

    socket的系统调用是一个简单的例子,关系到很多函数。没什么作用,无聊。

    socket只是一个例子,插口层的存在在哪里是更重要的事情。

    bind系统调用

    bind系统调用将本地的网络运输层地址和插口层联系起来。进程需要绑定要地址,因此进程在接受TCP和接受UDP之前必须调用bind函数。

    寻找插口和本地地址的连接。

    listen系统调用

    通知协议进程准备接受插口的请求。当由插口来了,listen就负责通知。

    还有tsleep函数,wakeup函数,accept函数sonewconn,soisconnested函数

    connect系统调用

    服务器进程调用listenhe accept调用等待远程初始化。进程愿意自己初始化,则调用connect函数。

    重点是connect处理过程。

    shutdown系统调用

    顾命思意就是,就是关闭插口通道。

    close系统调用

    关闭各类描述符。

    小结

    本节主要讲了网络操作相关的系统调用。但是插口层的他妈的具体在哪里,我目前还不是很明白。。。希望以后的学习中,可以补齐。

    今天状态不佳,。。

    千秋邈矣独留我 百战归来再读书
  • 相关阅读:
    使用Astah画UML类图经验总结
    Qt的四个常见的图像叠加模式
    获取Linux时间函数
    DBus学习网站
    线程属性pthread_attr_t简介
    Secure CRT 自动记录日志log配置
    MySQL的group_concat()函数合并多行数据
    MySQL的Limit详解
    异步查询json传日期格式到前台,变成了时间戳的格式
    启动studio报错Gradle error
  • 原文地址:https://www.cnblogs.com/lordwind/p/10887085.html
Copyright © 2011-2022 走看看