最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

玩轉(zhuǎn)Linux內(nèi)核套接字(socket)原理與機(jī)制

2022-03-10 15:31 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

1、套接字基本知識(shí)

  • 套接字(socket)就是對(duì)網(wǎng)絡(luò)當(dāng)中不同主機(jī)上面的應(yīng)用程序進(jìn)程之間進(jìn)行雙向通信的端點(diǎn)的抽象。套接字類型:流式套接字、數(shù)據(jù)報(bào)套接字、原始套接字。套接字作用:主要完成兩個(gè)應(yīng)用程序之間的數(shù)據(jù)傳輸。套接字本質(zhì):兩個(gè)網(wǎng)絡(luò)各自通信連接中的端點(diǎn)。

2、套接字表示方式

  • 套接字socket=(ip地址:端口號(hào)),套接字表示方法采用點(diǎn)分十進(jìn)制的ip地址后面寫上端口號(hào),中間用冒號(hào)或逗號(hào)隔開。每個(gè)傳輸層連接唯一地被通信兩的兩個(gè)端點(diǎn)(兩個(gè)套接字)所確定。比如IP地址是192.168.2.34,端口號(hào)是89,那么對(duì)應(yīng)套接字就是(192.168.2.34:89)。

3、socket在網(wǎng)絡(luò)當(dāng)中地位及作用

  • socket在所有的網(wǎng)絡(luò)操作系統(tǒng)中是必不可少,而且在所有的網(wǎng)絡(luò)應(yīng)用唾棄中也是必不可少。它是網(wǎng)絡(luò)通信中應(yīng)用程序?qū)?yīng)的進(jìn)程和網(wǎng)絡(luò)協(xié)議之間的接口。具體套接字在網(wǎng)絡(luò)系統(tǒng)中地位如下:


  • 套接字在網(wǎng)絡(luò)系統(tǒng)中作用:

  1. socket在協(xié)議之上,屏蔽不同網(wǎng)絡(luò)協(xié)議之間的差異;

  2. socket是網(wǎng)絡(luò)編程入口,提供大量系統(tǒng)調(diào)用,構(gòu)成網(wǎng)絡(luò)程序的主體;

  3. 在Linux系統(tǒng)中,socket屬于文件系統(tǒng)的一部分。

文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。?!前100名進(jìn)群領(lǐng)取,額外贈(zèng)送一份價(jià)值699的內(nèi)核資料包(含視頻教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)

4、套接字接口的種類

  • Linux支持多種套接字種類,不同的套接字種類稱為“地址族”。Linux所支持的部分BSD套接字類型常見如下:

套接字地址族 說明?

UNIX UNIX域套接字?

INET 通過TCP/IP協(xié)議支持的Internet地址族?

AX25 Amater radio X25?

AppLETALK Appletalk DDP?

IPX Novell IPX?

X25 X25?

Linux所支持的BSD套接字類型?

流(stream):提供可靠的雙向順序數(shù)據(jù)流,可以保證數(shù)據(jù)不會(huì)在傳輸過程中丟失、破壞或重復(fù)出現(xiàn)。流套接字通過INET地址族的TCP協(xié)議實(shí)現(xiàn)。?

數(shù)據(jù)報(bào)(datagram):提供雙向的數(shù)據(jù)傳輸,但是并不對(duì)數(shù)據(jù)的傳輸過程中提供擔(dān)保,意思是說,數(shù)據(jù)可能會(huì)以錯(cuò)誤的順序傳遞,甚至丟失或破壞。這種類型的套接字通過INET地址族的UDP協(xié)議實(shí)現(xiàn)。?

原始(raw):利用這種類型的套接字,進(jìn)程可以直接訪問底層協(xié)議(稱為原始)。 可靠發(fā)送的消息:和數(shù)據(jù)報(bào)套接字類似,但保證數(shù)據(jù)被正確傳輸?shù)侥康亩恕?順序數(shù)據(jù)包:和流套接字類似,但數(shù)據(jù)包大小是固定的。?

數(shù)據(jù)包(packet):并不是標(biāo)準(zhǔn)的BSD套接字類型,它是Linux專有的BSD套接字?jǐn)U展,可允許進(jìn)程直接在設(shè)備訪問數(shù)據(jù)包。

一、套接字的工作原理

  • INET套接字就是支持Internet地址族的套接字,它位于TCP之上,BSD套接字之下,這也是能夠體現(xiàn)Linux網(wǎng)絡(luò)模塊分層的設(shè)計(jì)架構(gòu)思想。INET套接字視圖如下:


  • INET和BSD套接字之間的接口通過Internet地址族套接字操作集進(jìn)行實(shí)現(xiàn),操作集實(shí)際是一組協(xié)議操作例程,具體對(duì)應(yīng)內(nèi)核源碼如下:

  • BSD套接字層通過調(diào)用proto_ops結(jié)構(gòu)中相應(yīng)函數(shù)執(zhí)行對(duì)應(yīng)任務(wù)。BSD套接字層向INET套接字層傳遞socket數(shù)據(jù)結(jié)構(gòu)直接來代表一個(gè)BSD套接字,socket結(jié)構(gòu)數(shù)據(jù)類型對(duì)應(yīng)內(nèi)核具體源碼如下:


  • 進(jìn)程在利用套接字進(jìn)程通信時(shí),采用C/S模型。服務(wù)器首先創(chuàng)建一個(gè)套接字,并將某個(gè)名稱綁定到此套接字上面,套接字的名稱依賴于套接字的底層地址族。但通常是服務(wù)器的本地地址。套接字的名稱地址通過sockaddr數(shù)據(jù)結(jié)構(gòu)指定,具體內(nèi)核源碼如下:


  • Linux內(nèi)核源碼分析:進(jìn)程管理專題、內(nèi)存管理專題、網(wǎng)絡(luò)協(xié)議棧專題、設(shè)備驅(qū)動(dòng)專題、文件系統(tǒng)專題、項(xiàng)目實(shí)戰(zhàn)模塊專題。



玩轉(zhuǎn)Linux內(nèi)核套接字(socket)原理與機(jī)制的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
瑞金市| 曲水县| 衡阳市| 滦平县| 汾西县| 沁水县| 屏南县| 义马市| 盱眙县| 济阳县| 梧州市| 泗阳县| 吴江市| 缙云县| 烟台市| 屏南县| 永胜县| 玛纳斯县| 额尔古纳市| 得荣县| 大竹县| 白玉县| 田林县| 三原县| 佛坪县| 巴青县| 南涧| 若羌县| 仁寿县| 广东省| 沅江市| 浙江省| 金湖县| 密山市| 宕昌县| 垦利县| 齐齐哈尔市| 都兰县| 苍山县| 承德县| 开江县|