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

linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)

這篇具有很好參考價值的文章主要介紹了linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、網(wǎng)絡(luò)協(xié)議與協(xié)議分層

“協(xié)議” 是一種約定

1.1 為什么要分層

  1. 軟件設(shè)計方面的優(yōu)勢—低耦合
  2. 分層依據(jù):功能比較集中,耦合度較高的模塊—高內(nèi)聚
  3. 每一層都要解決特定的問題

每一層都有自己匹配的協(xié)議,每一層協(xié)議都解決自己的問題

1.2 OSI七層模型

OSI(Open System Interconnection,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型稱為開放式系統(tǒng)互聯(lián)參考模型,是一個邏輯上的定義和規(guī)范;把網(wǎng)絡(luò)從邏輯上分為了7層. 每一層都有相關(guān)、相對應(yīng)的物理設(shè)備,比如路由器,交換機(jī);

linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)
但是, 它既復(fù)雜又不實用; 所以我們按照TCP/IP四層模型來講解

1.3 TCP/IP五層(或四層)模型

物理層: 負(fù)責(zé)光/電信號的傳遞方式. 比如現(xiàn)在以太網(wǎng)通用的網(wǎng)線(雙絞 線)、早期以太網(wǎng)采用的的同軸電纜(現(xiàn)在主要用于有線電視)、光纖, 現(xiàn)在的wifi無線網(wǎng)使用電磁波等都屬于物理層的概念。物理層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等. 集線器(Hub)工作在物理層.

數(shù)據(jù)鏈路層: 負(fù)責(zé)設(shè)備之間的數(shù)據(jù)幀的傳送和識別. 例如網(wǎng)卡設(shè)備的驅(qū)動、幀同步(就是說從網(wǎng)線上檢測到什么信號算作新幀的開始)、沖突檢測(如果檢測到?jīng)_突就自動重發(fā))、數(shù)據(jù)差錯校驗等工作. 有以太網(wǎng)、令牌環(huán)網(wǎng), 無線LAN等標(biāo)準(zhǔn). 交換機(jī)(Switch)工作在數(shù)據(jù)鏈路層.

網(wǎng)絡(luò)層: 負(fù)責(zé)地址管理和路由選擇. 例如在IP協(xié)議中, 通過IP地址來標(biāo)識一臺主機(jī), 并通過路由表的方式規(guī)劃出兩臺主機(jī)之間的數(shù)據(jù)傳輸?shù)木€路(路由). 路由器(Router)工作在網(wǎng)路層.

傳輸層: 負(fù)責(zé)兩臺主機(jī)之間的數(shù)據(jù)傳輸. 如傳輸控制協(xié)議 (TCP), 能夠確保數(shù)據(jù)可靠的從源主機(jī)發(fā)送到目標(biāo)主機(jī).

應(yīng)用層: 負(fù)責(zé)應(yīng)用程序間溝通,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet)等. 我們的網(wǎng)絡(luò)編程主要就是針對應(yīng)用層
linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)

二、網(wǎng)絡(luò)傳輸流程

2.1 了解局域網(wǎng)

一、協(xié)議報頭

  1. 協(xié)議每一層都有,每一個協(xié)議的最終表現(xiàn)就是協(xié)議都要有報頭(快遞盒上的快遞單)
  2. 協(xié)議通常是通過協(xié)議報頭來表達(dá)的
  3. 每一份數(shù)據(jù)最終在被發(fā)送或者在不同的協(xié)議層中,都要有報頭

二、局域網(wǎng)

  • 兩臺局域網(wǎng)的主機(jī)能夠直接通信
  • 通信原理:每一臺主機(jī)都有網(wǎng)卡,每一張網(wǎng)卡都有自己的MAC地址 ,全球唯一。

2.2 同一網(wǎng)段內(nèi)的兩臺主機(jī)進(jìn)行文件傳輸

封裝:有效載荷+各層報頭(用誰的協(xié)議加誰的報頭)
解包:將報頭和有效載荷分離的過程
分用:將有效載荷交給指定協(xié)議解包的過程

報文=報頭+有效載荷
linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)
以上我們可以認(rèn)為:同層協(xié)議在直接通信,也可以理解成向下交付。

2.3 跨網(wǎng)段的主機(jī)的文件傳輸

同層協(xié)議看到的報文都是一樣的
最后一層與IP層通過路由器,經(jīng)過解包與重新封包之后,再去解包分用
linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)
在上圖中,路由器橫跨兩個網(wǎng)絡(luò),則有兩個網(wǎng)絡(luò)接口:路由器和以太網(wǎng)屬于同一個局域網(wǎng);路由器也和令牌環(huán)網(wǎng)屬于同一個局域網(wǎng),這樣兩個不同的局域網(wǎng)下的主機(jī)就能通過路由器實現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)

IP層及IP協(xié)議存在的意義之一:屏蔽底層網(wǎng)絡(luò)的差異,如上圖中的網(wǎng)卡層。

三、數(shù)據(jù)包封裝和分用

  • 不同的協(xié)議層對數(shù)據(jù)包有不同的稱謂,在傳輸層叫做段(segment),在網(wǎng)絡(luò)層叫做數(shù)據(jù)報 (datagram),在鏈路層叫做幀(frame).
  • 應(yīng)用層數(shù)據(jù)通過協(xié)議棧發(fā)到網(wǎng)絡(luò)上時,每層協(xié)議都要加上一個數(shù)據(jù)首部,稱為封裝
  • 首部信息中包含了一些類似于首部有多長, 載荷(payload)有多長, 上層協(xié)議是什么等信息.
  • 數(shù)據(jù)封裝成幀后發(fā)到傳輸介質(zhì)上,到達(dá)目的主機(jī)后每層協(xié)議再剝掉相應(yīng)的首部, 根據(jù)首部中的 “上層協(xié)議字段” 將數(shù)據(jù)交給對應(yīng)的上層協(xié)議處理
    linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)

四、網(wǎng)絡(luò)中的地址管理

4.1 IP地址

  1. IP地址是在IP協(xié)議中, 用來標(biāo)識網(wǎng)絡(luò)中不同主機(jī)的地址,通常使用于廣域網(wǎng)中,局域網(wǎng)中也能使用;
  2. 對于IPv4來說, IP地址是一個4字節(jié), 32位的整數(shù);對于IPv6來說, IP地址是一個16字節(jié), 128位的整數(shù),暫時不需要關(guān)注IPv6
  3. 我們通常也使用 “點分十進(jìn)制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用點分割的每一個數(shù)字表示一個字節(jié), 范圍是 0 - 255;

IP地址可以理解為某個路途的起點和終點(源IP和目的IP);在網(wǎng)絡(luò)傳輸中提供方向

4.2 MAC地址

MAC地址用來識別數(shù)據(jù)鏈路層中相連的節(jié)點;在網(wǎng)卡出廠時就確定了,不能更改!
MAC地址可以理解為某個路途中,中間相鄰的節(jié)點(源MAC地址和目的MAC地址);在網(wǎng)絡(luò)傳輸中提供可行性文章來源地址http://www.zghlxwxcb.cn/news/detail-442738.html

到了這里,關(guān)于linux【網(wǎng)絡(luò)編程】之網(wǎng)絡(luò)基礎(chǔ)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Linux網(wǎng)絡(luò)編程 網(wǎng)絡(luò)基礎(chǔ)知識

    Linux網(wǎng)絡(luò)編程 網(wǎng)絡(luò)基礎(chǔ)知識

    目錄 1.網(wǎng)絡(luò)的歷史和協(xié)議的分成 2.網(wǎng)絡(luò)互聯(lián)促成了TCP/IP協(xié)議的產(chǎn)生 3.網(wǎng)絡(luò)的體系結(jié)構(gòu) 4.TCP/IP協(xié)議族體系 5.網(wǎng)絡(luò)各層的協(xié)議解釋 6.網(wǎng)絡(luò)的封包和拆包 7.網(wǎng)絡(luò)預(yù)備知識? ? ? Internet-\\\"冷戰(zhàn)\\\"的產(chǎn)物 1957年十月和十一月,前蘇聯(lián)先后歐兩顆”Spuinik”衛(wèi)星上天 1958年美國總統(tǒng)艾森豪威爾向

    2024年02月10日
    瀏覽(26)
  • 【網(wǎng)絡(luò)編程】Linux網(wǎng)絡(luò)編程基礎(chǔ)與實戰(zhàn)第三彈——網(wǎng)絡(luò)名詞術(shù)語

    數(shù)據(jù)包從源地址到目的地址所經(jīng)過的路徑,由一系列路由節(jié)點組成。 某個路由節(jié)點為數(shù)據(jù)包選擇投遞方向的選路過程。 路由器工作原理 路由器是連接因特網(wǎng)中各局域網(wǎng)、廣域網(wǎng)的設(shè)備,它會根據(jù)信道的情況自動選擇和設(shè)定路由,以最佳路徑,按前后順序發(fā)送信號的設(shè)備。

    2024年02月08日
    瀏覽(25)
  • 【Linux】網(wǎng)絡(luò)基礎(chǔ)+UDP網(wǎng)絡(luò)套接字編程

    【Linux】網(wǎng)絡(luò)基礎(chǔ)+UDP網(wǎng)絡(luò)套接字編程

    只做自己喜歡做的事情,不被社會和時代裹挾著前進(jìn),是一件很奢侈的事。 1. 首先計算機(jī)是人類設(shè)計出來提高生產(chǎn)力的工具,而人類的文明綿延至今一定離不開人類之間互相的協(xié)作,既然人類需要協(xié)作以完成更為復(fù)雜的工作和難題,所以計算機(jī)作為人類的工具自然也一定需要

    2024年02月08日
    瀏覽(89)
  • C++Linux網(wǎng)絡(luò)編程基礎(chǔ)

    當(dāng)動態(tài)庫和靜態(tài)庫同時存在的時候,會優(yōu)先使用動態(tài)庫 。 靜態(tài)庫 1. 制作靜態(tài)庫 -c表示只編譯,-o則是說明需要指定文件名 2. 使用靜態(tài)庫 3. 庫文件的概念 程序在編譯時,會將庫文件的二進(jìn)制代碼鏈接到目標(biāo)程序中,這種方式稱為 靜態(tài)編譯 。 如果多個程序中用到了同一個靜

    2024年01月20日
    瀏覽(50)
  • C語言網(wǎng)絡(luò)編程基礎(chǔ)(linux)

    C語言網(wǎng)絡(luò)編程基礎(chǔ)(linux)

    在linux操作系統(tǒng)下,有萬物皆文件的概念,當(dāng)一個進(jìn)程想要打開/創(chuàng)建一個文件時,內(nèi)核會給進(jìn)程返回一個文件描述符,文件描述符是一個非負(fù)數(shù),常用int類型表示,起到索引的作用,是為了高效管理進(jìn)程打開/創(chuàng)建的文件的,指向的是被打開的文件。所有I/O的系統(tǒng)操作也都是通

    2024年02月07日
    瀏覽(22)
  • 《3.linux應(yīng)用編程和網(wǎng)絡(luò)編程-第8部分-3.8.網(wǎng)絡(luò)基礎(chǔ)》 3.8.1.網(wǎng)絡(luò)通信概述 3.8.3.網(wǎng)絡(luò)通信基礎(chǔ)知識2

    《3.linux應(yīng)用編程和網(wǎng)絡(luò)編程-第8部分-3.8.網(wǎng)絡(luò)基礎(chǔ)》 3.8.1.網(wǎng)絡(luò)通信概述 3.8.3.網(wǎng)絡(luò)通信基礎(chǔ)知識2

    ????進(jìn)程間通信: 管道 、 信號量、 共享內(nèi)存, 技術(shù)多,操作麻煩 ? ??線程就是解決 進(jìn)程間 通信 麻煩的事情,這是線程的 優(yōu)勢 3.8.1.網(wǎng)絡(luò)通信概述 3.8.1.1、從進(jìn)程間通信說起: 網(wǎng)絡(luò)域套接字socket , 網(wǎng)絡(luò)通信其實就是位于網(wǎng)絡(luò)中不同主機(jī)上面? ? ? ? ? ? ? ? ? ?的?

    2024年02月15日
    瀏覽(27)
  • 【Java基礎(chǔ)教程】(四十七)網(wǎng)絡(luò)編程篇:網(wǎng)絡(luò)通訊概念,TCP、UDP協(xié)議,Socket與ServerSocket類使用實踐與應(yīng)用場景~

    【Java基礎(chǔ)教程】(四十七)網(wǎng)絡(luò)編程篇:網(wǎng)絡(luò)通訊概念,TCP、UDP協(xié)議,Socket與ServerSocket類使用實踐與應(yīng)用場景~

    了解多線程與網(wǎng)絡(luò)編程的操作關(guān)系; 了解網(wǎng)絡(luò)程序開發(fā)的主要模式; 了解 TCP 程序的基本實現(xiàn); 在Java中,網(wǎng)絡(luò)編程的核心意義是實現(xiàn)不同電腦主機(jī)之間的數(shù)據(jù)交互。Java采用了一種簡化的概念,將這個過程進(jìn)一步抽象為JVM(Java虛擬機(jī))進(jìn)程之間的通信??梢栽谕慌_電腦上

    2024年02月15日
    瀏覽(98)
  • Linux高性能服務(wù)器編程 學(xué)習(xí)筆記 第五章 Linux網(wǎng)絡(luò)編程基礎(chǔ)API

    Linux高性能服務(wù)器編程 學(xué)習(xí)筆記 第五章 Linux網(wǎng)絡(luò)編程基礎(chǔ)API

    我們將從以下3方面討論Linux網(wǎng)絡(luò)API: 1.socket地址API。socket最開始的含義是一個IP地址和端口對(ip,port),它唯一表示了使用TCP通信的一端,本書稱其為socket地址。 2.socket基礎(chǔ)API。socket的主要API都定義在sys/socket.h頭文件中,包括創(chuàng)建socket、命名socket、監(jiān)聽socket、接受連接、發(fā)

    2024年02月07日
    瀏覽(41)
  • 多人聊天室(帶私聊功能)Linux網(wǎng)絡(luò)編程基礎(chǔ)

    多人聊天室(帶私聊功能)Linux網(wǎng)絡(luò)編程基礎(chǔ)

    在和同學(xué)一起努力下終于完成了期末作業(yè)哈哈哈哈 文章目錄 目錄 前言 一、需求分析 二、功能設(shè)計 1.服務(wù)器端: 2.客戶端: 三、流程圖: 編程流程圖: 服務(wù)器流程圖: 客戶端流程圖: 四、運行效果: 項目源碼: 服務(wù)器源碼 客戶端源碼: 總結(jié): Linux網(wǎng)絡(luò)編程是我們這學(xué)

    2024年02月09日
    瀏覽(26)
  • Linux C++ 網(wǎng)絡(luò)編程基礎(chǔ)(2) : TCP多線程一個server對應(yīng)多個client

    作者:令狐掌門 技術(shù)交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ ??tcp編程時, 一個server可以對應(yīng)多個client, server端用多線程可以實現(xiàn). linux下多線程可以使用POSIX的線程函數(shù), 下面給出服務(wù)端和客戶端的代碼. ??Linux POSIX線程庫提供了一組函數(shù)來創(chuàng)建、管理和同步

    2024年02月13日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包