主頁 > 軟體設計 > 萬字+圖片決議計算機網路運輸層

萬字+圖片決議計算機網路運輸層

2021-11-09 07:46:37 軟體設計

文章目錄

    • 1. 運輸層概述
    • 2. 運輸層埠號、復用與分用
    • 3. TCP(傳輸控制協議)與UDP(用戶資料報協議)的對比
    • 4. 流量控制
    • 5. 擁塞控制
    • 6. 超時重傳時間的選擇
    • 7. TCP可靠傳輸的實作
    • 8. TCP的連接建立
    • 9. TCP的連接釋放
    • 10. TCP首部格式

1. 運輸層概述

(1)、前情回顧

計算機網路體結構中的物理層、資料鏈路層以及網路層它們共同解決了將主機通過異構網路互連起來所面臨的問題,實作了主機到主機的通信

在這里插入圖片描述

(2)、為什么需要運輸層?

  1. 但實際上在計算機網路中進行通信的真正物體是位于通信兩端主機中的行程
  2. 如何運行在不同的主機上的應用行程提供直接的通信服務是運輸層的任務,運輸層協議又稱端到端協議,因為運輸層的作用范圍是端到端

在這里插入圖片描述

(3)、運輸層的相關說明

  1. 運輸層向高層用戶屏蔽了下面網路核心的細節(如網路拓撲、所采用的路由選擇協議等),它使應用行程看見的就好像是在兩個運輸層物體之間有一條端到端的邏輯通信信道

在這里插入圖片描述

  1. 根據應用需求的不同,因特網的運輸層為應用層提供了兩種不同的運輸協議,即面向連接的TCP無連接的UDP

2. 運輸層埠號、復用與分用

(1)、為什么需要埠號?

  1. 運行在計算機上的行程使用行程識別符號PID來標志
  2. 因特網上的計算機并不是使用統一的作業系統,不同的作業系統又使用了不同格式的行程識別符號
  3. 為了使運行不同作業系統的計算機的應用行程之間能夠進行通信,就必須使用統一的方法對TCP/IP體系的應用行程進行標識

(2)、埠號簡介

埠號使用16位元取值范圍0~65535,埠號只有本地意義,即埠號只是為了標識本地計算機應用層中的各行程在因特網中,不同計算機中的相同埠號是沒有任何聯系的,

分類

  1. 數值埠號0~1023,IANA把這些埠號指派給了TCP/IP體系中最重要的一些應用協議
  2. 登記埠號1024~49151為沒有熟知埠號的應用程式使用,使用這類埠號必須在IANA按照規定的手續登記,
  3. 短暫埠號49152~65535留給客戶端行程選擇暫時使用,當服務器行程收到客戶行程的報文時,就知道了客戶行程所使用的動態埠號,通信結束后,這個埠號可供其他客戶行程使用

(3)、發送方的復用

  • 多個行程(這里一個埠表示一個行程) 利用一個運輸層協議(或者稱為運輸層介面)發送資料稱為 復用

應用行程的應用報文向下傳遞,有的被UDP協議封裝成UDP資料報,有的被TCP協議封裝成TCP報文段,然后再往下傳輸,被IP協議封裝成IP資料報進行運輸,

在這里插入圖片描述

(4)、接收方的分用

  • 多個行程(這里一個埠表示一個行程) 利用一個運輸層協議(或者稱為運輸層介面)接收時叫做 分用

IP資料報被接收方接收進行IP分用,如果IP資料報的協議欄位為17,則將IP資料報中的資料載荷部分的UDP資料報向上傳遞給運輸層,如果IP資料報的協議欄位為6,則將IP資料報中的資料載荷部分的UDP資料報向上傳遞給運輸層

在這里插入圖片描述

(5)、常見的協議

  1. UDPRIP:520,DNS:53,TFTP:69,SNMP:161,DHCP:67/68
  2. TCPSMTP:25,FTP:20/21,BGP:179,HTTP:80,HTTPS:443

在這里插入圖片描述

3. TCP(傳輸控制協議)與UDP(用戶資料報協議)的對比

  1. UDP支持一對一,一對多,多對一和多對多互動通信;TCP只能是一對一通信

在這里插入圖片描述

  1. UDP是無連接的(即發送方隨時都可以發送資料報),TCP是面向連接的(在發送資料報之前必須建立連接,發送完畢后必須釋放連接)

在這里插入圖片描述

  1. UDP是面向應用報文的,TCP是面向位元組流的

在這里插入圖片描述

  1. UDP向上提供無連接不可靠傳輸服務(如果資料報出現誤碼或丟失,不進行任何處理);TCP向上提供面向連接可靠傳輸服務(發送方發送什么,接收方就接受到什么)

在這里插入圖片描述

  1. UDP首部開銷小僅8位元組,TCP首部最少20位元組,最大60位元組,

在這里插入圖片描述

4. 流量控制

(1)、為什么需要流量控制?

一般來說,我們總是希望資料傳輸得更快一些,但是如果發送方發送得過快接收方就可能來不及接收,這就會造成資料的丟失

(2)、流量控制

流量控制就是讓發送方得的發送速率不要太快要讓接收方來得及接收

(3)、實作方式

利用滑動視窗機制可以很方便地在TCP連接上實作對發送方的流量控制

  1. TCP接收方利用自己的接收視窗的大小來限制發送方發送視窗的大小
  2. TCP發送方收到接收方的零視窗通知后,應啟動持續計時器,持續計時器超時后,向接收方發送零視窗探測報文,當之前發送方應盡接收過了來自接收方的零視窗報文,但是接收方再次發送相應的改變發送視窗的大小的通知,如果其丟失,則會造成死鎖,所以零視窗探測報文是用來打破這種僵局的,如下圖所示

在這里插入圖片描述

(4)、進行流量控制的程序

如下圖所示

在這里插入圖片描述
說明

seq表示的是該資料段的首位元組序號ACK表示的是確認分組ack表示的是對相應的序號之前的資料進行累計確認rwnd表示的是接收方的接收視窗大小,顯然上圖進行了三次流量控制

5. 擁塞控制

(1)、為什么需要擁塞控制?

  1. 擁塞:在某段時間,如果網路中的某一資源的需求超過了該資源所能提供的可用部分,網路性能就會變壞,

  2. 如果出現擁塞而不進行控制,整個網路的吞吐量將隨輸入負荷的增大而下降

在這里插入圖片描述

(2)、前提摘要

下面我們介紹的四種演算法原理,假定如下條件

  1. 資料是單方向傳送,而另一個方向只傳送確認,
  2. 接收方總是有足夠大的快取空間,因而發送方發送視窗的大小由網路的擁塞程度來決定,
  3. 以最大報文段MSS的個數為討論問題的單位,而不是以位元組為單位,

(3)、慢開始、擁塞避免

慢開始、擁塞避免的程序說明

剛開始的時候cwnd設定為1ssthresh門限值設定為為16慢開始階段,cwnd以乘以2的速度進行增長,當到達ssthresh門限值的時候,開始擁塞避免演算法cwnd以1進行線性增長,當發現超時重傳時,判斷出現擁塞cwnd重新設定為1將ssthresh的值設定為發生擁塞時的cwnd的值的一半,重新開始慢開始演算法,(資料自定

在這里插入圖片描述

(5)、為什么需要快重傳和快恢復演算法?

有時候,個別報文段會在網路中丟失,但實際上網路并未發生擁塞,這將導致發送方超時重傳,并誤認為網路發生了擁塞;發送方把擁塞視窗cwnd又設定為最小值1,并錯誤地啟動慢開始演算法,因而降低了傳輸效率

(4)、快重傳

快重傳:就是使發送方盡快進行重傳,而不是等超時計時器超時再進行重傳

  1. 要求接收方不要等待自己發送資料時才進行捎帶確認,而是進行立即發送確認
  2. 即使收到了失序的報文段也要立即發出對已收到的報文段的重復確認
  3. 發送方一旦收到了3個連續的重復確認,就將相應的報文段立即重傳,而不是等該報文段的超時計時器超時再重傳,

快重傳的程序說明

發送方向接收方發送資料,發送資料M1、M2后都收到了接收方的確認,但是資料M3丟失,因此,發送方還會繼續發送資料M4、M5、M6接收方會一直向發送方發送重復確認M2,發送方接收到三個重復確認后,對該報文段立即重傳,而不是等到超時計時器超時,

在這里插入圖片描述

(5)、快恢復

快恢復的程序說明

剛開始的時候cwnd設定為1ssthresh門限值設定為為16慢開始階段,cwnd以乘以2的速度進行增長,當到達ssthresh門限值的時候,開始擁塞避免演算法cwnd以1進行線性增長,當發現超時重傳時,判斷出現擁塞cwnd重新設定為1將ssthresh的值設定為發生擁塞時的cwnd的值的一半,重新開始慢開始演算法、擁塞避免演算法到cwnd為16,此時發送方收到3個重復確認,從而啟動快重傳、快恢復演算法設定ssthresh為8,然后進行擁塞避免演算法,(資料自定

在這里插入圖片描述

6. 超時重傳時間的選擇

(1)、相關概念

  1. RTT:一個TCP資料報文段的往返傳播時間
  2. 超時重傳時間RTO不能小于RTT,不然會導致不必要的重傳,使網路負荷增大

在這里插入圖片描述

  1. 超時重傳時間RTO不能遠大于RTT,不然會使網路的空閑時間增大降低傳輸效率

在這里插入圖片描述

(2)、超時重傳時間的計算公式

這里的超時重傳時間是加權平均值,因為單純的幾個不具有普遍性,會引起極端情況

在這里插入圖片描述

(3)、超時重傳后需要對超時重傳時間進行更新嗎?

  1. 因為發生了超時重傳不能準確的計算相應的RTT,因為會被相應的重傳報文段混淆

在這里插入圖片描述

  1. 所以報文段每重傳一次,就把重傳時間RTO增大一些,典型的做法就是增大為舊值的兩倍

在這里插入圖片描述

7. TCP可靠傳輸的實作

(1)、實作方式

TCP基于以位元組為單位的滑動視窗來實作可靠傳輸,

  1. 發送方在未收到接收方的確認時,可將發送視窗還未發送的資料全部發送出去
  2. 接收方只接收序號落入視窗內的資料,如果是未按序到達的資料,接收方會先將其存下來

(2)、實作程序說明

按序

剛開始的時候,發送方會收到接收方的一個確認報文段(rwnd = 20 , ack = 34)(表示接收視窗為20,期望收到的資料的序號為34),然后發送方向接收方發送資料,如果是按序到達的,接收方接收到之后,將相關資料從相應的接收快取中洗掉,然后接收方的視窗向前移動并向發送方發送前面資料的累計確認分組發送方接收到后將視窗向前移動并將相關資料從發送快取中洗掉

在這里插入圖片描述

不按序

如果不是按序到達的,那么接收方的視窗保持不變,并向接收方發送未收到的資料的序號,當超過超時時間就會觸發超時重傳

在這里插入圖片描述

(3)、特別說明

  1. 同一時刻,發送方的發送視窗并不總是和接收方的接收視窗一樣大
  2. 對于不按序到達的資料通常會將其先臨時存放在接收視窗中,等待位元組流中所缺失的位元組收到后,再按序交付上層的應用行程,
  3. TCP要求接收方必須有累計確認和捎帶確認機制,減少傳輸開銷,
  4. TCP的通信是全雙工通信,通信的每一方都在發送和接收報文段,

8. TCP的連接建立

(1)、TCP的連接建立要解決的三個問題

  1. 使TCP雙方能夠確知對方的存在
  2. 使TCP雙方能夠協商一些引數
  3. 使TCP雙方能夠對運輸物體資源進行分配

(2)、建立程序說明

建立程序中,TCP客戶機會首先發送給TCP服務器一個TCP連接請求報文(SYN = 1, seq = x),TCP服務器行程收到后發送一個TCP連接請求確認報文(SYN = 1,ACK = 1,seq = y,ack = x + 1)TCP客戶端行程收到相應的報文后進入連接已建立狀態,然后向TCP服務器行程發送一個TCP普通確認報文段,然后TCP服務器行程進入連接已建立狀態

在這里插入圖片描述

(3)、第三次的TCP請求的確認的確認是否多余?

不多余,這是為了防止已失效的連接請求報文段突然又傳送到TCP服務器,因而導致錯誤

在這里插入圖片描述

9. TCP的連接釋放

(1)、 TCP客戶行程向TCP服務器發送TCP連接釋放報文

當TCP客戶端行程要主動關閉連接時,TCP客戶端行程就會向TCP服務器端發送一個TCP連接釋放報文FIN = 1 ,ACK= 1,seq = u,ack = v),此時TCP客戶端進入終止等待狀態

在這里插入圖片描述

(2)、TCP服務器端行程向TCP客戶端行程發送一個普通的TCP確認報文

然后TCP服務器端行程會向TCP客戶端行程發送一個普通的TCP確認報文ACK = 1,seq = v,ack = u+ 1),且此時的TCP服務器端進入關閉等待狀態,TCP客戶端行程進入終止等待狀態

在這里插入圖片描述

此時TCP客戶端行程到TCP服務器端的行程的連接已經關閉,而TCP服務器端到TCP客戶端行程的連接還未關閉,所以此時TCP服務器端行程還可以給TCP客戶端行程進行資料傳輸,

(3)、TCP服務器端行程向TCP客戶端行程發送TCP連接釋放報文

當TCP服務器端的行程資料傳輸完畢后,TCP服務器端行程會向TCP客戶端行程發送TCP連接釋放報文FIN = 1,ACK = 1,seq = w,ack = u + 1),且此時TCP服務器端行程進入最后確認狀態

在這里插入圖片描述
(4)、TCP客戶端行程向TCP服務器端行程發送普通的TCP連接釋放確認報文

TCP客戶端行程收到TCP服務器端行程發送而來的TCP連接釋放報文后,TCP客戶端行程會向TCP服務器端行程發送一個普通的TCP連接釋放確認報文,且此時從TCP服務器端行程到TCP客戶端行程的連接關閉,TCP服務器端行程進入關閉狀態,而TCP客戶端行程進入時間等待狀態,經過2MSL后進入關閉狀態

在這里插入圖片描述

(5)、TCP客戶端行程有必要進入時間等待狀態嗎?可以直接進入關閉狀態嗎?

答案是必須進入時間等待狀態,因為如果在TCP客戶端行程發送完畢TCP連接釋放確認報文后,該報文丟失,那么TCP服務器端行程就會一直重新發送相關的TCP連接釋放報文,而如果是直接進入關閉狀態的話,那么TCP無法進入關閉狀態而導致資源的浪費

在這里插入圖片描述
(6)、保活計時器

會出現的現象:TCP客戶端出現故障,那么TCP服務器端該如何發現?

  1. TCP服務器行程每收到一次TCP客戶行程的資料,就重新設定并啟動保活計時器
  2. 如果保活計時器定時周期內未收到TCP客戶端行程發來的資料,則當其到時后,TCP服務器行程就向TCP客戶端行程發送一個探測報文段,以后每隔75秒鐘發送一次,如果一連發送10個探測報文仍無TCP客戶端行程的回應,TCP服務器端行程就認為TCP客戶端行程所在主機出現了故障,就關閉這個連接,

10. TCP首部格式

在這里插入圖片描述

源埠: 占16位元,寫入源埠號,用來 標識發送該TCP報文段的應用行程
目的埠: 占16位元,寫入目的埠號,用來標識接收該TCP報文段的應用行程

序號: 占32位元,取值范圍[0,2^32-1],序號增加到最后一個后,下一個序號就又回到0,指出本TCP報文段資料載荷的第一個位元組的序號

確認號: 占32位元,取值范圍[0,2^32-1],確認號增加到最后一個后,下一個確認號就又回到0,指出期望收到對方下一個TCP報文段的資料載荷的第一個位元組的序號,同時也是對之前收到的所有資料的確認若確認號=n,則表明到序號n-1為止的所有資料都已正確接收,期望接收序號為n的資料

確認標志位ACK: 取值為1時確認號欄位才有效;取值為0時確認號欄位無效,TCP規定,在連接建立后所有傳送的TCP報文段都必須把ACK置1

資料偏移: 占4位元,并以4位元組為單位,用來指出TCP報文段的資料載荷部分的起始處距離TCP報文段的起始處有多遠,這個欄位實際上是指出了TCP報文段的首部長度

視窗: 占16位元,以位元組為單位,指出發送本報文段的一方的接收窗

同步標志位SYN: 在TCP連接建立時用來同步序號,終止標志位FIN: 用來釋放TCP連接,復位標志位RST: 用來復位TCP連接,

推送標志位PSH: 接收方的TCP收到該標志位為1的報文段會盡快上交應用行程,而不必等到接收快取都填滿后再向上交付,

校驗和: 占16位元,檢查范圍包括TCP報文段的首部和資料載荷兩部分,在計算校驗和時,要在TCP報文段的前面加上12位元組的偽首部,

緊急指標: 占16位元,以位元組為單位,用來指明緊急資料的長度,

填充: 由于選項的長度可變,因此使用填充來 確保報文段首部能被4整除,(因為資料偏移欄位,也就是首部長度欄位,是以4位元組為單位的),

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353342.html

標籤:其他

上一篇:python3--資料可視化-破解IP查詢介面 將6萬個IP地址可視化展示(附原始碼)

下一篇:Git 版本控制學習指南(2021版)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more