上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 70 下一页
摘要: 端口不可达: client >server 结果server回复端口不可达, 由于是icmp报文; 到达client内核协议栈后进入icmp_rcv处理: /* * Deal with incoming ICMP packets. */ int icmp_rcv(struct sk_buff *sk 阅读全文
posted @ 2020-05-10 15:48 codestacklinuxer 阅读(4210) 评论(0) 推荐(0)
摘要: /** * struct sock - network layer representation of sockets * @__sk_common: shared layout with inet_timewait_sock * @sk_shutdown: mask of %SEND_SHUTDO 阅读全文
posted @ 2020-05-10 15:34 codestacklinuxer 阅读(708) 评论(0) 推荐(0)
摘要: 1、连接建立定时器: tcp 连接建立时, client 会发出syn 然后等待ack,server 收到syn 后会回复ack 同时也会带上新的syn,此时等待客户端回复ack,当时server没有收到ack,server 会超时重发几次synack,最后没有收到ack,导致连接建立将终止。 创建 阅读全文
posted @ 2020-05-10 11:37 codestacklinuxer 阅读(376) 评论(0) 推荐(0)
摘要: /* 需要对conntrack进行功能扩展的协议,会初始化一个struct nf_conntrack_helper 实例,把该实例注册到Netfilter中管理的全局哈希表中。 查找helper使用的hash 算法 static unsigned int helper_hash(const stru 阅读全文
posted @ 2020-05-08 23:32 codestacklinuxer 阅读(693) 评论(0) 推荐(0)
摘要: 目前内核已经有filter 功能,但是往往实际运用中需要用到一些定制的filter 功能, 所以这个时候仅仅依靠现有的不能完成,于是就出现了conntrack的扩展功能, 最直接的就是tftp helper功能。 先看数据结构: /* struct sk_buff { struct nf_connt 阅读全文
posted @ 2020-05-08 22:25 codestacklinuxer 阅读(560) 评论(0) 推荐(0)
摘要: 今天处理一个cpu标高的bug,原因:在poll 返回后将error事件当做POLLIN事件处理,fd 一直都在唤醒线程处理,但是rcv的时候没有数据; unsigned int datagram_poll(struct file *file, struct socket *sock, poll_t 阅读全文
posted @ 2020-05-07 20:19 codestacklinuxer 阅读(384) 评论(0) 推荐(0)
摘要: Q1:线上问题的process 都为release版本!不带调试信息怎么查?(目前有时需要查线上问题, 不得不解决这个问题) 之前查问题都是编译环境编译一个带有debug信息的版本进行替换来调试,但是这是对必现问题,使用gdb调试没问题,如果是非必现问题呢?替换进程重新运行现象就会消失! 解决方法: 阅读全文
posted @ 2020-05-05 13:37 codestacklinuxer 阅读(756) 评论(0) 推荐(1)
该文被密码保护。 阅读全文
posted @ 2020-05-03 22:10 codestacklinuxer 阅读(731) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-05-03 15:20 codestacklinuxer 阅读(1430) 评论(0) 推荐(0)
摘要: 1、坚持定时器在接收方通告接收窗口为0,阻止发送端继续发送数据时设定。 由于连接接收端的发送窗口通告不可靠(只有数据才会确认),如果一个确认丢失了,双方就有可能因为等待对方而使连接终止: 接收放等待接收数据(因为它已经向发送方通过了一个非0窗口),而发送方在等待允许它继续发送数据的窗口更新。 为了防 阅读全文
posted @ 2020-05-02 16:41 codestacklinuxer 阅读(651) 评论(0) 推荐(0)
上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 70 下一页