Linux學習第十五節課-網絡基本概念和TCP、UDP協議

                                                            Linux學習第十五節課

------------------------------------------------------------------------------------------------------------------------------------------

衝突域:如果幾臺設備同時向一臺設備發送數據產生衝突,則這幾臺設備處於一個衝突域中,反之不在一個衝突域

總線拓撲:總線不能斷

image.png

星型拓撲:中間交換機不可以故障

image.png

擴展星型拓撲

image.png

環形拓撲

image.png

雙環拓撲

image.png

全網狀拓撲

image.png

部分網狀拓撲

image.png

瞭解主機到主機通信

    舊模型

    專有產品


由一個廠商控制應用程序和嵌入的軟件

    基於標準的模型

    多廠商軟件

    分層方法


網絡模型

OSI:開放系統互聯

ISO:國際標準化組織

邏輯尋址:人爲指定ip地址以便於管理

image.png

下層只爲相鄰的上層提供服務

  

物理層:二進制傳輸

        爲啓動、維護以及關閉物理鏈路定義了電器規範、機械規範、過程規範和功能規範,數據格式爲0101……

數據鏈路層:訪問介質

        定義如何格式化數據以便進行傳輸以及如何控制對網絡的訪問,數據格式爲幀;

        支持錯誤檢測;

        MAC地址在數據鏈路層定義

網絡層:數據傳輸

        路由數據包;

        選擇傳遞數據的最佳路徑;

        支持邏輯尋址和路徑選擇

傳輸層:傳輸問題

        確保數據傳輸的可靠性;建立、維護和終止虛擬電路;通過錯誤檢測和恢復;

        信息流控制來保障可靠性

會話層:主機間通信

        建立、管理和終止應用之間的會話

表示層:數據表示

        確保接受系統可以讀出該數據;

        格式化數據;

        構建數據;

        協商用於應用層的數據傳輸語法;

        提供加密

應用層:網絡進程訪問應用層

        爲應用程序進程(例如電子郵件、文件傳輸和終端仿真)提供網絡服務;

        提供用戶身份驗證


    數據封裝:按照七層模型從上到下的順序對數據進行處理,在自己的設備上完成數據封裝

image.png 

數據解封

image.png

FCS:校驗位


對等通信

image.png


PDU

  PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位

  物理層的PDU是數據位bit

  數據鏈路層的PDU是數據幀frame

  網絡層的PDU是數據包packet

  傳輸層的PDU是數據段segment

  其他更高層次的PDU是消息message


三種通訊模式

單播:數據報文地址內的發送目標爲1臺設備

廣播:數據發送目標爲一定範圍內所有設備,廣播越多,對網絡干擾越大

組播(多播):數據發送目標爲多組設備


單工:目標主機和本主機之間通訊爲單向,有去無回,比如電視

半雙工:目標主機和本主機之間通訊爲雙向的,數據傳輸爲輪流傳輸,比如對講機

全雙工:目標主機和本主機之間通訊爲雙向的,數據傳輸爲同時傳輸,比如視頻聊天


局域網:Local Area Network

基於廣播機制通訊


廣域網

基於點對點機制通訊

網線:UTP非屏蔽式雙絞線

          STP屏蔽式雙絞線,加一層金屬保護,增強抗干擾


T568A線序:綠白、綠、橙白、藍、藍白、橙、棕白、棕

T568B線序:橙白、橙、綠白、藍、藍白、綠、棕白、棕


百兆以內用到4根線:1、2、3、6,12發,36接

千兆以內用到全部線

兩邊線序一樣稱作UTP直通線

T568A和T568B互爲UTP交叉線


因爲現在硬件設備可以自動識別T568A和T568B,因此普遍使用T568B線

雙絞線傳輸最遠距離爲100米


GBIC:千兆電信號轉換爲光信號的接口器件


以太網:是數據鏈路層的協議之一(協議裏有PPPOE、以太網、高級鏈路控制協議、幀中繼、異步傳輸模式),屬於局域網協議,它既定義了雙絞線的標準,又定義了數據幀的格式

幀:frame

幀的結構 : 前導信息 目標地址 源地址    類型    數據     校驗位

位           :      8             6          6           2    46-1500     4

類型是上層類型編號,用來讓計算機識別位於哪一層

數據包括從網絡層、傳輸層、會話層、表現層、app、data的數據

衝突檢測的載波偵聽多路訪問CSMA/CD

早期以太網協議中設備低於1024臺,否則衝突過多


Hub:多端口中繼器,工作在物理層

Hub並不記憶該信息包是由哪個MAC地址發出,哪個MAC地址在Hub的哪個端口

Hub的特點:共享帶寬、半雙工

Hub性能差、不安全


ISO七層網絡模型,但實際工作中沒有應用到這麼多,目前使用的是TCP/IP協議

以太網橋:計算機通過Hub連接到以太網橋,可以記錄計算機在哪個域,從而在以後的使用中將數據不走其它線路而直接送達目標計算機

交換機:直接連接計算機,每個接口都是一個獨立的衝突域,全雙工機制,大大提升了速率,可以隔斷衝突域,但不能隔斷廣播域

交換機工作在數據鏈路層

以太網橋:計算機通過Hub連接到以太網橋,可以記錄計算機在哪個域,從而在以後的使用中將數據不走其它線路而直接送達目標計算機

交換機:直接連接計算機,每個接口都是一個獨立的衝突域,全雙工機制,大大提升了速率,可以隔斷衝突域,但不能隔斷廣播域

交換機工作在數據鏈路層


減少衝突域內或者廣播域內計算機可以提升網絡性能

交換機可以隔斷衝突域

路由器可以隔斷廣播域

路由表不是路由器專有的,PC也有,設備依靠路由表尋找數據的轉發路徑


路由器:分隔廣播域

             選擇路由表中到達目標最好的路徑

             維護和檢查路由信息

             連接廣域網


網卡工作在數據鏈路層

ACL:訪問控制列表


路由器:路由器工作在網絡層


路由表:route table,路由表組成

網絡地址:分析目標地址

接口:數據有可能從路由器的哪個出口出來,哪個就是接口

網關:目標網絡與發數據的設備不在一個網段內,下一個路由器鄰近主配置路由器的接口ip就是網關,線路和路由器連接的口網關不用配置

metric:可以理解爲躍點數,該值越小,路由選擇此路徑優先級越高



VLAN:虛擬局域網,可以看作是廣播域,是一種邏輯網絡

特點:分隔廣播域、安全、靈活管理

trunk:公共幹道接口,不屬於某個單獨的vlan,多個vlan數據都會使用該接口

802.1Q:trunk上加vlan標籤的協議,使得數據可以跨vlan傳輸


分層的網絡架構

核心層:Core Layer,快速轉發數據

分佈層:Distribution Layer,用路由器隔開,設置訪問權限

訪問層:AccessLayer,先將設備連入網絡,匯入分佈層


STP:生成樹協議,解決交換機迴環問題,是一種動態算法


TCP/IP協議

Transmission Control Protocol / Internet Protocol

傳輸控制協議 / 因特網互聯網協議

1983年取代了舊的網絡控制協議NCP

定義了四層

 

應用層協議

File transfer

     –FTP

     –TFTP

     –Network File System

E-mail

     –Simple Mail Transfer Protocol

Remote login

     –Telnet

     –rlogin

Network management

     –Simple Network Management Protocol

Name management

     –Domain Name System


傳輸層兩大協議:UDP和TCP


 可靠性
傳輸效率
      連接類型
面向連接
非面向連接
          協議TCPUDP
按序號先後接收數據YesNo

        

          用途

郵件

文件共享

下載

音頻

視頻

          

TCP特性

  工作在傳輸層

  面向連接協議:確認對方與自己有穩定的網絡狀態

  全雙工協議:可以同時傳輸數據

  半關閉:單方面關閉數據連接

  錯誤檢查

  將數據打包成段,排序

  確認機制

  數據恢復,重傳

  流量控制,滑動窗口

  擁塞控制,慢啓動和擁塞避免算法


傳輸層報文頭部結構

TCP包頭

image.png

源端口號從0-65535,即216個端口號

序號:靠序號實現數據包可靠傳輸

確認號:期望對方下次發送數據包的編號,用小寫ack表示

序號和確認號結合起來可以實現數據的安全通信

數據偏移:說明報文有多長

標記位:佔6位,其中含義有

URG:表示本報文段中發送的數據是否包含緊急數據。後面的緊急指針字段(urgent pointer)只有當URG=1時纔有效

ACK:確認位,表示是否前面確認號字段是否有效。只有當ACK=1時,前面的確認號字段纔有效。TCP規定,連接建立後,ACK必須爲1,帶ACK標誌的TCP報文段稱爲確認報文段,例如ACK12表示本設備希望對方下次發送第12號數據包

PSH:提示接收端應用程序應該立即從TCP接收緩衝區中讀走數據,爲接收後續數據騰出空間。如果爲1,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩衝區中

RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,然後再重新建立連接。或者說明上次發送給主機的數據有問題,主機拒絕響應,帶RST標誌的TCP報文段稱爲復位報文段

SYN:同步位,在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,同步位說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置爲1,帶SYN標誌的TCP報文段稱爲同步報文段

FIN:分手位,表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已經發送完畢,你可以釋放連接了”,帶FIN標誌的TCP報文段稱爲結束報文段 


窗口:表示發送設備發多少個包接收設備會確認1次,協商雙方能接收多少數據


TCP三次握手

 image.png

前三步確定穩定的網絡狀態,之後可以正常通訊

圖中seq表明設備自身的該文件編號


TCP四次揮手

 image.png


11種有限狀態機

      CLOSED 沒有任何連接狀態

      LISTEN 偵聽狀態,等待來自遠方TCP端口的連接請求

      SYN-SENT 在發送連接請求後,等待對方確認

      SYN-RECEIVED 在收到和發送一個連接請求後,等待對方確認

      ESTABLISHED 代表傳輸連接建立,雙方進入數據傳送狀態

      FIN-WAIT-1 主動關閉,主機已發送關閉連接請求,等待對方確認

      FIN-WAIT-2 主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求

      TIME-WAIT 完成雙向傳輸連接關閉,等待所有分組消失

      CLOSE-WAIT 被動關閉,收到對方發來的關閉連接請求,並已確認

      LAST-ACK 被動關閉,等待最後一個關閉傳輸連接確認,並等待所有分組消失

      CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認


孤兒連接: 客戶端執行半關閉後,未等服務器關閉連接就強行退出了,此時客戶端連接由內核來接管


DOS×××:拒絕服務×××,僞造大量ip,對服務器進行訪問,使得服務器的迴應長時間無響應,佔據大量訪問數,從而使得正常用戶無法正常訪問


協議端口

FTP 用TCP21端口

Tlenet用TCP23端口

Http用TCP80端口

DNS用TCP 53和UDP53端口

TFTP用UDP69端口

SNMP用UDP161端口


傳輸層通過port號,確定應用層協議

Port number:

tcp:傳輸控制協議,面向連接的協議;通信前需要建立虛擬鏈路;結束後拆除鏈路

         0-65535

udp:User Datagram Protocol,無連接的協議

          0-65535

IANA:互聯網數字分配機構(負責域名,數字資源,協議分配)

         0-1023:系統端口或特權端口(僅管理員可用) ,衆所周知,永久的分配給固定的系統應用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

         1024-49151:用戶端口或註冊端口,但要求並不嚴格,分配給程序註冊爲某應用使用,1433/tcp(SqlServer), 1521/tcp(oracle), 3306/tcp(mysql), 11211/tcp/udp(memcached)

         49152-65535:動態端口或私有端口,客戶端程序隨機使用的端口,其範圍的定義:/proc/sys/net/ipv4/ip_local_port_range


TCP超時重傳      

異常網絡狀況下(開始出現超時或丟包),TCP控制數據傳輸以保證其承諾的可靠服務

TCP服務必須能夠重傳超時時間內未收到確認的TCP報文段。爲此,TCP模塊爲每個TCP報文段都維護一個重傳定時器,該定時器在TCP報文段第一次被髮送時啓動。如果超時時間內未收 到接收方的應答,TCP模塊將重傳TCP報文段並重置定時器。至於下次重傳的超時時間如何選擇,以及最多執行多少次重傳,就是TCP的重傳策略

      

與TCP超時重傳相關的兩個內核參數:

      /proc/sys/net/ipv4/tcp_retries1,指定在底層IP接管之前TCP最少執行的重傳次數,默認值是3

      /proc/sys/net/ipv4/tcp_retries2,指定連接放棄前TCP最多可以執行的重傳次數,默認值15(一般對應13~30min)


擁塞控制

網絡中的帶寬、交換結點中的緩存和處理機等,都是網絡的資源。在某段時間,若對網絡中某一資源的需求超過了該資源所能提供的可承受的能力,網絡的性能就會變壞。這種情況就叫做擁塞

TCP爲提高網絡利用率,降低丟包率,並保證網絡資源對每條數據流的公平性。即所謂的擁塞控制

TCP擁塞控制的標準文檔是RFC 5681,其中詳細介紹了擁塞控制的四個部分:慢啓動(slow start)、擁塞避免(congestion avoidance)、快速重傳(fast retransmit)和快速恢復(fast recovery)。擁塞控制算法在Linux下有多種實現,比如reno算法、vegas算法和cubic算法等。它們或者部分或者全部實現了上述四個部分

當前所使用的擁塞控制算法,/proc/sys/net/ipv4/tcp_congestion_control


UDP特性

工作在傳輸層

提供不可靠的網絡訪問

非面向連接協議

有限的錯誤檢查

傳輸性能高

無數據恢復特性


UDP包頭

image.png

16位源端口號

16位目標端口號

16位UDP長度

16位UDP校驗碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章