--- tags: OSI (Open System Interconnection Model) --- # 資訊網路專題期末考內容,OSI七層 ## 第7層,應用層 此處最小單位為data 專為應用軟體所設的層,以決定應用軟體所使用的通訊協定,例:HTTPS、FTP、SMTP等 ### port的概念 一台PC,使用者同時開啟多個使用網路服務的應用程式(例:同時開啟LOL遊戲以及SPOTIFY服務),電腦是怎麼知道哪個封包是哪個應用程式的? 每個需要網路服務的程式,在開啟的時候會佔住一個"port",每個port只能單獨給一個應用程式使用,封包內會寫到來源以及目的地所使用的port number,即可避免上述問題。 ※port number數字較小的大多都是server的port,像是http用80 port,ssh用22 port。 ### HTTP的POST和GET概念 GET的作法是將資料夾在網址中送出,像是拍賣網站的頁碼數或是google search送出關鍵字的方法,此方法除了有安全問題以外,夾帶資料長度也有限 POST則與GET作法不同,其會放在封包內的某處 ※PUT ### DNS(Domain Name System) Server 做為一般使用者,輸入網址之後,電腦須將其轉換成IP位置才能繼續。於是user會將網址傳給DNS Server,拿到該Domain Name所對應的IP位置後繼續下面的動作 #### DNS Server運作模式:recursive and iterative recursive: DNS Server若是沒有此Domain Name的資料,Server會自行詢問其他DNS Server並且會找到IP位置候傳回去給使用者 iterative: DNS Server若是沒有此Domain Name的資料,Server會回給User可能知道此Domain Name的DNS Server ## 第6層,表達層 ## 第5層,會議層 ## 第4層,傳輸層 此處最小單位為segment 主要工作: * segmenting切割:為了使程式能夠一起使用網路資源,故須將資料分開傳遞 * identifying確認:確認資料傳輸正確 * tracking追蹤:追蹤溝通 * reassembling重組:切割並將資料傳輸給使用者後,使用者仍需要將其重組 加表頭的地方,例如TCP協定常用的SYN、ACK、FIN以及Window Size等 ### TCP協定 TCP為較可靠的傳輸協定,因為它有封包編號等機制,以維持其可靠性 #### 三方交握 * user→→→→→SYN,SEQ=0→→→→→server * user←←←SYN+ACK,SEQ=0←←←server * user→→→→→ACK,SEQ=1→→→→server * user←←←←←ACK,SEQ=1←←←←server * user→→→→→ACK,SEQ=2→→→→server * user←←←←←ACK,SEQ=2←←←←server . . . #### TCP常見表頭 * SYN:為1表示這是連接請求或是連接接受請求,用於建立連接和使順序號同步 * ACK:為1表示確認號欄位有效 * SEQ:序號,client會與server說自己需要編號幾的封包,server收到要求後則會將該編號封包傳出 * RST:為1表示出現嚴重差錯。可能需要重新建立TCP連接。還可以用於拒絕非法的header和拒絕連接請求 * FIN:為1表示傳送方沒有資料要傳輸了,要求釋放連接 * Window Size:用於限定此連線流量的大小 #### TCP可靠性優於UDP的原因 因為多了以下東西 sequence number:封包序號 acknowledge number:用於回覆哪些編號的封包已收到,尚未收到哪些封包等 header:包含SYN、ACK、FIN等 #### 那為什麼還要UDP 使用於需要速度但可靠性沒那麼重要的時候,像是網路電話等 ## 第三層,網路層 此處最小單位為packet 主要工作: * addressing * routing路由:將封包送給下一個router ### IP address、Net Mask and Default Gateway #### IP Address 作用有兩個 一為標示主機(addressing),提供主機在網路中的位置 二為網路尋址(routing),在整個路由網路間運作的機制中佔很重要角色 #### Net Mask(子網路遮罩) 標示出網路位址與主機位置 假設IP為192.168.100.1,子網路為255.255.255.0 網路位置計算方式為192.168.100.1與255.255.255.0做==AND==運算,可得到192.168.100.0 主機位置計算方式為192.168.100.1與255.255.255.0做==NOT==運算,可得到0.0.0.1 #### Default Gateway(預設閘道) 本網路預設的路由器,當目的地不在這個子網路裡面(自己的網路位置與目的地的網路位置不同),就要將封包交給預設閘道器,進入路由網路 ### 路由協定 #### Distance and Vector v.s Link State ![](https://i.imgur.com/Q4iep0R.png) #### 路由表收斂 即使路由器間繼續交換資料,也不影響路由表,即趨於穩定 ## 第二層,資料連結層 此處最小單位為frame 主要工作: * framing:根據傳輸的方式(乙太網路、wifi或衛星等等)給予不同表頭包裝 * MAC(Media Access Control):取得網路使用權以及管理 ### ARP(Address Resolution Protocol) 封包要傳給下一個接收者,不論是預設閘道器、路由器或是到接收者,都需要知道其MAC位置。 每台電腦都有一個ARP Table,紀錄著IP位置與對應的MAC位置。 但若是IP有更動,或是其他原因,導致ARP Table沒有接收者IP的MAC位置,就要使用廣播,詢問接收者的MAC位置。 ※由於是使用廣播知道接收者IP,除非client端和server端在同個子網路,不然client是不知道server端的MAC位置,至少不是透過ARP協定知道。(此處可能有誤不確定) ### CSMA/CA以及CSMA/CD CSMA/CD是傳統乙太網路的MAC機制,含一個環境,兩個運作方式: CS(Carrier Sense):偵測有無訊號 MA(Mutiple Access):多人要求在單一通道內存取 CD(Collision Detection):碰撞偵測 ----- CSMA/CA是wifi的MAC機制,CSMA與上述相同 CA(Collision Avoidence):碰撞預防 ## 第一層,實體層 此處最小單位為bit 主要工作: * encoding * signal ### 4B/5B ### Unshielded Twisted Pairs(UTP) 因為有參考基準(其中一條絞線),使得其較不怕受到干擾 ## source https://docs.google.com/spreadsheets/d/1mu3M6CqnQsWTfRQTBYy0o8VvFrgGyLr7aNRfKTfOacw/edit?usp=drivesdk https://www.evernote.com/shard/s285/sh/b2ee51a1-ca31-4ee3-b69f-02a3cccabdd7/79b65c2fd09fcc3c8322810f6563307b https://zh.wikipedia.org/wiki/OSI%E6%A8%A1%E5%9E%8B https://medium.com/%E5%B0%8F%E5%B0%8F%E8%AA%AA%E6%9B%B8%E4%BA%BA/%E7%B6%B2%E9%A0%81get-%E8%88%87-post-%E5%B7%AE%E7%95%B0-%E7%A7%91%E6%99%AE%E5%A3%B9%E9%BB%9E%E9%80%9A-94cbaa666fdb https://zh.wikipedia.org/wiki/IP%E5%9C%B0%E5%9D%80 https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AE https://zh.wikipedia.org/wiki/%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AE https://zh.wikipedia.org/wiki/%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90%E5%8D%8F%E8%AE%AE