LwIP在STM32上TCP通訊速度
使用LwIP容易,但要想使用LwIP獲得好的的速度。LwIP做一個(gè)如下修改,會(huì)讓TCP網(wǎng)絡(luò)速度好一些:
lwipopts.h文件
/* TCP Maximum segment size. */
#define TCP_MSS 2048//1024
/* TCP sender buffer space (bytes). */
#define TCP_SND_BUF 2048//1024
/* TCP sender buffer space (pbufs). This must be at least = 2 *
TCP_SND_BUF/TCP_MSS for things to work. */
#define TCP_SND_QUEUELEN 4 * TCP_SND_BUF/TCP_MSS //4
參數(shù)
#define TCP_WND 4096
#define TCP_MSS 2048
#define TCP_SND_BUF 4096
TCP_MSS:
MSS就是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段。為了達(dá)到最佳的傳輸效能TCP協(xié)議在建立連接的時(shí)候通常要協(xié)商雙方的MSS值,這個(gè)值TCP協(xié)議在實(shí)現(xiàn)的時(shí)候往往用MTU值代替(需要減去IP數(shù)據(jù)包包頭的大小20Bytes和TCP數(shù)據(jù)段的包頭20Bytes)所以往往MSS為1460。通訊雙方會(huì)根據(jù)雙方提供的MSS值得最小值確定為這次連接的最大MSS值。
TCP_WND與TCP接收相關(guān),能夠做多個(gè)數(shù)據(jù)包接收,然后只發(fā)一個(gè)ACK確認(rèn)。
TCP_SND_BUF與發(fā)送相關(guān)。