# 網路通訊協定期末考前抱佛腳共筆 ![wuch](https://www.csie.nuk.edu.tw/elfinder/files/teacherProfile/wuch2.jpg =250x275) > 想抱佛腳阿 [name=wuch] ![](https://i.imgur.com/tyMqauH.png =250x) > 全部當掉 [name=wuch] ![](https://i.imgur.com/Cmzjas8.png =250x) > 明年見 [name=wuch] ![](https://i.imgur.com/n0mKAtL.png =250x) > 我就爛 [name=全班] ## 留言 > 就等這一刻 [name=Kai-Lun Huang] > 安安 [name=ifTNT] > 要錯就一起錯啦幹 [name=Kai-Lun Huang] > 詠翔上線拉 [name=di_weird] > yooooo [name=Valorlo] > 這個筆記好有愛 [name=Valorlo] > 道爾吞X子說:「我噎到了」 [name=dick] > 乾到時候會不會大家寫的答案都一樣 [name=RsiWater] > 一樣方便原進改考卷 [name=KTony] > 收割仔啦 [name=Arapn] > 收割仔二號來了 [name=yee] > 各位我先退ㄌ 這場考試考完我就回老家投票 [name=RsiWater] [TOC] ## Terms 1. IAB(Internet Architecture Board) : 決定網際網路技術方向&決定技術何時成為標準 2. IANA(Internet Assigned Numbers Authority): 指派網際網路位址之機構 3. NDP : IPv6用來取代原先IPv4 ARP的方法,鄰居發現協定 address autoconfiguration、duplicate address detection、router discovery,NDP包括五種messages:RS, RA, NS, NA, Redirect 4. IETF: 負責開發與推廣網路標準之組織 5. IRTF: 注重在網路長期問題 focused on long term problems in Internet 6. ICANN: 分配domain與網路位址的機構 7. RFC : IETF發布的一系列備忘錄,Internet drafts 8. anycast : 可根據router拓撲決定送到最近或最好的目的地 9. broadcast: one-to-all,同一個broadcast domain的人都收的到 10. multicast: one-to-any,group裡面的人都會收的到 - IPv4: IGMP (Internet Group Management Protocol) - IPv6: MLD (Multicast Listener Discovery) 11. unicast: 一對一傳輸,現今網路最多的傳輸 12. CIDR(Classless Inter-Domain Routing): 無類別域間路由,用來分類Internet上的IP位址 13. Hub: 集線器,用來傳輸封包至所有連接至集線器的網路(Layer 1裝置) 14. Switch: 交換器,和Hub相同,但會記錄接受方的MAC address和port以至於增加流量效率(Layer 2裝置) 15. Router: 路由器,透過Routing和Forwarding決定封包走向,可用來隔離網路 16. Pseudo-header: 不包含在header裡但是算checksum的時候會一起計算的header,ICMP UDP TCP ## 切子網問題 - IPv4 Classful addressing | class | Start network ID | End network ID | Length of network ID | |-|-|-|-| |Class A|1.0.0.0|127?.0.0.0|8| |Class B|128.1.0.0|191.255.0.0|16| |Class C|192.0.1.0|223.255.255.0|24| |Class D(Multicast)|224.0.0.0|224.0.0.0|4| |Class E(不重要)|![](https://vignette.wikia.nocookie.net/evchk/images/e/ec/2471912.jpg/revision/latest/top-crop/width/360/height/450?cb=20171012125530 =250x)|![](https://vignette.wikia.nocookie.net/meme-battles/images/c/c5/Ricardo_Milos_transparent.png/revision/latest/scale-to-width-down/340?cb=20190824140733 =250x)|![](https://truth.bahamut.com.tw/s01/201911/d9070fa2ada92aefcee3530e05fdd486.JPG =250x)| - IPv4 CIDR - /多少 就是有多少個bit是network ID, 剩下的是 host ID - Longest-prefix matching: Router轉送的時候優先match遮罩長度最長的CIDR,可以用 binary trie 達成 - IPv6(都是CIDR) - Node-local: ::1, 就是127.0.0.1 - Link-local: fe80::/10, 用在同一個link內 - Global unicast: 2000::/3, 類似IPv4 public IP,全球爲一 - /64: - ![](https://i.imgur.com/y58Nl2U.png) - Interface ID 從 MAC address 以 EUI-64 填充之後得到 - EUI-64: MAC address拆一半,中間塞0xFFFE - Zone-index: - 因爲link-local開頭都是fe08,router會矇逼不知道往哪個interface送 - 所以有多個interface的時候後面會%zone-index - Windows: %數字 - Unix-like: %interface的名字 > 上課舉例 判斷所屬網路 ![](https://i.imgur.com/PsqgObN.png) 合併 ![](https://i.imgur.com/qvMr9pj.png) 分割 ![](https://i.imgur.com/VoQTqrj.png) >*分割區段二的 $(63)_2$ = 0011 1111 才對 > #### 小工具 https://www.calculator.net/ip-subnet-calculator.html [跨家](https://www.jannet.hk/zh-Hant/post/IP-Address-Version-4-IPv4/) ## ARP(Data Link layer) - Insecure : > it's a stateless protocol > 可以不用request就送ARP reply - Attack : 1. 可以對一台主機一直送假的ARP reply 2. 送假的ARP request/reply 3. 用假的資訊更新ARP cache table - Proxy ARP: - 可以讓多個子網共用一個network ID - Router代替另一個子網的host回應ARP request ## ICMP - Required part of IP - 通常用於返回的錯誤資訊給orginal source或是分析路由 - 只報告錯誤不會修正錯誤 ![](https://i.imgur.com/95NT2ok.png =500x ) - 沒有類似TCP/UDP的port number,所以所有送出ICMP_echo_request的proccess都能收到ICMP_echo_reply ## MTU - 最大傳輸單元Maximum Transmission Unit,縮寫MTU - IPv6的MTU通常為1500 - IPv6內建Path MTU Discovery,可在封包送出之前就先切割好封包,並附上封包編號header - IPv4遇到MTU問題時會在Router才做分割 ![](https://i.imgur.com/rusBnW7.png =200x) ## Ethernet frame ![](https://i.imgur.com/DTWaRb9.png) - Minmum lenght of payload: 46 bytes - Maximum lenght of payload: 1500 bytes - Frame type: - 0x0800: IP - 0x0806: ARP - Preamble, CRC * CRC放最後面的原因是放前面也不能算,那就收完資料再一起算 * Preamble是用於同步乙太網路與host 之 clock cycle * Preamble和CRC會被網卡加入/拿掉,cpu不用處理 ## IPv4 vs. IPv6 ||IPv4|IPv6| |:-:|:-:|:-:| |長度|32-bits|128-bits| |位址種類|unicast, multicast, boardcast|unicast, multicast, anycast| |Mapping|用ARP map MAC位址|用NDP map MAC位址| |Checksum|有|沒有| |特有|HLEN, Fragmentation Support|FlowLabel| |異名同構體(同素異形體)|ServiceType|TrafficClass| |異名同構體(同位素?)|TTL|HopLimit| |異名同構體(同分異構物)|Protocol|NextHeader| ### TCP 1. Congestion control 2. Flow control 3. Reliablility transmission ### UDP 1. Best-effort transmission 2. Connectionless ## DNS ![](https://i.imgur.com/WZhb0YC.png =300x) ### Security * DDoS * DNS Flood * DNS Amplification Attack ## 考古題 ### 2019 ![1](https://i.imgur.com/RQeg1dT.png) - 看上面 ![2](https://i.imgur.com/F7dFfwc.png) ![2a](https://i.imgur.com/AxjLroi.png) - destination MAC: ff:ff:ff:ff:ff:ff(這是因為廣播地址是這個) - source MAC: MAC~E~ - Sender IP: IP~E~ - Sender MAC: MAC~E~ - Target IP: IP~D~ - Target MAC: 0:0:0:0:0:0(這是因為不知道 所以空著) ![2b](https://i.imgur.com/9WVZWhv.png) - destination MAC: MAC~E~ - source MAC: MAC~P4~ - Sender IP: IP~C~ - Sender MAC: MAC~P4~ - Target IP: IP~E~ - Target MAC: MAC~E~ ![2c](https://i.imgur.com/bQtBTI2.png) - Src MAC: MAC~R2~ - Dst MAC: MAC~C~ - Src IP: IP~A~ - Dst IP: IP~C~ ![2d](https://i.imgur.com/MeSD0hS.png) - Src MAC: MAC~R2N~ - Dst MAC: MAC~R1N~ - Src IP: IP~C~ - Dst IP: IP~A~ ![2e](https://i.imgur.com/npfaM8r.png) - Src MAC: MAC~P3~ - Dst MAC: MAC~C~ - Src IP: IP~E~ - Dst IP: IP~C~ ![2f](https://i.imgur.com/z8XFbTd.png) - C - Src MAC: MAC~R2~ - Dst MAC: MAC~C~ - Src IP: **IP~R1N~** - Dst IP: IP~C~ - D - Src MAC: MAC~R2N~ - Dst MAC: MAC~R1N~ - Src IP: IP~C~ - Dst IP: **IP~R1N~** ![3](https://i.imgur.com/HvZBeH6.png) - a. 30.0.0.6 - b. 30.0.0.6 - c. deliver directly - d. deliver directly ![4a](https://i.imgur.com/CNqT6NZ.png =600x) ![](https://i.imgur.com/2gMw7BJ.png) ![4b](https://i.imgur.com/fMJ4LNP.png =600x) * Loopback -> ::1 * Link-Local -> fe80::/10 * Global -> cooooooooooooooool ![](https://i.imgur.com/IkQgfFl.png =500x) ![5](https://i.imgur.com/zPJTNqO.png) >(窩不是很確定) 最一開始沒有任何人執行ICMP echo reply的函式,因此最一開始無法藉由echo request得到任何回應 ![6](https://i.imgur.com/GVprp2z.png =600x) >可以隨便送別人尋找Router的ARP Reply,讓其他人以為你是Router,造成別人無法正常連上網路 ![7](https://i.imgur.com/4Zu7Tiw.png =600x) ![](https://i.imgur.com/llVCOQB.png) * Attack : - DNS hijacking - 將使用者導向不存在的頁面 ### 疑難雜症 - 105 2.(b) ![](https://i.imgur.com/kop3WCW.png) > 第二題 140.127.208.0/23 > > 所以140.127.209.0/24是跟140.127.208.0/24 merge成140.127.208.0/23的嗎 > > 是ㄅ > > 瞭 :100: - ![](https://i.imgur.com/khnYnN0.png) > ( a ) > - ARP: 以廣播發出ARP request,同一個broadcast domain下的host收到之後如果是自己就回傳ARP response > - ICMP: > ![](https://i.imgur.com/IvTK8p8.png) > > ( b ) 不行,ARP request無法跨boradcast domain > ( c ) 可以,destination mac address填FF:FF:FF:FF:FF:FF就好 - ![](https://i.imgur.com/oABvQ95.png) >(a) 255.255.255.255, FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF >(a) 127.0.0.1, ::1 >(b) IPv4 not fixed , IPv6 64+64