Fw: [心得] 網路程式設計 交大 吳毅成
※ [本文轉錄自 candog 信箱]
作者: candog.bbs@bbs.cs.nthu.edu.tw ("FireBolt")
標題: [心得] 網路程式設計 交大 吳毅成
時間: Wed Feb 15 01:38:22 2017
作者: b0690151 (wingzero) 站內: P_wingzero
標題: [情報] 網路程式設計 交大 吳毅成
時間: 2013/02/07 Thu 22:38:43
課名:網路程式設計 Network Programming
科號:交大 IOE5015
老師:交大 吳毅成
學分:3
課本:Unix Network Programming, W. R. Stevens.
Internetworking with TCP/IP VolIII (BSD Socket Version), Comer and Steve
Building Internet Firewalls, Chapman and Zwicky
課別:交大 資工所選修 網工所六選二
涼度:☆
甜度:★★☆
P.S. 由於小弟大學非資工系 如果是資工背景或coding能力很強者
這門課涼度甜度都會提高許多
涼度:★★
甜度:★★★★
建議先修課程:作業系統 計算機網路概論 C/C++ 對Unix環境不陌生
課程內容\簡介:
列一下內容 這門課的主要學習都在project上
===Syllabus + Introduction
===Unix Programming
Interprocess communication
Shared memory (after Concurrent servers)
===Network Primer
===Berkeley Socket
Socket Programming Paradigms
Iterative Servers
Concurrent Servers
Single-Process Concurrent Servers
Multi-services Servers
Concurrent Clients
Server issues
===Internet and Distributed Information Systems
HTTP, CGI
Winsock and AsyncSock
Thread vs. Select
FastCGI, Cookie, I18n
Internationalization
===Firewalls
Security
Bastion
Filtering
Proxying
Services
===NAT and Hole Punching
===Remote Procedure Call 本學期未cover
Sun RPC, DCE RPCm
RMI, Corbam
Web servicesm
上課方式:
上課講解投影片為主
偶爾會在黑板上畫一一些例子 建議是能用筆抄下
個人不太適應老師上課的音調及敘述方式 有點平淡 沒甚麼起伏
加上老師講話有一點快 如果精神沒集中的話就有點像在聽White Noise
不過 老師會在上課中強調某些觀念 期末必考 或 很重要
聽到的時候都會回神一下 但大部分狀況老師都是講完後才會強調 這很重要
所以就算回神了也沒甚麼用XDD
上課的投影片和課本是到交大資工的影印室列印
個人建議是要印課本(Unix Network Programming)
投影片大都是標題而已 如果上課沒聽清楚 複習的話看不出什麼
課本介紹的算相當完全 老師大致上也是把課本的敘述講一次在講點經驗分享
所以如果上課吸收不良的話 看課本相當有幫助
考試作業型態:
本課程的重點 Project 基本上時間是兩個禮拜
也差不多是要花兩個禮拜...本學期在P1 P2各延一個禮拜DEADLINE
之後老師說已經之前已經用了兩個禮拜 之後不會再延期
一開始會有spec 但過了一陣子之後會出 Detail spec
不少東西會在Detail spec中才會講清楚 這是比較討厭的地方
然後要隨時注意課程討論區 畢竟同一份spec大家解讀也不一樣
請看討論區裡助教的最後定義...不然就是白做
所以DEADLINE前就算做完了 討論區有新文最好還是看一下...
1HW (手寫) 8%
課本上的一段程式碼 兩個Process 存取同一個檔案
因為沒有做Lock Unlock 造成執行結果不如預期
寫出可能的各種原因 是在哪幾行造成Race condition
4 Project (coding) 74%
主要都是寫Server client部分都用telnet
Project #1: Remote Access System (ras). : 22%
1份程式 網路上有學姊的介紹 大致相同 每年都會小改一點spec
http://www.wretch.cc/blog/buster1013/13266244
主要在pipe fork 已經指令parse和資料結構的設計
Project #2: remote working ground (rwg) : 21%
2份程式
http://www.wretch.cc/blog/buster1013/13353273
主要在select FIFO signal 使用
Project #3: Remote Batch System (RBS): 18%
3份程式
http://www.wretch.cc/blog/buster1013/13433464
主要是select nonblocking處理 還有接送不完全的處理
Winsock 由於Winsock 視窗程式不是平常會碰到的
就算有給樣板還是很難懂
Project 3 應該算最崩潰的一次吧= =
寫得最多 但之前兩次都有人喊延期 所以之後沒得延
P4: 13%
2份程式 實作Socks 4 Server
http://www.openssh.com/txt/socks4.protocol
以及把Project 3 CGI改成可以連Socks 4 Server
比起前面三個project算是比較簡單的一份
每個Project 環環相扣 前面的寫不出來後面就等者GG
後面的Project 都會用到前面的Project
正面來看是覺得作業都沒有白寫
反面來看就是沒有重開機的機會LOL (放掉一次之類的...)
Project是一次比一次多 一次比一次難
請不要聽信其他謠言XD
配分比例就是看分數調出來的
1 Final Exam (滿分110) 22%
老師期末會給一張期末必考的主題和前一年的考古題
就回去翻課本找答案 幾乎全部都可以在課本上找到
Firewall的佔很大一部分 印的課本上沒有
是在這本
Building Internet Firewalls, Chapman and Zwicky
網路上有網頁版 課文就講得很清楚
基本上不用擔心 好好準備分數都有
但是會有手寫CODE的部分 大概就是Project中的小片段
可能就要考古題的題目拿先寫一下
HTTP Socks4 的部分就直接看Protocol 相關的部分
Project 分數沒拿好的要好好把握期末
老師的喜好、個性:
上課都會喝飲料XD? 這門課跟老師的互動不多
與其要問老師的個性 不如問助教的個性XD?
畢竟這門課七成的分數都是助教DEMO給分(改考卷作業也是助教改...)
回答問題也大多是助教
但助教應該不會年年一樣就是了
下課常有同學會問老師問題 老師很樂於回答 常常講到上課
這學期有沿過兩次project期限 期末補DE的打折比率也有上升
所以課業上有問題還是可以跟老師反應
給分:
可以看到project占了70%左右的分數
project的分數都是現場demo出來的
跑公開測資 隱藏測資 但即使都通過也只會拿到七十分左右
有30分是現場改code 助教會開一些小功能給你改
有限時!! 通常是十分鐘
時間內改完30分全拿 然後大概再十分鐘就會decay到0分
這就看個人造化了.... 如果你反應快 可能都不是甚麼問題
但如果反應不快或容易鬼打牆 通常就會超過時間
如果覺得這樣很OK的話 這可以說是送你的分數 爽爽拿
但如果像我一樣遲鈍的話
就會覺得這30分超整人= = 每次改幾乎都Timeout
花時間寫的project測資幾乎都過 但分數就是不好看
如果改不出來的話...助教還會懷疑這code是不是你寫的...
最後期末會有大補DEMO 但分數會打八折(往年是七折)
如果都有寫好 整體分數不會難看 但真的不能叫甜
因為都是血淚換來的
但有人原始分數就破百 可見強者是無處不在的...
研究生六十分以上的會給七十分 其他小調一分
給加簽嗎?
來者不拒
一開始教室坐滿滿 隨學期時間經過慢慢流失 最後大概到一半少一點
成績分布:
23 W
4 0~10
2 10~20
4 20~30
1 30~40
5 40~50
2 50~60
1 60~70
27 70~80
24 80~90
32 90~100
這門課是出名的花時間 要修前要想清楚...
交大的二退期限是期末考前一兩個禮拜
但清大大概是第一次期中考之後一點
不能最後發現苗頭不對再登出XD?
千萬不要單純的只是對網路程式有興趣去修 會很累= =
而且老師強調的比較偏底層系統程式的部分
如果是想修很實作的課程 而且很願意花時間CODING
時間上也沒有問題的話 這門課是個不錯的選擇
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw>
◆ From: b0690151 @ 114-25-116-27.dynamic.hinet.net
b0690151 於 2013/02/07 Thu 23:04:22 從 114-25-116-27.dynamic.hinet.net 修改
△ urbanboy:推~:D 02/07 23:59arhi
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: candog (140.114.206.139), 02/15/2017 13:05:38