- 1 多客户端
- 2 connection id生成
- -2 RandomFd = open(“/dev/urandom”, O_RDONLY|O_CLOEXEC);
- -1 CxPlatRandom() at platform_posix.c
- 0 QuicCidNewRandomDestination () at /root/source/msquic/src/core/cid.h:258
- 1 QuicConnAlloc (Registration=Registration@entry=0x620190, Datagram=Datagram@entry=0x0) at /root/source/msquic/src/core/connection.c:240
- 2 0x00007ffff7932792 in MsQuicConnectionOpen (RegistrationHandle=0x620190, Handler=0x4045c4
, Context=0x61d5d0 , NewConnection=0x61d5f8 ) at /root/source/msquic/src/core/api.c:64 - 3 0x0000000000404a1e in RunClient (argc=argc@entry=4, argv=argv@entry=0x7fffffffdfd8) at /root/source/msquic/src/tools/sample/sample.c:1193
- 4 0x0000000000404d46 in main (argc=4, argv=0x7fffffffdfd8) at /root/source/msquic/src/tools/sample/sample.c:1304
1 多客户端
:::info 服务端设置
- max_idle_timeout调大,否则边连接、边断开
- vpp检查ip4校验和
- 抓包不能开,否则容易内存过大崩溃 :::
:::warning 客户端设置
- connection后的回调中才能open stream,否则ip分配异常
- 进程文件描述符需要调大
- ifconfig等系统命令要在主线程中,否则在回调中顺序不确定,会异常断开
:::
2 connection id生成
cid.h :: QuicCidNewRandomDestination最终调用 linux 的/dev/urandom来生成随机数。 ```-2 RandomFd = open(“/dev/urandom”, O_RDONLY|O_CLOEXEC);
-1 CxPlatRandom() at platform_posix.c
0 QuicCidNewRandomDestination () at /root/source/msquic/src/core/cid.h:258
1 QuicConnAlloc (Registration=Registration@entry=0x620190, Datagram=Datagram@entry=0x0) at /root/source/msquic/src/core/connection.c:240
2 0x00007ffff7932792 in MsQuicConnectionOpen (RegistrationHandle=0x620190, Handler=0x4045c4 , Context=0x61d5d0 , NewConnection=0x61d5f8 ) at /root/source/msquic/src/core/api.c:64
3 0x0000000000404a1e in RunClient (argc=argc@entry=4, argv=argv@entry=0x7fffffffdfd8) at /root/source/msquic/src/tools/sample/sample.c:1193
4 0x0000000000404d46 in main (argc=4, argv=0x7fffffffdfd8) at /root/source/msquic/src/tools/sample/sample.c:1304
```