因為要對百萬、千萬、甚至是過億的用戶提供各種網(wǎng)絡(luò)服務(wù),所以在一線互聯(lián)網(wǎng)企業(yè)里面試和晉升后端開發(fā)同學的其中一個重點要求就是要能支撐高并發(fā),要理解性能開銷,會進行性能優(yōu)化。而很多時候,如果你對Linux底層的理解不深的話,遇到很多線上性能瓶頸你會覺得狗拿刺猬,無從下手。
我們今天用圖解的方式,來深度理解一下在Linux下網(wǎng)絡(luò)包的接收過程。還是按照慣例來借用一段最簡單的代碼開始思考。為了簡單起見,我們用udp來舉例,如下:
int main(){ int serverSocketFd = socket(AF_INET, SOCK_DGRAM, 0); bind(serverSocketFd, 。。.); char buff[BUFFSIZE]; int readCount = recvfrom(serverSocketFd, buff, BUFFSIZE, 0, 。。.); buff[readCount] = ‘ 文登市| 河北省| 南昌市| 万宁市| 泗水县| 盐城市| 阿城市| 宝坻区| 富宁县| 太康县| 永康市| 佛教| 浪卡子县| 盈江县| 庆云县| 静乐县| 江口县| 嘉鱼县| 沁水县| 武隆县| 靖江市| 昭通市| 常山县| 平凉市| 荣成市| 同德县| 临朐县| 左贡县| 公主岭市| 马尔康县| 温州市| 盐边县| 岳普湖县| 亳州市| 万盛区| 唐山市| 新建县| 北碚区| 丰宁| 海门市| 襄樊市|
深度理解Linux下網(wǎng)絡(luò)包的接收過程