- 博客(8)
- 收藏
- 关注
原创 排队时延(Queuing delay)
网络时延的构成 Network delay including four parts:Processing delay - time routers take to process the packet header.Queuing delay - time the packet spends in routing queuesTransmission delay - time
2014-01-21 18:04:16 17608
原创 TCP连接建立系列 — 服务端接收ACK段(二)
本文主要分析:三次握手中最后一个ACK段到达时,服务器端的处理路径。内核版本:3.6Author:zhangskd @ csdn blog 创建新sock 协议族相关的操作函数,我们要看的是TCP/IPv4的实例ipv4_specific。const struct inet_connection_sock_af_ops ipv4_specific = { ..
2014-01-07 09:49:08 6933 1
原创 TCP连接建立系列 — 服务端接收ACK段(一)
本文主要分析:三次握手中最后一个ACK段到达时,服务器端的处理路径。内核版本:3.6Author:zhangskd @ csdn blog 接收入口 1. 状态为ESTABLISHED时,用tcp_rcv_established()接收处理。2. 状态为LISTEN时,说明这个sock处于监听状态,用于被动打开的接收处理,包括SYN和ACK。3. 当状态不为ESTA
2014-01-07 09:46:55 10769 5
原创 TCP连接建立系列 — 服务端发送SYNACK段
tcp_v4_send_synack()用于发送SYNACK段,在tcp_v4_conn_request()中被调用。首先调用tcp_make_synack()构造SYNACK段,主要是构造TCP报头和初始化skb中的一些字段。然后调用ip_build_and_send_pkt()添加IP报头后发送出去。
2014-01-06 18:04:36 6498 1
原创 TCP连接建立系列 — 服务端接收SYN段
状态为ESTABLISHED时,用tcp_rcv_established()接收处理。状态为LISTEN时,说明这个sock处于监听状态,用于被动打开的接收处理,包括SYN和ACK。当状态不为ESTABLISHED或TIME_WAIT时,用tcp_rcv_state_process()处理。经由接收入口后,主要由tcp_v4_conn_request()进行处理。
2014-01-06 17:34:03 8115 2
原创 TCP连接建立系列 — 连接请求块
连接请求块(request_sock)之于TCP三次握手,就如同sk_buff之于网络协议栈,都是核心的数据结构。 存储队列 连接请求块的存储队列,内含全连接队列、半连接队列。/** * @icsk_accept_queue: FIFO of established children */struct inet_connection_sock { ...
2014-01-06 17:02:02 6993 4
原创 TCP连接建立系列 — TCP选项解析
TCP选项解析 清零TCP选项。static inline void tcp_clear_options(struct tcp_options_received *rx_opt){ rx_opt->tstamp_ok = rx_opt->sack_ok = 0; rx_opt->wscale_ok = rx_opt->snd_wscale = 0; r
2014-01-06 16:59:40 14497 2
原创 SYN Cookie的原理和实现
SYN Cookie 判断是否使用SYN Cookie。如果SYN Cookie功能有编译进内核(CONFIG_SYN_COOKIE),且选项tcp_syncookie不为0,那么可使用SYN Cookie。同时设置SYN Flood标志(listen_opt->synflood_warned)。/* Return true if a syncookie should be sen
2014-01-06 16:56:15 50898 7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人