国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計(jì)算機(jī)網(wǎng)絡(luò)-網(wǎng)絡(luò)文件共享協(xié)議

這篇具有很好參考價(jià)值的文章主要介紹了計(jì)算機(jī)網(wǎng)絡(luò)-網(wǎng)絡(luò)文件共享協(xié)議。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

在計(jì)算機(jī)網(wǎng)絡(luò)中,我們經(jīng)常會(huì)遇到在不同計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)之間如何共享和訪問文件的場(chǎng)景,并且在實(shí)際項(xiàng)目中有這樣的需求,在Linux中需要?jiǎng)討B(tài)的mount文件,需要選擇合適的網(wǎng)絡(luò)文件共享協(xié)議以滿足并發(fā),吞吐量等需求。這就涉及今天要講的網(wǎng)絡(luò)文件共享協(xié)議SMB和NFS。

SMB vs NFS

什么是SMB

SMB 即 Server Message Block,最初是由IBM開發(fā)的,并被Microsoft進(jìn)一步發(fā)展為CIFS(Common Internet File System)。雖然主要使用于windows,但目前也支持跨平臺(tái)。該協(xié)議還在不斷發(fā)展,最新的SMB版本是v.3.1.1。有時(shí)會(huì)將CIFS與SMB混淆,實(shí)際上CIFS是微軟對(duì)SMB的實(shí)現(xiàn)。

大家可能也聽說過Samba,Samba是SMB在Linux上的實(shí)現(xiàn):

Samba:SMB 協(xié)議最初是由 Samba 提供 Unix 支持的。由于微軟最初沒有公開發(fā)布其專有協(xié)議的公共規(guī)范,Samba 的開發(fā)者不得不對(duì)其進(jìn)行逆向工程。未來版本的 Samba 能夠使用后來 SMB 協(xié)議的公開規(guī)范。Samba 包括對(duì) SMB3(3.1.1)的支持。

Linux CIFS utils:這個(gè)內(nèi)核軟件充當(dāng) SMB 客戶端,是在 Linux 上掛載現(xiàn)有 SMB 共享的首選方法。它最初是作為 Samba 軟件的一部分包括在內(nèi)的,但現(xiàn)在可以單獨(dú)獲得。Linux CIFS utils 作為大多數(shù) Linux 發(fā)行版中的 cifs_utils 軟件包提供

什么是NFS

NFS 即 Network File System,是由Sun Microsystems(現(xiàn)在為Oracle Corporation的一部分)開發(fā)的協(xié)議。它主要被設(shè)計(jì)用于UNIX/Linux操作系統(tǒng)的環(huán)境中。NFS v4是最新NFS版本。它支持并行文件訪問,并且在這個(gè)版本中改進(jìn)了安全性。向后兼容NFS v2和NFS v3。NFS v4支持更多的身份驗(yàn)證。

SMB vs NFS
SMB NFS
認(rèn)證 User-based Host-based
端口 TCP 445; TCP 139, UDP 137, 138 TCP 2049, UDP 2049, TCP 111 and UDP 111; TCP 1110, UDP 1110, TCP 4045, UDP 4045.
加密 Kerberos, AES-256 Kerberos and TLS
File Lock 支持 只有高版本的支持
Performance 小文件performance更好,大文件一樣。

實(shí)現(xiàn)

首先我們的網(wǎng)絡(luò)文件是使用的Azure服務(wù),我們首先來調(diào)查下Azure Blog服務(wù)都支持的協(xié)議,總結(jié)如下:

Azure Storage Service 支持的協(xié)議
Azure Blob Storage NFS 3.0
Azure File Storage (Standard) SMB
Azure File Storage (Premium) NFS 4.1, SMB

然后我們使用網(wǎng)絡(luò)文件是為了讀寫Sqlite文件,而使用Sqlite文件必須得支持File Lock, 而NFS 3.0并不支持File Lock, 綜合考慮,最合適的是SMB。 c#代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-861504.html

class LinuxMount : IMount
{
    private const String CredFolder = "/tmp";

    private static readonly String MountFileStorageCommand = "mount -t cifs {0} {1} -o credentials={2},dir_mode=0777,file_mode=0777,uid=0,gid=0,cache=strict,mfsymlinks,nobrl";
    private static readonly String UnmountFileStorageCommand = "umount -f {0}";

    public void Mount(DeviceMountOption option)
    {
        var mountPoint = option.MountPoint;
        EnsureFolder(mountPoint);
        EnsureFolder(CredFolder);
        var credFile = Path.Combine(CredFolder, $"credentials_{Guid.NewGuid()}");
        var credContent = $"username={option.Username}{Environment.NewLine}password={option.Password}";
        try
        {
            File.WriteAllText(credFile, credContent);
            ExcuteCommand(String.Format(MountFileStorageCommand, option.FileSharePath, mountPoint, credFile));
        }
        finally
        {
            if (File.Exists(credFile))
            {
                File.Delete(credFile);
            }
        }
    }

    public void Unmount(String mountPoint)
    {
        ExcuteCommand(String.Format(UnmountFileStorageCommand, mountPoint));
    }

    private void EnsureFolder(String folder)
    {
        var dir = new DirectoryInfo(folder);
        if (!dir.Exists)
        {
            dir.Create();
        }
    }

    private void ExcuteCommand(String command)
    {
        using var proc = new Process();
        proc.StartInfo.FileName = "sh";
        proc.StartInfo.Arguments = $"-c \"{command}\"";
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.CreateNoWindow = true;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.RedirectStandardError = true;
        proc.Start();

        var result = proc.StandardOutput.ReadToEnd();
        result += proc.StandardError.ReadToEnd();

        proc.WaitForExit();
        if (proc.ExitCode != 0)
        {
            throw new Exception($"Command failed, {result}");
        }
    }
}

到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)-網(wǎng)絡(luò)文件共享協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【計(jì)算機(jī)網(wǎng)絡(luò)】網(wǎng)絡(luò)層協(xié)議 -- ICMP協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)】網(wǎng)絡(luò)層協(xié)議 -- ICMP協(xié)議

    ICMP(Internet Control Message Protocol,控制報(bào)文協(xié)議),用于在IP主機(jī)、路由器直接傳遞控制消息,是一個(gè)TCP/IP協(xié)議。 ICMP協(xié)議的定位 網(wǎng)絡(luò)層的最典型的協(xié)議是IP協(xié)議,但是除了IP協(xié)議之外,還有ICMP協(xié)議和IGMP協(xié)議。 ICMP、IGMP和IP協(xié)議雖然都屬于網(wǎng)絡(luò)層的協(xié)議,但是ICMP協(xié)議和IGMP協(xié)議屬

    2024年02月14日
    瀏覽(19)
  • [計(jì)算機(jī)網(wǎng)絡(luò)]認(rèn)識(shí)“協(xié)議”

    [計(jì)算機(jī)網(wǎng)絡(luò)]認(rèn)識(shí)“協(xié)議”

    在網(wǎng)絡(luò)體系結(jié)構(gòu)中,應(yīng)用層的應(yīng)用程序會(huì)產(chǎn)生數(shù)據(jù),這個(gè)數(shù)據(jù)往往不是簡(jiǎn)單的一段字符串?dāng)?shù)據(jù),而是具有一定意義的結(jié)構(gòu)化數(shù)據(jù),應(yīng)用層要想在網(wǎng)絡(luò)中發(fā)送這個(gè)結(jié)構(gòu)化數(shù)據(jù),就要將其轉(zhuǎn)化成報(bào)文結(jié)構(gòu),而這個(gè) 將應(yīng)用程序產(chǎn)生的結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化成報(bào)文的過程就是序列化 。 數(shù)據(jù)

    2024年02月05日
    瀏覽(26)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)筆記】什么是網(wǎng)絡(luò)協(xié)議?

    【計(jì)算機(jī)網(wǎng)絡(luò)筆記】什么是網(wǎng)絡(luò)協(xié)議?

    本篇文章總字?jǐn)?shù):1027字 預(yù)計(jì)閱讀時(shí)間:3~7min 建議收藏之后慢慢閱讀 硬件(主機(jī)、路由器、通信鏈 路等)只是計(jì)算機(jī)網(wǎng)絡(luò)的基礎(chǔ)。計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)交換必須遵守事先約定好的 規(guī)則 。如果僅僅修好了道路、有了車輛,沒有交通規(guī)則來指導(dǎo)我們安全、有序的行駛,交通系統(tǒng)

    2024年02月07日
    瀏覽(26)
  • 計(jì)算機(jī)網(wǎng)絡(luò)之5層網(wǎng)絡(luò)協(xié)議

    計(jì)算機(jī)網(wǎng)絡(luò)是我們?nèi)粘I钪袩o法分割的一部分,它讓我們能夠?qū)崿F(xiàn)互聯(lián)互通,快速傳輸數(shù)據(jù),并在各個(gè)領(lǐng)域取得了巨大的成就。而要實(shí)現(xiàn)這種高效的通信,網(wǎng)絡(luò)協(xié)議就變得至關(guān)重要。網(wǎng)絡(luò)協(xié)議是計(jì)算機(jī)之間進(jìn)行通信的規(guī)則和約定,它們確保了數(shù)據(jù)能夠在網(wǎng)絡(luò)中順暢傳輸。在

    2024年02月10日
    瀏覽(30)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)-網(wǎng)絡(luò)層】路由選擇協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)-網(wǎng)絡(luò)層】路由選擇協(xié)議

    路由器是一種具有多個(gè)輸入端口和輸出端口的 專用計(jì)算機(jī) ,其任務(wù)是 轉(zhuǎn)發(fā)分組 和 路由選擇 。 實(shí)現(xiàn)的網(wǎng)絡(luò)模型:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層。 路由器的結(jié)構(gòu)分為兩個(gè)部分: 路由選擇部分(控制部分) :核心是路由選擇處理機(jī),它根據(jù) 路由選擇協(xié)議 構(gòu)造出 路由表 ,路

    2024年02月02日
    瀏覽(21)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】網(wǎng)絡(luò)基礎(chǔ)--協(xié)議/網(wǎng)絡(luò)協(xié)議/網(wǎng)絡(luò)傳輸流程/地址管理

    【計(jì)算機(jī)網(wǎng)絡(luò)】網(wǎng)絡(luò)基礎(chǔ)--協(xié)議/網(wǎng)絡(luò)協(xié)議/網(wǎng)絡(luò)傳輸流程/地址管理

    網(wǎng)絡(luò)的發(fā)展分為一下幾個(gè)階段: 獨(dú)立模式: 計(jì)算機(jī)之間相互獨(dú)立: 此時(shí)計(jì)算機(jī)之間是相互獨(dú)立的,每個(gè)人在執(zhí)行任務(wù)的時(shí)候是獨(dú)立的,需要等待前一個(gè)將任務(wù)完成之后,自己才能進(jìn)行執(zhí)行任務(wù),是串行執(zhí)行的,效率很低。 網(wǎng)絡(luò)互聯(lián): 多臺(tái)計(jì)算機(jī)連接在一起, 完成數(shù)據(jù)共享:

    2024年02月03日
    瀏覽(31)
  • 常見的計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議

    IP?、 ICMP、IGMP、IS-IS、IPsec、 ARP、?RARP、RIP、VRRP等 TCP、 UDP、TLS、SSL、OSPF 等 DHCP 、DNS?、FTP、 HTTP、POP3、 SNMP 、SSH 、TELNET 、 BGP 、GLBP、HSRP等 IP指網(wǎng)際互連協(xié)議,Internet Protocol的縮寫,是TCP/IP體系中的網(wǎng)絡(luò)層協(xié)議。 互聯(lián)網(wǎng)安全協(xié)議(Internet Protocol Security,IPSec)是一個(gè)協(xié)議包

    2024年02月17日
    瀏覽(23)
  • [計(jì)算機(jī)網(wǎng)絡(luò)]---Http協(xié)議

    [計(jì)算機(jī)網(wǎng)絡(luò)]---Http協(xié)議

    前言 作者 :小蝸牛向前沖 名言 :我可以接受失敗,但我不能接受放棄 ??如果覺的博主的文章還不錯(cuò)的話,還請(qǐng) 點(diǎn)贊,收藏,關(guān)注??支持博主。如果發(fā)現(xiàn)有問題的地方歡迎?大家在評(píng)論區(qū)指正? 本期學(xué)習(xí):htpp協(xié)議,認(rèn)識(shí)URL,?理解htpp協(xié)議的基本結(jié)構(gòu),寫一個(gè)簡(jiǎn)單的http協(xié)議。

    2024年02月19日
    瀏覽(25)
  • 計(jì)算機(jī)網(wǎng)絡(luò)-TCP協(xié)議

    計(jì)算機(jī)網(wǎng)絡(luò)-TCP協(xié)議

    TCP被稱為面向連接的,因?yàn)樵趹?yīng)用程序開始互傳數(shù)據(jù)之前,TCP會(huì)先建立一個(gè)連接,該連接的建立涉及到 三次“握手 ”。 TCP的連接不是一條真實(shí)存在的電路,而是一條邏輯鏈接 ,其共同狀態(tài)僅保留在兩個(gè)通信端系統(tǒng)的TCP程序中。 TCP連接也是點(diǎn)對(duì)點(diǎn)的,即TCP連接只能存在于一

    2024年02月08日
    瀏覽(36)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】TCP協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)】TCP協(xié)議

    實(shí)驗(yàn)?zāi)康?應(yīng)用所學(xué)知識(shí): 1. 熟悉 TCP 的協(xié)議格式。 2. 理解 TCP 對(duì)序列號(hào)和確認(rèn)號(hào)的使用。 3. 理解 TCP 的流量控制算法和擁塞控制算法。 實(shí)驗(yàn)步驟與結(jié)果 1.任務(wù)一: 將Alice.txt上傳到服務(wù)器: 使用wireshark捕獲數(shù)據(jù)包,看到計(jì)算機(jī)和gaia.cs.umass.edu之間的一系列 TCP 和 HTTP 通信,包

    2023年04月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包