Skip to content

Commit 30ff4cd

Browse files
committed
update
1 parent 68e0786 commit 30ff4cd

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

linux/network-performance-ultimate-guide.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ Source:
141141

142142
</details>
143143

144-
![](https://github.com/ntk148v/til/blob/master/linux/images/linux-networking-recv.png)
144+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imageslinux-networking-recv.png)
145145

146146
![](https://img-blog.csdnimg.cn/20201025161643899.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvbmdfVG9h,size_16,color_FFFFFF,t_70)
147147

@@ -285,7 +285,7 @@ Source:
285285

286286
### 1.2. Linux kernel network transmission
287287

288-
![](https://github.com/ntk148v/til/blob/master/linux/images/linux-networking-send.png)
288+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imageslinux-networking-send.png)
289289

290290
![](https://s2.51cto.com/images/blog/202104/15/25012de83ba2d80fcd790b49ff346b62.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/format,webp/resize,m_fixed,w_1184)
291291

@@ -997,21 +997,21 @@ Source:
997997
998998
- Context switch between kernel and userspace
999999
1000-
![](https://github.com/ntk148v/til/blob/master/linux/images/linux-network-1.png)
1000+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imageslinux-network-1.png)
10011001
10021002
- Packet copy between kernel and userspace
10031003
1004-
![](https://github.com/ntk148v/til/blob/master/linux/images/linux-network-2.png)
1004+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imageslinux-network-2.png)
10051005
10061006
- Dynamic allocation of `sk_buff`
10071007
- Per packet interrupt
10081008
- Shared data structures
10091009
1010-
![](https://github.com/ntk148v/til/blob/master/linux/images/linux-network-3.png)
1010+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imageslinux-network-3.png)
10111011
10121012
- Solution: Why just bypass the kernel?
10131013
1014-
![](https://github.com/ntk148v/til/blob/master/linux/images/linux-network-4.png)
1014+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imageslinux-network-4.png)
10151015
10161016
- There are many kernel bypass techniques:
10171017
- User-space packet processing:
@@ -1138,7 +1138,7 @@ Source:
11381138
- In-kernel verifier to ensure safety, security
11391139
- JIT (Just-in-time) compiler available for main architecture
11401140
1141-
![](https://github.com/ntk148v/til/blob/master/linux/images/ebpf-1.png)
1141+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imagesebpf-1.png)
11421142
11431143
- Features:
11441144
- Maps: key-value entries (hash, array,...) shared between eBPF programs or with user user-space
@@ -1217,15 +1217,15 @@ Source:
12171217
12181218
- `AF_XDP`:
12191219
1220-
![](https://github.com/ntk148v/til/blob/master/linux/images/xdp-flow.png)
1220+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imagesxdp-flow.png)
12211221
12221222
- A new type of socket, presented into the [Linux 4.18](https://www.kernel.org/doc/html/v4.18/networking/af_xdp.html) which does not completely bypass the kernel, but utilizes its functionality and enables to create something alike DPDK or the `AF_PACKET`.
12231223
12241224
- An upgraded version of `AF_PACKET`: Use XDP program to trigger Rx path for selected queue
12251225
- XDP programs can redirect frames to a memory buffer in user-space by eBPF -> not bypass the kernel but creates in-kernel fast path.
12261226
- DMA transfers use user space memory (zero copy)
12271227
1228-
![](https://github.com/ntk148v/til/blob/master/linux/images/xdp.png)
1228+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imagesxdp.png)
12291229
12301230
- Benefits:
12311231
- Performance improvement:
@@ -1237,7 +1237,7 @@ Source:
12371237
- No change to DPDK apps, kernel driver handles hardware
12381238
- Provide a new option for users
12391239
1240-
![](https://github.com/ntk148v/til/blob/master/linux/images/xdp-dpdk.png)
1240+
![](https://raw.githubusercontent.com/ntk148v/til/master/linux/imagesxdp-dpdk.png)
12411241
12421242
- Limitations:
12431243
- Quite young project

0 commit comments

Comments
 (0)