OSI網路七層架構

網路概述

網路概述是個很大的主題,因為網路本身就是很廣泛的一門學問,這邊只是針對網路做一些比較粗略的說明,目的是讓大家可以很快了解一些基礎知識,未來看到網路相關問題可以先行判斷正確與否。 以下會看到許多專業術語,每個術語都只會簡單介紹,如有需要,每個術語都可以另外撰寫一篇專文介紹,所以後續可以寫很多網路術語的介紹文章^_^。 網路或者說網際網路的英文是Internet,他代表一個用來讓大家可以快速透過各種媒介以封包方式溝通的機制,他一開始只是美國軍方小範圍的資訊溝通機制(ARPA計畫),後來緩慢地加入溝通組織,但都還是封閉網路,大約在1990年代開始對外全面開放,最後發展成現在的Internet。 網際網路一開始都是有線網路,進入21世紀後,無線網路開始盛行,也就是我們所熟知的Wi-Fi,而他的規格定義在IEEE 802.11,而802.11也演變出很多新的版本,速度也越來越快更穩定,因此網路變成人們生活中的必需品。 網路主要分為WAN和LAN兩種,WAN就是網際網路,會與全世界各地進行溝通,而LAN就是區域網路,只能在內部進行溝通,例如公司內部,一般來說LAN和WAN會用一顆Router串在一起,LAN使用者可以存取WAN的開放資料,而WAN無法存取LAN的資訊,LAN的保護可能是透過防火牆或者NAT,而另外還有一個機制叫做DMZ,例如公司網站就可能放在DMZ,雖然設備放在LAN,但透過防火牆設定讓WAN使用者可以存取該設備。 網路的溝通方式有很多種,但最多人使用的就是現有的IP機制,IP環境並沒有服務品質(QoS)的概念,一般稱之為Ethernet(乙太網路),他的處理邏輯是Best Effort,也就是說一個封包丟進網路,他會自己設法傳遞到目的地,但不保證是否一定可以到達或者在多久之內到達,這就是傳統IPv4的基本設計,IPv4是指IP通訊協定定義的第4版,正因為這樣的問題存在,所以IPv6在設計時就有考慮某些QoS機制,但因為要跟IPv4相容,所以沒辦法百分之百達成QoS要求,但有朝這方向在邁進了,IPv4與IPv6的概念之後有需要可以再詳細說明。 傳統IP網路有一個很重要的階層機制,就是OSI的網路七層架構,這七層分別是 Layer 1 實體層 (Physical Layer):這一層定義到了網路實體線路,包括網路線的規格結構,以及設備之間的實體溝通方法,例如網路卡要怎麼傳送封包,無線網路要怎麼傳遞無線訊號 Layer 2 資料連結層 (Data-Link Layer):這一層開始將實體的概念虛擬化,定義好軟體怎麼指定要與誰溝通,在這一層,溝通用的是MAC Address,這個地址是LAN網路中唯一的代碼,可以很明確地指定封包要傳遞的目的地 Layer 3 網路層 (Network Layer):這一層開始定義網路網路(WAN)的溝通機制,每個設備都會有一個為一的IP地址,但因為IPv4定義的IP數量不夠多,所以開始有一些NAT技術產生,讓多個設備共用IP地址,這個問題在IPv6有進一步的解決 Layer 4 傳輸層 (Transport Layer):傳輸層在網路層之上加上一些保證可用性、循序性與可靠性等等特性,讓資料的傳輸可以透過這一層的控制更加穩定,一般最常用到的就是TCP和UDP這兩個協定 ...
WordPress的SEO設定

SEO簡介

SEO簡介主要介紹 甚麼是SEO SEO的意義 SEO簡單規則介紹 以下會依照順序一一介紹,目的是讓大家知道何謂SEO?未來看到SEO這個字眼可以有基本的概念 何謂SEO? SEO的全名為Search Engine Optimization,也就是搜尋引擎優化,透過相關技巧可以讓搜尋引擎針對你的頁面提升評分,評分高了就可以在搜尋結果中跑到比較前面的位置,SEO技巧有分 黑帽 白帽 灰帽 三種。 黑帽是用各種暗黑技巧欺騙搜尋引擎,並讓搜尋引擎可以快速地將你的網頁收錄,但黑帽技巧很容易被搜尋引擎注意到,所以有效期間很短,尤其像Google這類搜尋引擎都引入了一些人工智慧引擎,可以自動將黑帽行為排除,所以黑帽方式可能不到一個月就不見了。 白帽則是搜尋引擎喜歡的方式,他的重點是要你將網站內容豐富化,並且根據他們建議的方式讓觀看者可以方便觀看內容,這樣的規則之下,可以讓網站排名數個月甚至數年都在很前面,是比較正規的方式。 那一些黑帽技巧真的不能使用嗎?其實還是有些模糊地帶,有一些技巧比較不影響公平原則的話,搜尋引擎會漠視它,讓這樣的技巧存活久一點,這就是灰帽,這類技巧可以使用,但還是希望可以慢慢導向白帽技巧。 因此,SEO簡單來說就是讓自己的網頁可以更加符合搜尋引擎的需求,讓它將你的網站收錄到比較前面的排名。 SEO的意義 SEO除了讓搜尋引擎排名往前排以外,還有其他意義嗎?這部分其實是大家比較不常去思考的,大家只想要讓排名往前提升,但這樣的思考方向其實有點狹隘,你仔細去思考SEO規則的設計邏輯就會發現是有其目的的,下一節將會一一說明這些邏輯的意義,歸納下來,搜尋引擎要你做這些事情就是要讓你的網站內容 內容豐富化,不要東抄西抄 與其他網站有所連結,互相拉抬 便於客戶觀看內容,將重要資訊做有效的曝光 這些都是為了讓網站的品質更好,因為搜尋引擎也希望他提供給你的搜尋結果是優質的,讓更多人願意在這個地方搜尋資料,也可以提升自己的公信力,這才是SEO的真正意義。 SEO基本規則 這邊不會介紹所有的規則,只介紹幾個比較重要的規則,SEO規則至少有幾十種,而且各家搜訊引擎廠商也會不斷修改以防止黑帽駭客欺騙搜尋引擎。 標題加強 要善用H1/H2的標籤,一篇文章只能有一個H1標籤,他可能是標題或者整個網頁最重要的資訊,可以上觀看者可以快速看到文章的重點,而H2是用來將幾個文章主題做加強的,讀者可以透過這些標籤了解整篇文章的重點,下圖就是這一篇文章的結構範例. 連結互串 可以的話要讓網站內的頁面互相串連,這代表網站內的內容是有同質性且為自創內容,不是在網路上隨意收集到的資訊,代表網站的整體品質。 另外也要收錄一些外部網站,這代表我們的網站內容是有參考各方資訊的,可以用來增加可信度,例如我很喜歡以下幾篇SEO文章,大家也可以參考 SEO初學者教學 SEO是甚麼? 你可以讓網址另開新視窗,以免讀者就此離開此頁面。 圖片ALT/Title 如果你的頁面有圖片,也要做SEO,圖片有兩個參數跟SEO有關 ALT:圖片無法顯示時要顯示的文字,這可以讓讀者在網路品質不好或者內容錯誤時也可以看到相關資訊,即使圖片有問題,也能大概知道要呈現甚麼資訊 TITLE:這是用來描述圖片的更多資訊用的,但他的重要性比較低,不用做影響不大,但ALT一定要做 例如下圖就有ALT SEO META資訊 最後,我們來說一下如何針對網頁做SEO描述,這也是SEO最重要的一個面向,下圖是本文利用Yoast進行SEO Meta編輯的範例 其中包含了兩個內容 Title: 這代表這個網頁的概述,裡面儘量包含所有你要搜尋引擎收錄的關鍵字,並簡短描述期內容,字數是有個建議的數值,他可能會改變,所以用Yoast這一類的工具做修正是比較簡單的方法 Description: 這個地方可以用比較長一點的內容去詳述這一頁要介紹的內容,但也不宜太長,一樣可以利用Yoast計算,當下方進度條變成綠色就可以了,太長的話會再變成紅色,同時要注意,搜尋引擎並不是很喜歡  AAA,BBB,CCC,DDD  這種條列關鍵字,但根本不是一篇文章的描述方式,重點就是內容要有意義 以上就是SEO的簡單介紹,相關資訊也可以在Google上找到,未來也會持續補充更深入的SEO介紹。 之前有針對SEO做了一點測試,大家也可以參考此文章。

CMMI-DEV簡介

CMMI-DEV是基於CMMI發展出來的開發專用規範指引,以下將分別介紹何謂CMMI、CMMI的目的,一直談到CMMI-DEV有哪些成熟度等級等等。 CMMI 指的是能力成熟度整合模式(Capability Maturity Model Integration : CMMI),是美國國防部委託卡內基美隆大學軟體工程學院 (Software Engineer Institute : SEI)所發展的,目前有以下版本問市 v1.1: 2002年問世,為CMMI的第一個版本 v1.2: 2006年問世 v1.3: 2010年問世,為最後一版免費版本,並包含DEV/SVC/ACQ等三個版本 v2.0: 2018年問世,但開始要收費了,所以我也拿不到相關細節,也因此大家大都還是以v1.3為主要參考內容 CMMI分為三個分部 CMMI-DEV: 軟體開發指引 CMMI-SVC: 服務提供引 CMMI-ACQ:...

軟體開發評估流程簡介

首先,軟體開發評估流程有兩種,一種是產品,一種是客製化。 產品是比較容易預估人力的,而且都是天價人天,但這邊說的容易只是一個比較值,還是有難度的,但變數跟客製化比起來會少上許多,主要的評估流程如下 可能有人會有不同想法,但應該不會有太大的差異才對,這裡面的重點包括 產品定義的確認 團隊的確認,包括開發與測試 時程的確認 行銷的確認 這裡面最重要的有人可能認為是開發團隊的成本評估,但這裡面要強調開發、測試與行銷的平衡,不應該只注重在開發的成本評估,畢竟這是個產品,所有人都會期待他不需要客製化就可以快速上線,而且品質穩定。   接下來是本文的重點─客製化成本,客製化成本評估流程可以參考下圖   這裡面有個重點是需求到底是甚麼,這個問題是很難有好的方案的,因為客戶永遠都會覺得你做的不是我要的,但客戶也說不出,這時候就需要進行需求發展,需求發展的過程會遇到很多溝通問題,絕大多數的心力會花在說服客戶你的方案才是他真正要的,或者說服客戶他要的東西是不可能做出來的,這是整個軟體開發評估最重要的流程,足以影響開發成敗,也可以預防客戶事後大幅修改系統範疇,因為客製化軟體是根據客戶量身訂製的,所以除非你很了解客戶真正要的,不然很難符合客戶的需求,當然,你也可以透過說服客戶使用產品來符合客戶的需求,但這一般是在客戶有預算問題的時候才會這樣處理。 以上簡單介紹軟體開發評估流程,請大家參考。 ※ 如果您想得到更多相關資訊,歡迎訂閱我的Udemy新課程"軟體工程兩三事",Udemy隨時都有優惠,價格很便宜,如果暫時調回原價,可以用以下連結前往訂閱 https://www.udemy.com/course/softengine/?referralCode=27A7A463769D3E25C793

[課程] 軟體工程兩三事

這是我最新的Udemy課程,會針對軟體工程的概念做個基本的介紹,並將一些實務上會碰到的問題一一說明,點選下圖可以前往課程首頁 目前共有七個章節,未來會再視狀況增加章節,目前七個章節分別描述 軟體開發會遇到的問題 需求分析與發展 系統分析與設計 專案管理 專案驗收 專案管理基礎 CMMI-DEV 對於這些領域的基本概念有興趣的朋友可以前往訂閱。 Udemy大都有一些很便宜的優惠價格,歡迎使用以下連結訂閱 https://www.udemy.com/course/softengine/?referralCode=27A7A463769D3E25C793 當然,如果有看到更好的價格就可以用更低的價格購買了。 相關資訊也可以參考本站文章:CMMI-DEV簡介、軟體開發評估流程簡介與軟體開發人天成本的計算方法等。