day04 五層模型之間的通訊過程及Linux的目錄相關內容

【OSI七層模型、TCP/IP五層模型---------協議概述(圖)】git

 

 

 

 

 

 

 

 

 

 

 

 

協議:每一層都是爲了完成一種功能。爲了實現這些功能,就須要你們都遵照共同的規則。正則表達式

越下面的層,越靠近硬件;越上面的層,越靠近用戶。windows

應用層協議有:服務器

SMTP:簡單郵件傳輸協議                             Telnet:遠程登陸協議 網絡

SNMP:簡單網絡管理協議                             FTP:文件傳輸協議socket

LPD:行式打印機守護進程                             TFTP:簡單文件傳輸協議spa

NFS:網絡文件系統協議                                 HTTP:  超文本傳輸協議 .net

五層之間的通訊過程:對象

物理層——物理層就是把電腦鏈接起來的物理手段(以用光纜、電纜、雙絞線、無線電波等方式),它主要規定了網絡的一些電氣特性,做用是負責傳送0和1的電信號。blog

數據連接層——單純的0和1沒有任何意義,必須規定解讀方式,數據連接層肯定了0和1的分組方式。

互聯網層——以太網在互聯網層中占主導地位,以太網規定,一組電信號構成一個數據包,叫作」幀」(Frame)。每一幀分紅兩個部分:標頭(Head)和數據(Data)。「標頭」包含數據包的一些說明項,好比發送者、接受者、數據類型等等;」數據」則是數據包的具體內容。以太網規定,連入網絡的全部設備,都必須具備」網卡」接口。數據包必須是從一塊網卡,傳送到另外一塊網卡。網卡的地址,就是數據包的發送地址和接收地址,這叫作MAC地址(且獨一無二)。有了MAC地址,就能夠定位網卡和數據包的路徑了。以太網採用了一種很」原始」的方式,它不是把數據包準確送到接收方,而是向本網絡內全部計算機發送,讓每臺計算機本身判斷,是否爲接收方。

    上圖中,1號計算機向2號計算機發送一個數據包,同一個子網絡的3號、4號、5號計算機都會收到這個包。它們讀取這個包的」標頭」,找到接收方的MAC地址,而後與自身的MAC地址相比較,若是二者相同,就接受這個包,作進一步處理,不然就丟棄這個包。這種發送方式就叫作」廣播」(broadcasting)。有了數據包的定義、網卡的MAC地址、廣播的發送方式,」連接層」就能夠在多臺計算機之間傳送數據了。

     可是,這樣缺點頗多,以太網以「廣播」的方式,導致全部成員人手一「包」,不只效率低,並且侷限在發送者所在的子網絡格里。所以,必須找到一種方法,可以區分哪些MAC地址是否屬於同一個子網絡。若是是同一個子網絡,就採用廣播方式發送,不然就採用」路由」方式發送。(」路由」的意思,就是指如何向不一樣的子網絡分發數據包。)遺憾的是,MAC地址自己沒法作到這一點。(它只與廠商有關,與所處網絡無關。)這時候誕生了「網絡層」,它的做用是經過網絡地址,使得咱們可以區分不一樣的計算機是否屬於同一個子網絡。(網絡地址簡稱地址)自此每臺計算機出現了兩種地址,一種是MAC地址【將數據包送到該子網絡中的目標網卡(後執行)】,一種是網絡地址【肯定計算機所在的子網絡(先執行)】。兩種地址之間沒有任何聯繫,MAC地址是綁定在網卡上的,網絡地址則是管理員分配的,它們只是隨機組合在一塊兒。

     IP協議:規定網絡地址的協議,叫作IP協議。它所定義的地址,就被稱爲IP地址。目前,普遍採用的是IP協議第四版,簡稱IPv4。這個版本規定,網絡地址由32個二進制位組成。

 

習慣上,咱們用分紅四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255。互聯網上的每一臺計算機,都會分配到一個IP地址。這個地址分紅兩個部分,前一部分表明網絡,後一部分表明主機。好比,IP地址172.16.254.1,這是一個32位(十進制與二進制的轉換)的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分一定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。

可是,問題在於單單從IP地址,咱們沒法判斷網絡部分。仍是以172.16.254.1爲例,它的網絡部分,究竟是前24位,仍是前16位,甚至前28位,從IP地址上是看不出來的。那麼,怎樣才能從IP地址,判斷兩臺計算機是否屬於同一個子網絡呢?

這就要用到另外一個參數」子網掩碼」【子網絡特徵的一個參數】(subnet mask)。它在形式上等同於IP地址,也是一個32位二進制數字,它的網絡部分所有爲1,主機部分所有爲0。好比,IP地址172.16.254.1,若是已知網絡部分是前24位,主機部分是後8位,那麼子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

知道」子網掩碼」,咱們就能判斷,任意兩個IP地址是否處在同一個子網絡。方法是將兩個IP地址與子網掩碼分別進行AND運算(兩個數位都爲1,運算結果爲1,不然爲0),而後比較結果是否相同,若是是的話,就代表它們在同一個子網絡中,不然就不是。好比,已知IP地址172.16.254.1和172.16.254.233的子網掩碼都是255.255.255.0,請問它們是否在同一個子網絡?二者與子網掩碼分別進行AND運算,結果都是172.16.254.0,所以它們在同一個子網絡。

總結一下,IP協議的做用主要有兩個,一個是爲每一臺計算機分配IP地址,另外一個是肯定哪些地址在同一個子網絡。

      IP數據包(分爲標頭數據):根據IP協議發送的數據,就叫作IP數據包(其中一定包括IP地址信息)。咱們把IP數據包直接放進以太網數據包的」數據」部分,所以徹底不用修改以太網的規格。這就是互聯網分層結構的好處:上層的變更徹底不涉及下層的結構

     「標頭」部分:主要包括版本、長度、IP地址等信息

     」數據」部分:則是IP數據包的具體內容

      ARP協議:由於IP數據包是放在以太網數據包裏發送的,因此咱們必須同時知道兩個地址,一個是對方的MAC地址,另外一個是對方的IP地址。一般狀況下,對方的IP地址是已知的,可是咱們不知道它的MAC地址。因此,咱們須要一種機制,可以從IP地址獲得MAC地址。這裏又能夠分紅兩種狀況:       

  • 若是兩臺主機不在同一個子網絡,沒有辦法獲得對方的MAC地址,只能把數據包傳送到兩個子網絡鏈接處的」網關」(gateway),讓網關去處理。
  • 若是兩臺主機在同一個子網絡,那麼咱們能夠用ARP協議,獲得對方的MAC地址。ARP協議也是發出一個數據包(包含在以太網數據包中),其中包含它所要查詢主機的IP地址,在對方的MAC地址這一欄,填的是FF:FF:FF:FF:FF:FF,表示這是一個」廣播」地址。它所在子網絡的每一臺主機,都會收到這個數據包,從中取出IP地址,與自身的IP地址進行比較。若是二者相同,都作出回覆,向對方報告本身的MAC地址,不然就丟棄這個包。              

       總之,有了ARP協議以後,咱們就能夠獲得同一個子網絡內的主機MAC地址,能夠把數據包發送到任意一臺主機之上了。                            

 

傳輸層——有了MAC地址和IP地址,咱們已經能夠在互聯網上任意兩臺主機上創建通訊。此時,咱們還須要一個參數,表示這個數據包到底供哪一個程序(進程)使用。(好比,你一邊瀏覽網頁,一邊與朋友在線聊天。當一個數據包從互聯網上發來的時候,你怎麼知道,它是表示網頁的內容,仍是表示在線聊天的內容?)這個參數就叫作」端口(port),它實際上是每個使用網卡的程序的編號。每一個數據包都發到主機的特定端口,因此不一樣的程序就能取到本身所須要的數據。

       端口:是0到65535之間的一個整數,正好16個二進制位。0到1023的端口被系統佔用,用戶只能選用大於1023的端口。不論是瀏覽網頁仍是在線聊天,應用程序會隨機選用一個端口,而後與服務器的相應端口聯繫。

       「傳輸層」的功能,就是創建」端口到端口」的通訊。相比之下,」網絡層」的功能是創建」主機到主機」的通訊。只要肯定主機和端口,咱們就能實現程序之間的交流。所以,Unix系統就把主機+端口,叫作」套接字」(socket)。有了它,就能夠進行網絡應用程序開發了。

       UDP協議:如今,咱們必須在數據包中加入端口信息,這就須要新的協議。最簡單的實現叫作UDP協議,它的格式幾乎就是在數據前面,加上端口號。UDP協議的優勢是比較簡單,容易實現,可是缺點是可靠性較差,一旦數據包發出,沒法知道對方是否收到。

     (不可靠)UDP數據包:由【」標頭」(主要定義了發出端口和接收端口)】和【」數據」(具體的內容)】兩部分組成。把整個UDP數據包放入IP數據包的」數據」部分。UDP數據包很是簡單,」標頭」部分一共只有8個字節,總長度不超過65,535字節,正好放進一個IP數據包。

     (可靠)TCP協議:爲改進UDP,TCP協議就誕生了。這個協議很是複雜,但能夠近似認爲,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。若是有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。所以,TCP協議可以確保數據不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。

        TCP數據包和UDP數據包同樣,都是內嵌在IP數據包的」數據」部分。TCP數據包沒有長度限制,理論上能夠無限長,可是爲了保證網絡的效率,一般TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包沒必要再分割。

應用層——做用是規定應用程序的數據格式(解讀各個程序信息,因此會事先規定)。(舉例來講,TCP協議能夠爲各類各樣的程序傳遞數據,好比Email、WWW、FTP等等。那麼,必須有不一樣協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了」應用層」。)

        這是最高的一層,直接面對用戶。它的數據就放在TCP數據包的」數據」部分。所以,如今的以太網的數據包就變成下面這樣。

       發送這個包,須要知道兩個地址:對方的MAC地址和IP地址

       有了這兩個地址,數據包才能準確送到接收者手中。可是,前面說過,MAC地址有侷限性,若是兩臺電腦不在同一個子網絡,就沒法知道對方的MAC地址,必須經過網關(gateway)轉發。

 

       上圖中,1號電腦要向4號電腦發送一個數據包。它先判斷4號電腦是否在同一個子網絡,結果發現不是(後文介紹判斷方法),因而就把這個數據包發到網關A。網關A經過路由協議,發現4號電腦位於子網絡B,又把數據包發給網關B,網關B再轉發到4號電腦。

       1號電腦把數據包發到網關A,必須知道網關A的MAC地址。因此,數據包的目標地址,實際上分紅兩種狀況:

       發送數據包以前,電腦必須判斷對方是否在同一個子網絡,而後選擇相應的MAC地址。

       這時候咱們就須要擁有上網功能,須要記住的就是一點:不論是」靜態IP地址」仍是」動態IP地址」,電腦上網的首要步驟,是肯定四個參數。

       *本機的IP地址

       *子網掩碼

       *網關的IP地址

       *DNS的IP地址

https://blog.csdn.net/qq_20363225/article/details/79698084

 


 

Linux的目錄結構

一、Windows下的目錄結構(windows分區)

Linux分區

讀取boot分區方式cd/boot


 

二、Linux(Ubuntu)的目錄結構

              樹狀結構;一切文件從根開始;

              關於磁盤分區與掛在的命令(/etc/fstab--開機自動掛載)

                             df-h     查看磁盤掛載狀況

                            【dd if=/dev/zero of=/root/image bs=1024k count=100 //建立環回設備(虛擬磁盤)】

                             fdisk 【磁盤文件】 --作磁盤分區;

                                         sd--scsi類型的磁盤(hd IDE)

                                         a--第一塊磁盤(b,c。。。)

                                         1--第一個分區(2,3,4...)

                             mkfs--格式化(建立文件系統)

                            mount--磁盤掛載

                            umount--將磁盤卸載下來

Linux的磁盤管理

              fdisk--分區(就是劃分邏輯邊界)寫入文件系統;

              mkfs-t//指定文件系統格式;

              mount要掛載的設備 掛載點【存儲設備在Linux系統上必須掛載)

              umount 要掛載的設備/掛載點

三、Linux的主要目錄

               /

                            /bin--存放命令文件

                            /boot--存放系統啓動文件(內核、grub程序)

                            /cdrom--光盤目錄

                            /dev--存放設備文件 (c字符設備、d塊設備)

                            /etc--大部分的系統配置文件

                            /home--普通用戶的家目錄

                            /lib  /lib64--庫文件(.so結尾的文件)

                            /lost+found--非正常關機下的碎片文件(空磁盤掛載上來,默認就會 有這個目錄)

                            /mnt /media--專門提供掛載的掛載點

                            /opt--第三方軟件的安裝目錄

                            /proc /sys--進程、系統目錄(默認是空的,只有啓動後纔會存放對應進程和系統文件)

                            /root--root用戶的家目錄

                            /sbin--存放命令的目錄

                            /tmp--臨時文件存放目錄 

                            /usr--常見軟件安裝目錄

                            /var--文件會隨時更改的目錄


目錄的常見命令

一、查看目錄內容

                 終端使用技巧;

                                   自動補全

                 ls  查看文件內容;

二、搜索使用過的命令

                 Ls

                 文件通配符:

                                    * -- 任意長度的任意字符

                                    ?-- 任意一個字符

                                    [] -- 取值範圍(只取範圍中的一個字符)

                                                 sd[abc] -- sda  sdb   sdc

                                                 [a-f] -- sd[a-f]   sda   sdb...sdf

                                    ^ -- 託字符,指定以某個字符開頭

                                    $ -- 以什麼字符結尾

                  grep命令  -- 行過濾

                                    grep[選項][匹配的字符][對象]

                                    查看文件中的匹配,過濾某一行:

                                    -v  反選

                                    -i  忽略大小寫

                                    ^$  空白行

正則表達式 一、字符串匹配。[] [^] [:digit] [:alpha:]...二、次數匹配 * ? \{m\} \{m,n\} \{0,n\} \{m,\} 三、位置錨定 ^ $ \b <\ \b /> 四、分組\(ab\)*  abababab        ab*   abbbbb

二、切換目錄

                  CD

                  常見特殊目錄:

                                .

                                ..

                                ~  

                                -

                  絕對路徑

                               從根開始,寫全

                  相對的路徑

                               相對當前路徑而言,你所要處理的目錄;     

相關文章
相關標籤/搜索