• 俩孩儿他爸
    2019-10-11
    struct tcp_sock继承自struct inet_connection_sock inet_conn,inet_connection_sock继承自struct inet_sock,struct inet_sock继承自struct sock;

    1.上述四个结构的关系具有十足的面向对象的特征,struct是基类,通过层层继承,实现了类的复用;
    2.内核中网络相关的很多函数,参数往往都是struct sock,函数内部依照不同的业务逻辑,将struct sock转换为不同的业务结构;
    这样做的好处:
    1.简化接口的设计复杂度;
    2.使用基类作为参数,十分类似于面向对象中的多态特性,能够有效的增强接口的稳定性、提升扩展性。
    展开
    
     3
  • Spring
    2019-10-02
    老师,请问服务端维护的未完全建立链接队列的元素sock是什么时候创建的呢?是每次收到客户端的SYN包后创建?还是listen时会初始化几个sock?
    
     1
  • 无心之福
    2019-08-19
    开头的那个代码的 逗号加的不对吧?

    作者回复: 对的,看一下SYSCALL_DEFINE3这个宏的定义就理解了

     1
     1
  • kkxue
    2019-07-14
    原来得先看总结图,再看内容。。

    作者回复: 对的,这是一个好方法

    
     1
  • 谛听
    2019-11-24
    socket: 根据参数创建相应socket
    bind: 绑定IP、端口
    listen: 建立两个队列,改变状态为TCP_LISTEN
    accept: 从完成三次握手的队列中取出一个socket,没有的话让出cpu
    connect: 三次握手
    
    
  • 莫名
    2019-08-09
    看了一遍,然后花了一天把源码又过了一遍,很有收货,对socket的理解不再浮于表面。

    作者回复: 赞

    
    
  • W.jyao
    2019-07-08
    老师,能解释下listenfd和acceptfd的端口为什么一样吗?

    作者回复: 一个服务端口当然一样呀。只不过两个socket数据结构而已

    
    
  • 飞翔
    2019-07-08
    syn到底是个什么东西呀?是个integer还是char类型

    作者回复: 详见网络包的格式,TCP头里面有syn

     1
    
  • 二星球
    2019-07-08
    老师好,同一个TCP链接上先后发送2次rpc请求,后发送的请求其结果先返回,先发送的请求结果后返回,这样有没有问题呢,系统能区分各自的返回结果么,靠什么机制保证的呢?一直没有想明白

    作者回复: RPC是应用层的,需要应用层自己保证请求和结果的对应。

    
    
我们在线,来聊聊吧