基礎夯實:計算機網絡基礎 基礎夯實:基礎數據結構與算法(一) 基礎夯實:基礎數據結構與算法(二)

我們之前介紹了 基礎數據結構和算法,接下來我們介紹 計算機網絡 基礎知識。

基礎數據結構和算法回顧如下:

  1. 基礎夯實:基礎數據結構與算法(一)
  2. 基礎夯實:基礎數據結構與算法(二)

不怎麼清楚的可以去瞅瞅。

計算機網絡

計算機網絡是指將地理位置不同的具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,

網絡操作系統網絡管理軟件網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。 

計算機網絡的分類

按照計算機網絡的地理覆蓋範圍,可分爲局域網、城域網和廣域網。

按照網絡構成的拓撲結構,可分爲總線型、星型、環型和樹型等。

按照網絡服務的提供方式,可分爲對等網絡、服務器網絡。

按照介質訪問協議,可分爲以太網、令牌環網、令牌總線網。

分類標準還有很多,我們大體瞭解一下就行。

網絡層次劃分

爲了使不同計算機廠家生產的計算機能夠相互通信,以便在更大的範圍內建立計算機網絡,

國際標準化組織(ISO)在1978年提出了"開放系統互聯參考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model)。

它將計算機網絡體系結構的通信協議劃分爲七層,自下而上依次爲:

  1. 物理層(Physics Layer)
  2. 數據鏈路層(Data Link Layer)
  3. 網絡層(Network Layer)
  4. 傳輸層(Transport Layer)
  5. 會話層(Session Layer)
  6. 表示層(Presentation Layer)
  7. 用層(Application Layer)

其中第4層完成數據傳送服務,上面3層面向用戶。

除了標準的OSI七層模型以外,常見的網絡層次劃分還有TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係如下圖所示:

 

OSI七層網絡模型

TCP/IP協議毫無疑問是互聯網的基礎協議,沒有它就根本不可能上網,任何和互聯網有關的操作都離不開TCP/IP協議。

不管是OSI七層模型還是TCP/IP的四層、五層模型,每一層中都要自己的專屬協議,完成自己相應的工作以及與上下層級之間進行溝通。

由於OSI七層模型爲網絡的標準層次劃分,所以我們以OSI七層模型爲例從下向上進行一一介紹。

1、物理層

激活、維持、關閉通信端點之間的機械特性、電氣特性、功能特性以及過程特性。

該層爲上層協議提供了一個傳輸數據的可靠的物理媒體。

簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。

物理層記住兩個重要的設備名稱,中繼器(Repeater,也叫放大器)和集線器。

2、數據鏈路層

數據鏈路層在物理層提供的服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。

爲達到這一目的,數據鏈路必須具備一系列相應的功能,

主要有:

  • 如何將數據組合成數據塊,在數據鏈路層中稱這種數據塊爲幀(frame),幀是數據鏈路層的傳送單位;
  • 如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使與接收方相匹配;
  • 以及在兩個網絡實體之間提供數據鏈路通路的建立、維持和釋放的管理。

數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。

有關數據鏈路層的重要知識點:

  1. 數據鏈路層爲網絡層提供可靠的數據傳輸;
  2. 基本數據單位爲幀;
  3. 主要的協議:以太網協議;
  4. 兩個重要設備名稱:網橋和交換機。

 

3、網絡層

網絡層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等。

它提供的服務使傳輸層不需要了解網絡中的數據傳輸和交換技術。如果您想用盡量少的詞來記住網絡層,那就是"路徑選擇、路由及邏輯尋址"。

網絡層中涉及衆多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議。

IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。

與IP協議配套使用實現其功能的還有地址解析協議ARP、逆地址解析協議RARP、因特網報文協議ICMP、因特網組管理協議IGMP

有關網絡層的重點爲:

  • 網絡層負責對子網間的數據包進行路由選擇。此外,網絡層還可以實現擁塞控制、網際互連等功能;
  • 基本數據單位爲IP數據報;
  • 各種協議;
  • 重要的設備:路由器。
  • 包含的主要協議有:
    • IP協議(Internet Protocol,因特網互聯協議);
    • ICMP協議(Internet Control Message Protocol,因特網控制報文協議);
    • ARP協議(Address Resolution Protocol,地址解析協議);
    • RARP協議(Reverse Address Resolution Protocol,逆地址解析協議)。

 

4、傳輸層

第一個端到端,即主機到主機的層次。

傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。

此外,傳輸層還要處理端到端的差錯控制和流量控制問題。

傳輸層的任務是根據通信子網的特性,最佳的利用網絡資源,爲兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。

在這一層,信息傳送的協議數據單元稱爲段或報文。

網絡層只是根據網絡地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的端口。

有關網絡層的重點:

  1. 傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
  2. 包含的主要協議:
    • TCP協議(Transmission Control Protocol,傳輸控制協議)
    • UDP協議(User Datagram Protocol,用戶數據報協議)
  3. 重要設備:網關。

5、會話層

會話層管理主機之間的會話進程,即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。

6、表示層

表示層對上層數據或信息進行變換以保證一個主機應用層信息可以被另一個主機的應用程序理解。

表示層的數據轉換包括數據的加密、壓縮、格式轉換等。

7、應用層

爲操作系統或網絡應用程序提供訪問網絡服務的接口。

會話層、表示層和應用層重點:

  1. 數據傳輸基本單位爲報文;
  2. 包含的主要協議:
    • FTP(文件傳送協議)
    • Telnet(遠程登錄協議)
    • DNS(域名解析協議)
    • SMTP(郵件傳送協議)
    • POP3協議(郵局協議)
    • HTTP協議(Hyper Text Transfer Protocol)

IP地址

1、網絡地址

IP地址由網絡號(包括子網號)和主機號組成,網絡地址的主機號爲全0,網絡地址代表着整個網絡。

2、廣播地址

廣播地址通常稱爲直接廣播地址,是爲了區分受限廣播地址。

廣播地址與網絡地址的主機號正好相反,廣播地址中,主機號爲全1。

當向某個網絡的廣播地址發送消息時,該網絡內的所有主機都能收到該廣播消息。

3、細播地址

D類地址就是組播地址。

先回憶下A,B,C,D類地址吧:

A類地址以0開頭,第一個字節作爲網絡號,地址範圍爲:0.0.0.0~127.255.255.255;(modified @2016.05.31)

B類地址以10開頭,前兩個字節作爲網絡號,地址範圍是:128.0.0.0~191.255.255.255;

C類地址以110開頭,前三個字節作爲網絡號,地址範圍是:192.0.0.0~223.255.255.255。

D類地址以1110開頭,地址範圍是224.0.0.0~239.255.255.255,D類地址作爲組播地址(一對多的通信);

E類地址以1111開頭,地址範圍是240.0.0.0~255.255.255.255,E類地址爲保留地址,供以後使用。

 

注:只有A,B,C有網絡號和主機號之分,D類地址和E類地址沒有劃分網絡號和主機號。

4、255.255.255.255

該IP地址指的是受限的廣播地址。

受限廣播地址與一般廣播地址(直接廣播地址)的區別在於,受限廣播地址只能用於本地網絡,路由器不會轉發以受限廣播地址爲目的地址的分組;

一般廣播地址既可在本地廣播,也可跨網段廣播。

例如:主機192.168.1.1/30上的直接廣播數據包後,另外一個網段192.168.1.5/30也能收到該數據報;若發送受限廣播數據報,則不能收到。

注:一般的廣播地址(直接廣播地址)能夠通過某些路由器(當然不是所有的路由器),而受限的廣播地址不能通過路由器。

5、0.0.0.0

常用於尋找自己的IP地址。

例如在我們的RARP,BOOTP和DHCP協議中,若某個未知IP地址的無盤機想要知道自己的IP地址,

它就以255.255.255.255爲目的地址,向本地範圍(具體而言是被各個路由器屏蔽的範圍內)的服務器發送IP請求分組。

6、迴環地址(127.0.0.1)

127.0.0.0/8被用作迴環地址,迴環地址表示本機的地址,常用於對本機的測試,用的最多的是127.0.0.1。

7、A、B、C三類私有地址

私有地址(private address)也叫專用地址,它們不會在全球使用,只具有本地意義。

A類私有地址:10.0.0.0/8,範圍是:10.0.0.0~10.255.255.255

B類私有地址:172.16.0.0/12,範圍是:172.16.0.0~172.31.255.255

C類私有地址:192.168.0.0/16,範圍是:192.168.0.0~192.168.255.255

子網掩碼

隨着互連網應用的不斷擴大,原先的IPv4的弊端也逐漸暴露出來,即網絡號佔位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,

目前除了使用NAT在企業內部利用保留地址自行分配以外,通常都對一個高類別的IP地址進行再劃分,以形成多個子網,提供給不同規模的用戶羣使用。

這裏主要是爲了在網絡分段情況下有效地利用IP地址,通過對主機號的高位部分取作爲子網號,從通常的網絡位界限中擴展或壓縮子網掩碼,用來創建某類地址的更多子網。

但創建更多的子網時,在每個子網上的可用主機地址數目會比原先減少。

什麼是子網掩碼

子網掩碼是標誌兩個IP地址是否同屬於一個子網的,也是32位二進制地址,其每一個爲1代表該位是網絡位,爲0代表主機位。

它和IP地址一樣也是使用點式十進制來表示的。如果兩個IP地址在子網掩碼的按位與的計算下所得結果相同,即表明它們共屬於同一子網中。

 

在計算子網掩碼時,我們要注意IP地址中的保留地址,即" 0"地址和廣播地址,它們是指主機地址或網絡地址全爲" 0"或" 1"時的IP地址,它們代表着本網絡地址和廣播地址,一般是不能被計算在內的。

子網掩碼的計算

對於無須再劃分成子網的IP地址來說,其子網掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址爲 10.12.3.0,無須再分割子網,則該IP地址的子網掩碼255.255.0.0。

如果它是一個C類地址,則其子網掩碼爲 255.255.255.0。

其它類推,不再詳述。

在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。

1) 將子網數目轉化爲二進制來表示;

  如欲將B類IP地址168.195.0.0劃分成27個子網:27=11011;

2) 取得該二進制的位數,爲N;

  該二進制爲五位數,N = 5

3) 取得該IP地址的類子網掩碼,將其主機地址部分的的前N位置1即得出該IP地址劃分子網的子網掩碼。

  將B類地址的子網掩碼255.255.0.0的主機地址前5位置 1,得到 255.255.248.0

HTTP協議

 超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最爲廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標準。

 HTTP 協議包括哪些請求?

  • GET:請求讀取由URL所標誌的信息。
  • POST:給服務器添加信息(如註釋)。
  • PUT:在給定的URL下存儲一個文檔。
  • DELETE:刪除給定的URL所標誌的資源。

HTTP中, POST  GET 的區別

  • Get是從服務器上獲取數據,Post是向服務器傳送數據。
  • Get是把參數數據隊列加到提交表單的Action屬性所指向的URL中,值和表單內各個字段一一對應,在URL中可以看到。
  • Get傳送的數據量小,不能大於2KB;Post傳送的數據量較大,一般被默認爲不受限制。
  • 根據HTTP規範,GET用於信息獲取,而且應該是安全的和冪等的。
    • 所謂 安全的 意味着該操作用於獲取信息而非修改信息。換句話說,GET請求一般不應產生副作用。就是說,它僅僅是獲取資源信息,就像數據庫查詢一樣,不會修改,增加數據,不會影響資源的狀態。
    • 冪等 的意味着對同一URL的多個請求應該返回同樣的結果。

HTTP請求頁面

  • 有了 HTTP 服務器的 IP 地址之後,主機就能夠生成 TCP 套接字,該套接字將用於向 Web 服務器發送 HTTP GET 報文。

  • 在生成 TCP 套接字之前,必須先與 HTTP 服務器進行三次握手來建立連接。生成一個具有目的端口 80 的 TCP SYN 報文段,並向 HTTP 服務器發送該報文段。

  • HTTP 服務器收到該報文段之後,生成 TCP SYN ACK 報文段,發回給主機。

  • 連接建立之後,瀏覽器生成 HTTP GET 報文,並交付給 HTTP 服務器。

  • HTTP 服務器從 TCP 套接字讀取 HTTP GET 報文,生成一個 HTTP 響應報文,將 Web 頁面內容放入報文主體中,發回給主機。

  • 瀏覽器收到 HTTP 響應報文後,抽取出 Web 頁面內容,之後進行渲染,顯示 Web 頁面。

DNS協議

DNS是域名系統(DomainNameSystem)的縮寫,該系統用於命名組織到域層次結構中的計算機和網絡服務,

可以簡單地理解爲將URL轉換爲IP地址

域名是由圓點分開一串單詞或縮寫組成的,每一個域名都對應一個唯一的IP地址,

在Internet上域名與IP地址之間是一一對應的,DNS就是進行域名解析的服務器。

DNS命名用於Internet等TCP/IP網絡中,通過用戶友好的名稱查找計算機和服務。

 

 DNS 的解析過程:

  • 網關路由器接收到包含 DNS 查詢報文的以太網幀後,抽取出 IP 數據報,並根據轉發表決定該 IP 數據報應該轉發的路由器。

  • 因爲路由器具有內部網關協議(RIP、OSPF)和外部網關協議(BGP)這兩種路由選擇協議,因此路由表中已經配置了網關路由器到達 DNS 服務器的路由表項。

  • 到達 DNS 服務器之後,DNS 服務器抽取出 DNS 查詢報文,並在 DNS 數據庫中查找待解析的域名。

  • 找到 DNS 記錄之後,發送 DNS 回答報文,將該回答報文放入 UDP 報文段中,然後放入 IP 數據報中,通過路由器反向轉發回網關路由器,並經過以太網交換機到達主機。

ARP/RARP協議

地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議(解析 MAC 地址)。

主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,並接收返回消息,以此確定目標的物理地址;

收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留一定時間,下次請求時直接查詢ARP緩存以節約資源。

地址解析協議是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;

由此攻擊者就可以向某一主機發送僞ARP應答報文,使其發送的信息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。

ARP命令可用於查詢本機ARP緩存中IP地址和MAC地址的對應關係、添加或刪除靜態對應關係等。

ARP工作流程舉例:

主機A的IP地址爲192.168.1.1,MAC地址爲0A-11-22-33-44-01;

主機B的IP地址爲192.168.1.2,MAC地址爲0A-11-22-33-44-02;

當主機A要與主機B通信時,地址解析協議可以將主機B的IP地址(192.168.1.2)解析成主機B的MAC地址。

以下爲工作流程:

  1. 根據主機A上的路由表內容,IP確定用於訪問主機B的轉發IP地址是192.168.1.2。然後A主機在自己的本地ARP緩存中檢查主機B的匹配MAC地址。
  2. 如果主機A在ARP緩存中沒有找到映射,它將詢問192.168.1.2的硬件地址,從而將ARP請求幀廣播到本地網絡上的所有主機。源主機A的IP地址和MAC地址都包括在ARP請求中。本地網絡上的每臺主機都接收到ARP請求並且檢查是否與自己的IP地址匹配。如果主機發現請求的IP地址與自己的IP地址不匹配,它將丟棄ARP請求。
  3. 主機B確定ARP請求中的IP地址與自己的IP地址匹配,則將主機A的IP地址和MAC地址映射添加到本地ARP緩存中。
  4. 主機B將包含其MAC地址的ARP回覆消息直接發送回主機A。
  5. 當主機A收到從主機B發來的ARP回覆消息時,會用主機B的IP和MAC地址映射更新ARP緩存。本機緩存是有生存期的,生存期結束後,將再次重複上面的過程。主機B的MAC地址一旦確定,主機A就能向主機B發送IP通信了。

逆地址解析協議,即RARP,功能和ARP協議相對,其將局域網中某個主機的物理地址轉換爲IP地址。

比如局域網中有一臺主機只知道物理地址而不知道IP地址,那麼可以通過RARP協議發出徵求自身IP地址的廣播請求,然後由RARP服務器負責回答。

RARP協議工作流程:

  1. 給主機發送一個本地的RARP廣播,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的RARP服務器分配一個IP地址;
  2. 本地網段上的RARP服務器收到此請求後,檢查其RARP列表,查找該MAC地址對應的IP地址;
  3. 如果存在,RARP服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;
  4. 如果不存在,RARP服務器對此不做任何的響應;

ARP 解析 MAC 地址

  • 主機通過瀏覽器生成一個 TCP 套接字,套接字向 HTTP 服務器發送 HTTP 請求。爲了生成該套接字,主機需要知道網站的域名對應的 IP 地址。

  • 主機生成一個 DNS 查詢報文,該報文具有 53 號端口,因爲 DNS 服務器的端口號是 53。

  • 該 DNS 查詢報文被放入目的地址爲 DNS 服務器 IP 地址的 IP 數據報中。

  • 該 IP 數據報被放入一個以太網幀中,該幀將發送到網關路由器。

  • DHCP 過程只知道網關路由器的 IP 地址,爲了獲取網關路由器的 MAC 地址,需要使用 ARP 協議。

  • 主機生成一個包含目的地址爲網關路由器 IP 地址的 ARP 查詢報文,將該 ARP 查詢報文放入一個具有廣播目的地址(FF:FF:FF:FF:FF:FF)的以太網幀中,並向交換機發送該以太網幀,交換機將該幀轉發給所有的連接設備,包括網關路由器。

  • 網關路由器接收到該幀後,不斷向上分解得到 ARP 報文,發現其中的 IP 地址與其接口的 IP 地址匹配,因此就發送一個 ARP 回答報文,包含了它的 MAC 地址,發回給主機。

TCP/IP協議

TCP/IP協議是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。

通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。

而IP是給因特網的每一臺聯網設備規定一個地址。

 

TCP是面向連接的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由於TCP是面向連接的所以只能用於端到端的通訊。

TCP提供的是一種可靠的數據流服務,採用"帶重傳的肯定確認"技術來實現傳輸的可靠性。

TCP還採用一種稱爲"滑動窗口"的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。

TCP報文首部格式:

 

TCP協議的三次握手和四次揮手:

 

注:seq:"sequance"序列號;ack:"acknowledge"確認號;SYN:"synchronize"請求同步標誌;;ACK:"acknowledge"確認標誌"FIN:"Finally"結束標誌。

 

TCP連接建立過程:首先Client端發送連接請求報文,Server段接受連接後回覆ACK報文,併爲這次連接分配資源。Client端接收到ACK報文後也向Server段發生ACK報文,並分配資源,這樣TCP連接就建立了。

TCP連接斷開過程:假設Client端發起中斷連接請求,也就是發送FIN報文。Server端接到FIN報文後,意思是說"我Client端沒有數據要發給你了",但是如果你還有數據沒有發送完成,則不必急着關閉Socket,可以繼續發送數據。所以你先發送ACK,"告訴Client端,你的請求我收到了,但是我還沒準備好,請繼續你等我的消息"。這個時候Client端就進入FIN_WAIT狀態,繼續等待Server端的FIN報文。當Server端確定數據已發送完成,則向Client端發送FIN報文,"告訴Client端,好了,我這邊數據發完了,準備好關閉連接了"。Client端收到FIN報文後,"就知道可以關閉連接了,但是他還是不相信網絡,怕Server端不知道要關閉,所以發送ACK後進入TIME_WAIT狀態,如果Server端沒有收到ACK則可以重傳。",Server端收到ACK後,"就知道可以斷開連接了"。Client端等待了2MSL後依然沒有收到回覆,則證明Server端已正常關閉,那好,我Client端也可以關閉連接了。Ok,TCP連接就這樣關閉了!

爲什麼要三次握手?

在只有兩次"握手"的情形下,假設Client想跟Server建立連接,但是卻因爲中途連接請求的數據報丟失了,故Client端不得不重新發送一遍;這個時候Server端僅收到一個連接請求,因此可以正常的建立連接。但是,有時候Client端重新發送請求不是因爲數據報丟失了,而是有可能數據傳輸過程因爲網絡併發量很大在節點被阻塞了,這種情形下Server端將先後收到2次請求,並持續等待兩個Client請求向他發送數據...問題就在這裏,Cient端實際上只有一次請求,而Server端卻有2個響應,極端的情況可能由於Client端多次重新發送請求數據而導致Server端最後建立了N多個響應在等待,因而造成極大的資源浪費!所以,"三次握手"很有必要!

爲什麼要四次揮手?

試想一下,假如現在你是客戶端你想斷開跟Server的所有連接該怎麼做?第一步,你自己先停止向Server端發送數據,並等待Server的回覆。但事情還沒有完,雖然你自身不往Server發送數據了,但是因爲你們之前已經建立好平等的連接了,所以此時他也有主動權向你發送數據;故Server端還得終止主動向你發送數據,並等待你的確認。其實,說白了就是保證雙方的一個合約的完整執行!

使用TCP的協議:FTP(文件傳輸協議)、Telnet(遠程登錄協議)、SMTP(簡單郵件傳輸協議)、POP3(和SMTP相對,用於接收郵件)、HTTP協議等。

如下簡單理解一下:

 

ICMP協議 

又叫做 網際控制報文協議 ICMP

ICMP 是爲了更有效地轉發 IP 數據報和提高交付成功的機會。它封裝在 IP 數據報中,但是不屬於高層協議

 

 

 ICMP 報文分爲差錯報告報文和詢問報文。

 

 ICMP的簡單應用場景

1. Ping

Ping 是 ICMP 的一個重要應用,主要用來測試兩臺主機之間的連通性。

Ping 的原理是通過向目的主機發送 ICMP Echo 請求報文,目的主機收到之後會發送 Echo 回答報文。Ping 會根據時間和成功響應的次數估算出數據包往返時間以及丟包率。

2. Traceroute

Traceroute 是 ICMP 的另一個應用,用來跟蹤一個分組從源點到終點的路徑。

Traceroute 發送的 IP 數據報封裝的是無法交付的 UDP 用戶數據報,並由目的主機發送終點不可達差錯報告報文。

  • 源主機向目的主機發送一連串的 IP 數據報。第一個數據報 P1 的生存時間 TTL 設置爲 1,當 P1 到達路徑上的第一個路由器 R1 時,R1 收下它並把 TTL 減 1,此時 TTL 等於 0,R1 就把 P1 丟棄,並向源主機發送一個 ICMP 時間超過差錯報告報文;

  • 源主機接着發送第二個數據報 P2,並把 TTL 設置爲 2。P2 先到達 R1,R1 收下後把 TTL 減 1 再轉發給 R2,R2 收下後也把 TTL 減 1,由於此時 TTL 等於 0,R2 就丟棄 P2,並向源主機發送一個 ICMP 時間超過差錯報文。

  • 不斷執行這樣的步驟,直到最後一個數據報剛剛到達目的主機,主機不轉發數據報,也不把 TTL 值減 1。但是因爲數據報封裝的是無法交付的 UDP,因此目的主機要向源主機發送 ICMP 終點不可達差錯報告報文。

  • 之後源主機知道了到達目的主機所經過的路由器 IP 地址以及到達每個路由器的往返時間。

UDP協議

UDP用戶數據報協議,是面向無連接的通訊協議,UDP數據包括目的端口號和源端口號信息,由於通訊不需要連接,所以可以實現廣播發送。

UDP通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程序員編程驗證。

UDP與TCP位於同一層,但它不管數據包的順序、錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。

相對於FTP或Telnet,這些服務需要交換的信息量較小。

每個UDP報文分UDP報頭和UDP數據區兩部分。報頭由四個16位長(2字節)字段組成,分別說明該報文的源端口、目的端口、報文長度以及校驗值。

UDP報頭由4個域組成,其中每個域各佔用2個字節,具體如下:

  • (1)源端口號;
  • (2)目標端口號;
  • (3)數據報長度;
  • (4)校驗值。

使用UDP協議包括:TFTP(簡單文件傳輸協議)、SNMP(簡單網絡管理協議)、DNS(域名解析協議)、NFS、BOOTP。

TCP  UDP 的區別:TCP是面向連接的,可靠的字節流服務;UDP是面向無連接的,不可靠的數據報服務。

 

 首部字段只有 8 個字節,包括源端口、目的端口、長度、檢驗和。12 字節的僞首部是爲了計算檢驗和臨時添加的。

題外話

上行帶寬和下行帶寬什麼意思

  我們訪問互聯網的過程中存在這兩種行爲:一是上傳數據,二是下載數據。上行寬帶(速度)指的是上傳的速度,而下行寬帶(速度)指的是下載數據是的數度。

  上行寬帶(速度)和下行寬帶(速度)是不對稱的,一般是下行速度大於上行的速度。我們平時所使用的寬帶說多少M,都是指的下行寬帶,

因爲我們上網主要是從互聯網上下載數據,而上傳的數據量要少很多。

  另外,很多用戶還有這樣一個疑問,那就是發現在使用寬帶的過程中,發現電腦中下載的速度根本就達不到自己辦理的寬帶的標準,

例如辦理的10M的寬帶,結果下載速度只有1M/s左右的速度,這是爲什麼呢?

  這是因爲寬帶運行商對下行速度和Windows電腦上面下行速度的單位不一樣,Windows電腦的單位是KBbs,而寬帶運營上的單位是Kbbs,1B=8b。例如你從寬帶運營上那裏辦理了10M的寬帶,

10Mbps=10240Kbps/8=1280KBps,所以你在電腦上下載數據是,你的最大的下載速度只有1280KBps,也就是隻有1M/s左右的樣子。所以不要再說寬帶公司坑人,

辦理的寬帶扣量了,這只不過是計算的單位不同引起的。

  寬帶的下載速率除寬帶帶寬外,與計算機配置、使用的下載軟件,下載的容量、下載網zhan的速率等均有關係,可以通過下載軟件查看您的寬帶下載速率。

  理想的狀態下:100M光纖寬帶的下行寬帶在10M/S到11M/s 之間;

  上行寬帶是指上傳到互聯網上的速度;這個要看你開通的寬帶是上下行等同還不是等同了,不知道的可以諮詢你的運營商,

如果是等同的你的上行寬帶也是10M/S到11M/s 之間,不是等同的一般上行寬帶只有400kbs/S到500Kbs/s 。

  一般企業開通的是上下行帶寬等同的;家用的是不等同,一般只管下行帶寬,上行的不管的。

計算機基礎知識考試題庫

計算機基礎知識100題含答案).doc:https://max.book118.com/html/2018/1102/8131101047001131.shtm

計算機基礎知識理論考試試題題庫彙總(一):https://zhuanlan.zhihu.com/p/82838613

參考文獻

百度百科:計算機網絡

計算機網絡基礎知識總結:https://www.runoob.com/w3cnote/summary-of-network.html

 計算機網絡(全):https://www.cnblogs.com/hansermukk/p/11138558.html

計算機基礎知識100題含答案).doc:https://max.book118.com/html/2018/1102/8131101047001131.shtm

計算機基礎知識理論考試試題題庫彙總(一):https://zhuanlan.zhihu.com/p/82838613

 

歡迎關注訂閱微信公衆號【熊澤有話說】,更多好玩易學知識等你來取
作者:熊澤-學習中的苦與樂
公衆號:熊澤有話說

QQ羣:711838388
出處:https://www.cnblogs.com/xiongze520/p/15821599.html
您可以隨意轉載、摘錄,但請在文章內註明作者和原文鏈接。  

 

 

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