---
title: Lab Meeting Minutes 2023/11/24
tags: lab_meeting
---
> Outline
> [TOC]
---
# PERAL Lab Meeting
- 時間:112 年 11 月 24 日 20:00
- 地點:線上
- 線上會議連結 : [Online](https://meet.google.com/zfi-zmnc-qfw)
- 出席者:吳坤熹老師、謝萬霖、劉怡君、田蕙瑜、沈家正、梁宇騰、紀見如、劉冠伶、林大智、繆亭霄、蘇翊荃、陳嘉璐、陳品妤、陳姿綾、陳姿澖
- 會議主題:WebSocket [(PDF)](http://ms15.voip.edu.tw/~jiazheng/files/The_WebSocket_Protocol.pdf) [(PPTX)](ms15.voip.edu.tw/~jiazheng/files/The_WebSocket_Protocol.pptx)
- 主講者: 沈家正
- 主記: 梁宇騰
## 會議內容
1
讓 client 跟server可以互動
2
polling:定期發送request給server,但會有過多overhead
:::info
**老師補充 polling 用途**
peer-to-peer vs client-server
有新的資訊會 queue 在 server 那邊,要等 client 來拿才會給他
舉例 interval 10s
best case: instant
worst case: 10s
平均等5秒會從server收到訊息
interval 弄太短,沒資訊更動也佔流量
:::
WebSocket:雙向雙工的連線,single TCP不需要再開其他connection,最少2byte
3
可以自由地使用雙攻
4
用http handshake
5
6
ws在port80,wss在port443,
7
多了一個upgrade:websocket,這樣可以使用http的功能來連線,version規定為13,origin:代表到哪個瀏覽器才能使用websocket,最後兩行為擴展功能。
8
轉換protocol,回應支援哪個protocol
9
確保雙方都知道這個protocol,
10
fin:代表
rsv:保留用的
opcode:解讀palyload
mask:代表有沒有mask,混淆playload data,讓中間人無法解讀與修改,
mask-key:有mask時會啟用,
11
12
對方如何解讀資訊,ping pong的用途:互動時可以確定對方是否還在線。
13
在不知道訊息有多大的時候,就可以將訊息送出,fin bit為1代表訊息傳完了,
14
傳完data後就可以傳closehandshake,雙方都可以主動傳close
15
安全考量,2011年定稿,origin:不讓隨意的網站都能使用websocket,不讓淺在的javascirpt攻擊。
masking:可以保護cache,不被他人串改資料,。
TLS:讓可以解讀websocket playload的server,也無法解讀,進一步加密。
16
應用:即時聊天,多人遊戲,儀表板。
socket.io:方便開發者使用的library,支援很多功能。
17
---
### 建議&問題
1. [name=Louise]p.11 masking是如何做到的,有沒有實際的例子?
Ans: [name=] RFC 6455 Section 5.7 example:利用[cyberchef](https://michaeltri.github.io/CyberChef/)轉換成2元字串,從key的第一個byte開始計算xor顯示結果為hello。
2. [name=Ellie]WebSocket在那邊等是否也會造成overhead,他的優勢是什麼?
Ans: [name=] 傳輸會造成更多的overhead
老師補充:每傳送一個request,都要three-way handshake一次,而websocket不需要每次都handshake。
3. [name=Ellie]p13什麼是fragmentation?為什麼要使用它?
Ans: [name=] 可以把一個訊息切成很多小部分。資訊量大時可以分割,不用等到整個資訊都完整就可以傳送出去。
[name=Solomon] https://en.wikipedia.org/wiki/IP_fragmentation
4. [name=]p13和ipv4的fragmentation1不一樣,那在websocket的作用是什麼
Ans: [name=] 還沒搞懂
5. [name=]要如何知道fragmentation後封包的順序?
Ans: [name=]tcp本身就會造順序
6. [name=Yukino]p6利用這頁的例子打上去,但還是https
Ans: [name=] 要網站本身有支援才能,可以去 slither.io 試試。或是有人提供 [Echo Server](https://blog.postman.com/introducing-postman-websocket-echo-service/)
7. [name=Ashley]有沒有browser,是本來就可以用websocket的?
老師補充:五大browser都支援websocket,但做法不是輸入網址,而是通過javascript呼叫api
Ans: [name=]webbrowser本身就是來開網頁的,可以利用google找websocket的client,但也是用http呈現。
8. [name=Ashley] 如果雙方都沒有發close會不會自動關掉
Ans: [name=] 不知道
9. [name=August] P.17 無法理解用 WebSocket 為何對你原本想做的研究有幫助?
Ans: [name=] 這樣就不必 distribute 一個執行檔,每個 client 連上我的測試網頁,就可以建 socket 進行測試。
10. [name=Angela] 若 RFC 6455 是以 HTTP 來進行 handshaking,請問目前網頁大多限制 HTTP 連線的情況下,WebSocket 有甚麼應對方式?
目前多數使用HTTPS?
Ans: [name=]可以透過wss去解決。
11. [name=Phoebe] Give us a hands-on example so that we can understand how it works.
Ans: [name=]
12. [name=miller]rsv的作用是什麼?
Ans: [name=]保留用來使用extension,或你想做什麼都行
12. [name=Edgar] I like your example about full-duplex. p3改用long polling的話就可以改善overhead的問題。
Ans: [name=]但header的大小還是比較小。
14. [name=Edgar]p9為何是這個值?
Ans: [name=] [ What does "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" means in WebSocket Protocol](https://stackoverflow.com/questions/13456017/what-does-258eafa5-e914-47da-95ca-c5ab0dc85b11-means-in-websocket-protocol)
14. [name=Edgar]p13 fin與opcode是不是必須為0?
Ans: [name=]message可以被拆成很多frame,opcode是0代表需要繼續收封包。
老師補充:可以思考利用websocket可以幫到你什麼?
15[name=solomon]websocket只支援tcp那你該怎麼解決?
11. P.21 "verses" -> "versus" [name=Solomon]
verses 是 聖經《詩篇》 ;
versus (常略作vs.)才是「與……相對」的意思
## 待追蹤事項
1. [name=]光纖網路有聯繫但未回覆(如果來不及可以用明年計畫買)
- [name=Solomon] 找個人在文龍下週上課時去教室找他。
- 負責人 : Louise
3. 願望清單還未有人填(只有老師填)
## 臨時動議
1. ms15:/usrlocal/etc/sudoers 請檢視
2. ms15的目錄權限問題,希望每個project的負責人可以建立group,讓成員可以加入group, 有權限來管理目錄內的檔案。將負責每個project的成員放在不同group建立不同權限。
- 負責人 : Project的負責人
3. sop的管理,利用自己的帳號修改,就可以知道誰修改的。目前在實驗室的成員與畢業成員分成不同group。
- 畢業 group name:alumni
- 在學 group name:labmate
- 負責人 : Yukino
4. ms15 `/etc/motd`寫上現任管理者的 email,有機會升級 FreeBSD 版本
5. 裝新的一台ms16,資料區nfs共用
- 負責人 : Selena
6. ups設備採購調查,一台電源供應器500-600元,前三排各以配置一台1000va,最後一排配兩台800va,老師那邊配兩台800va (超過 2000 元要列財產清單;超過 10000 元要跑請購流程(最後時間為12終)),因此1000va改為800va並增加幾台。
- 負責人 : Phoebe
7. nas調查結果結果Ds423+ VS TS-433,選擇實驗室沒有的(2.5G TS-433)。
---
散會結束時間: 22:41