# Chapter 1: Computer Networks and the Internet ## Outline - What is Internet? - Protocol layers - Internet Security - How to measure Internet Performance? ## What is Internet  - 網路:把所有的設備用某種方式連在一起,讓彼此可以通訊、交換資訊,用比喻的方式的話,像是全世界的郵局可以互相寄送信件 - 物聯網:把不是電腦的東西也連到網路上,例如冰箱、家電等等,稱為物聯網 既然我們想要讓不同的設備可以彼此交換訊息,但如果大家都用自己的方式送資料,就會出現溝通障礙,所以就會需要制定交換的流程、交換的方式等等標準,這種標準稱為 protocol,例如: - HTTP - websocket - webRTC - 等等... ## Protocol layers 目前網路通訊標準大致上有兩種不同的抽象方式: - OSI model - TCP/IP model  每一層 layer 都會負責不同的任務,目前我們平常用到的 protocol 都是在 application layer 比較多,例如 HTTP websocket 等等,TCP 可能只需要大概知道一下。 知道每個 protocol 的特性有什麼好處?比如需要設計某個系統的時候,比較知道要如何選擇適合的 protocol 來開發。 ### 什麼是封包 前面大致上說明了什麼是網路,以及網路的 protocol,接下來我們要來看看,假設我想從電腦 A 傳資料(data) 到電腦 B,網路會怎麼幫我們傳送資料。 封包是能在網路上面進行傳輸的最小資訊單位。一個封包含有發送端節點地址﹑接收端節點地址﹑和這兩個節點之間需要傳送的數據。 封包傳送的 data 是 binary data。 ### 封包(packet)如何在網路之間傳遞 以最經典的面試題來舉例封包的傳遞,在瀏覽器的輸入框輸入 url 之後會發生什麼事?(用上面的圖來搭配講解):   ### Wireshark 封包監測工具,如果是需要做 network programming 的工程師很常需要用到的一種工具。用來檢查可能解析封包有沒有解對之類的。這堂線上課程會教我們怎麼用 Wireshark。 ### BT 種子 不知道大家有沒有用過 BT 下載東西(好古老的回憶XD),但我覺得可以用來練習當作理解網路的範例。 - 平常在上網的時候,比如連到臉書的網頁,我們是像臉書的伺服器發 request 請求下載瀏覽網頁的相關檔案到我們自己的電腦裡。 - BT 則是發 request 去請求另外一台電腦(可能只是一般用戶,不是更新)提供他電腦裡的檔案給你。 從以上簡單的例子我們其實可以發現,網際網路簡單來說就是電腦跟電腦(或不一定是電腦,可能是手機或是冰箱之類的)之間的資料交換。 從資料交換這個想法出發,我們其實可以衍生出更多問題: - 怎麼交換資料、交換的資料是什麼 --> 訂定各種不同的 protocol,就是前面講的,後面的章節會陸續介紹 - 資料安全,我要怎麼知道交換來的資料是安全的,不會寄病毒給我 --> security 的探討,下一 part - 網路跑好慢,下載東西超慢 --> 網路效能(performance)的問題 ### Resource - https://linux.vbird.org/linux_server/redhat9/0110network_basic.php - https://www.cloudflare.com/zh-tw/learning/ddos/glossary/open-systems-interconnection-model-osi/ - https://leesonhsu.blogspot.com/2018/07/socketwebsocketsocketio.html - https://www.geeksforgeeks.org/tcp-ip-model/ ## Internet Security - DDoS:https://www.cloudflare.com/zh-tw/learning/ddos/what-is-a-ddos-attack/ - HTTP/HTTPS:加密封包,避免資料在網路上裸奔,https://aws.amazon.com/tw/compare/the-difference-between-https-and-http/ - ssh key:一對公私鑰,https://ithelp.ithome.com.tw/articles/10277498 ## How to measure Internet Performance? 衡量網路效能的三個指標: - delay 延遲 - packet loss 封包掉了 - throughput 單位時間內可以處理多少封包 --> throughput 算是蠻重要的專有名詞,通常用來指某個時間內可以完成多少是,衡量 CPU 效能的時候也會用到這個詞
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up