因為要對百萬、千萬、甚至是過億的用戶提供各種網(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ò)包的接收過程