上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 64 下一页
摘要: PACKET套接口创建 内核函数packet_create处理PF_PACKET套接口的创建工作。其参数sock->type决定了采用哪一种工作模式,如果参数type为SOCK_PACKET即第一种模式,type为SOCK_DGRAM或者SOCK_RAW即为第二种模式。 两种模式内核会赋予不同的操作 阅读全文
posted @ 2019-12-10 17:22 codestacklinuxer 阅读(1866) 评论(0) 推荐(1) 编辑
摘要: linux下抓包原理 linux下的抓包是通过注册一种虚拟的底层网络协议来完成对网络设备消息的处理权。当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会给这个伪协议一次机会,让它来对网卡收到的报文进行一次处理,此时该 阅读全文
posted @ 2019-12-10 16:29 codestacklinuxer 阅读(569) 评论(0) 推荐(0) 编辑
摘要: ACK发送状态的转换图 ACK的发送状态清除 当成功发送ACK时,会删除延迟确认定时器,同时清零ACK的发送状态标志icsk->icsk_ack.pending ACK发送事件主要做了:更新快速确认模式中的ACK额度,删除ACK延迟定时器,清零icsk->icsk_ack.pending。 在快速确 阅读全文
posted @ 2019-11-25 15:17 codestacklinuxer 阅读(558) 评论(0) 推荐(0) 编辑
摘要: TCP重传机制 TCP要保证所有的数据包都可以到达,所以,必需要有重传机制。 超时重传机制 一种是不回ack,死等3,当发送方发现收不到3的ack超时后,会重传3。一旦接收方收到3后,会ack 回 4——意味着3和4都收到了。 但是,这种方式会有比较严重的问题,那就是因为要死等3,所以会导致4和5即 阅读全文
posted @ 2019-11-23 23:35 codestacklinuxer 阅读(546) 评论(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 阅读(438) 评论(0) 推荐(0) 编辑
摘要: TCP在收到数据后必须发送ACK给对端,但如果每收到一个包就给一个ACK的话会使得网络中被注入过多报文。TCP的做法是在收到数据时不立即发送ACK,而是设置一个定时器,如果在定时器超时之前有数据发送给对端,则ACK会被携带在数据中捎带过去;超时则由定时器发送ACK。这样就减少了报文的发送,提高了协议 阅读全文
posted @ 2019-11-23 22:57 codestacklinuxer 阅读(500) 评论(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 阅读(1507) 评论(0) 推荐(0) 编辑
摘要: 道当我们接收到ack的时候,我们会判断sack段,如果包含sack段的话,我们就要进行处理。这篇blog就主要来介绍内核如何处理sack段 sack dsack概念 TCP在一个RTO超时后会重传数据包,激进的发送者会在一个RTO之内重传数据包,但是因为不知道具体是哪一个包丢失了,只能从重传队列的开 阅读全文
posted @ 2019-11-23 22:07 codestacklinuxer 阅读(619) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/zhangskd/article/details/7196707 tcp传输往返时间是指:发送方发送tcp断开时, 到发送方接收到改段立即响应的所耗费的时间。 (1)重传队列中数据包的TCP控制块在TCP重传队列中保存着发送而未被确认的数据包,数据包skb 阅读全文
posted @ 2019-11-23 21:07 codestacklinuxer 阅读(1886) 评论(0) 推荐(0) 编辑
摘要: tcp_data_queue_ofo 在新内核的实现中ofo队列实际上是一颗红黑树。在tcp_data_queue_ofo中根据序号,查找到合适位置,合并或者添加到rbtree中。同时设置dsack和sack,准备ack给发送方。 //http://abcdxyzk.github.io/blog/2 阅读全文
posted @ 2019-11-23 21:05 codestacklinuxer 阅读(947) 评论(0) 推荐(0) 编辑
上一页 1 ··· 51 52 53 54 55 56 57 58 59 ··· 64 下一页