上一页 1 ··· 57 58 59 60 61 62 63 64 65 ··· 70 下一页
摘要: ngx_event.c :这个文件主要放置Nginx事件event模块的核心代码。 包含:进程事件分发器(ngx_process_events_and_timers)、事件模块的模块和配置、模块初始化/配置初始化等事件模块初始化的核心函数。 ngx_event_timer.c:定时器事件管理。主要放 阅读全文
posted @ 2020-01-02 19:33 codestacklinuxer 阅读(1031) 评论(0) 推荐(0)
摘要: Nginx服务器使用 master/worker 多进程模式。 主进程(Master process)启动后,会接收和处理外部信号; 主进程启动后通过fork() 函数产生一个或多个子进程(work process), 每个子进程会进行进程初始化、 模块调用以及对事件的接收和处理等工作。 主进程主要 阅读全文
posted @ 2020-01-02 19:32 codestacklinuxer 阅读(763) 评论(0) 推荐(0)
摘要: PACKET套接口创建 内核函数packet_create处理PF_PACKET套接口的创建工作。其参数sock->type决定了采用哪一种工作模式,如果参数type为SOCK_PACKET即第一种模式,type为SOCK_DGRAM或者SOCK_RAW即为第二种模式。 两种模式内核会赋予不同的操作 阅读全文
posted @ 2019-12-10 17:22 codestacklinuxer 阅读(2248) 评论(0) 推荐(1)
摘要: linux下抓包原理 linux下的抓包是通过注册一种虚拟的底层网络协议来完成对网络设备消息的处理权。当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会给这个伪协议一次机会,让它来对网卡收到的报文进行一次处理,此时该 阅读全文
posted @ 2019-12-10 16:29 codestacklinuxer 阅读(649) 评论(0) 推荐(0)
摘要: ACK发送状态的转换图 ACK的发送状态清除 当成功发送ACK时,会删除延迟确认定时器,同时清零ACK的发送状态标志icsk->icsk_ack.pending ACK发送事件主要做了:更新快速确认模式中的ACK额度,删除ACK延迟定时器,清零icsk->icsk_ack.pending。 在快速确 阅读全文
posted @ 2019-11-25 15:17 codestacklinuxer 阅读(708) 评论(0) 推荐(0)
摘要: TCP重传机制 TCP要保证所有的数据包都可以到达,所以,必需要有重传机制。 超时重传机制 一种是不回ack,死等3,当发送方发现收不到3的ack超时后,会重传3。一旦接收方收到3后,会ack 回 4——意味着3和4都收到了。 但是,这种方式会有比较严重的问题,那就是因为要死等3,所以会导致4和5即 阅读全文
posted @ 2019-11-23 23:35 codestacklinuxer 阅读(700) 评论(0) 推荐(0)
摘要: 接收到数据报后,会调用tcp_event_data_recv(),不管是在慢速路径的tcp_data_queue中调用还是 在快速路径中处理接收数据后直接调用,注意(如果len <= tcp_header_len 则是没有载荷),不会调用tcp_event_date_recv处理。 tcp_even 阅读全文
posted @ 2019-11-23 23:32 codestacklinuxer 阅读(540) 评论(0) 推荐(0)
摘要: TCP在收到数据后必须发送ACK给对端,但如果每收到一个包就给一个ACK的话会使得网络中被注入过多报文。TCP的做法是在收到数据时不立即发送ACK,而是设置一个定时器,如果在定时器超时之前有数据发送给对端,则ACK会被携带在数据中捎带过去;超时则由定时器发送ACK。这样就减少了报文的发送,提高了协议 阅读全文
posted @ 2019-11-23 22:57 codestacklinuxer 阅读(574) 评论(0) 推荐(0)
摘要: 转载自: http://www.cnhalo.net/2016/08/13/linux-tcp-nagle-cork/ http://abcdxyzk.github.io/blog/2018/07/08/kernel-nodelay_cork/ 糊涂窗口综合症(Silly Windw Syndrom 阅读全文
posted @ 2019-11-23 22:13 codestacklinuxer 阅读(1835) 评论(0) 推荐(0)
摘要: 道当我们接收到ack的时候,我们会判断sack段,如果包含sack段的话,我们就要进行处理。这篇blog就主要来介绍内核如何处理sack段 sack dsack概念 TCP在一个RTO超时后会重传数据包,激进的发送者会在一个RTO之内重传数据包,但是因为不知道具体是哪一个包丢失了,只能从重传队列的开 阅读全文
posted @ 2019-11-23 22:07 codestacklinuxer 阅读(762) 评论(0) 推荐(0)
上一页 1 ··· 57 58 59 60 61 62 63 64 65 ··· 70 下一页