因?yàn)橐獙Π偃f、千萬、甚至是過億的用戶提供各種網(wǎng)絡(luò)服務(wù),所以在一線互聯(lián)網(wǎng)企業(yè)里面試和晉升后端開發(fā)同學(xué)的其中一個重點(diǎn)要求就是要能支撐高并發(fā),要理解性能開銷,會進(jìn)行性能優(yōu)化。而很多時(shí)候,如果你對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ò)包的接收過程