2008年7月23日 星期三

Teaching Assistant Task!!!

Compile cnaiapi


Windows:
(說在前頭。Visual studio express version要用Windows SDK真的有夠麻煩…
用正式版的就不用這麼麻煩了)
要用winsock2.h要和ws2_32.lib連結(在system32裡)
Project setting中設定library path
or 加入#pragma comment(lib,"ws2_32.lib")

記得設定路徑
tools->options->VC++ directories->(Show directories for)include files
c:\windows\system32

可以安裝Powertoy 的open command line here工具,在操作上會比較方便。


請先build library, 再build其它檔案,不然一定出錯。

Q:"invalid preprocessor command 'include_next'"
A:

Linux/FreeBSD:
Under compile_linux directory

請詳閱Readme並「按步就班」…XD
  • make cnaiapi.o
  • make apps
---
FreeBSD:
用gmake取代make
--
當助教要認真,不要亂回答問題,也不要用自以為專業的詞解釋給人聽,以免讓人失去對網路的熱愛。
7/23
--
試著練習寫比較複雜的Makefile
8/4

2008年7月18日 星期五

Pidgin Plugin

cited:
FourDollars BlogMSN
-----
protocol for Pidgin

http://code.google.com/p/msn-pecan/ 這個計劃主要在專注在 Pidgin 當中對於 MSN 功能的改善
像是離線訊息、個人訊息之類的
Debian/Ubuntu/Gentoo 的使用者可以參考 http://code.google.com/p/msn-pecan/wiki/HowToInstall 直接安裝來使用就可以了
所以喜歡使用 Pidgin 的使用者還是可以直接享受到 MSN 的一些新功能喔~ :D

About DCCP

DCCP(Datagram Congestion Control Protocol)
  • message-oriented
  • transport layer protocol
Adopted from RFC 4340


Design Rationale(設計原理


One DCCP design goal was to give most streaming UDP applications
little reason not to switch to DCCP, once it is deployed.
DCCP 其中一個設計目標就是讓大多數使用UDP協定的應用程式,在DCCO建置抵定後,都沒有理由不採用之。

To facilitate this, DCCP was designed to have as little overhead as
possible, both in terms of the packet header size and in terms of the
state and CPU overhead required at end hosts.
為了達成此目標,設計DCCP協定時便考量了如何儘可能地減少封包表頭大小、狀態數目和終端主機的CPU荷負。

Only the minimal necessary functionality was included in DCCP, leaving other
functionality, such as forward error correction (FEC), semi-
reliability, and multiple streams, to be layered on top of DCCP as
desired.

Different forms of conformant congestion control are appropriate for
different applications. For example, on-line games might want to
make quick use of any available bandwidth, while streaming media
might trade off this responsiveness for a steadier, less bursty rate.
(Sudden rate changes can cause unacceptable UI glitches such as
audible pauses or clicks in the playout stream.) DCCP thus allows
applications to choose from a set of congestion control mechanisms.
One alternative, TCP-like Congestion Control, halves the congestion
window in response to a packet drop or mark, as in TCP. Applications
using this congestion control mechanism will respond quickly to
changes in available bandwidth, but must tolerate the abrupt changes
in congestion window typical of TCP. A second alternative, TCP-
Friendly Rate Control (TFRC) [RFC3448], a form of equation-based
congestion control, minimizes abrupt changes in the sending rate
while maintaining longer-term fairness with TCP. Other alternatives
can be added as future congestion control mechanisms are
standardized.

DCCP also lets unreliable traffic safely use ECN. A UDP kernel
Application Programming Interface (API) might not allow applications
to set UDP packets as ECN capable, since the API could not guarantee
that the application would properly detect or respond to congestion.
DCCP kernel APIs will have no such issues, since DCCP implements
congestion control itself.

We chose not to require the use of the Congestion Manager [RFC3124],
which allows multiple concurrent streams between the same sender and
receiver to share congestion control. The current Congestion Manager
can only be used by applications that have their own end-to-end
feedback about packet losses, but this is not the case for many of
the applications currently using UDP. In addition, the current
Congestion Manager does not easily support multiple congestion


control mechanisms or mechanisms where the state about past packet
drops or marks is maintained at the receiver rather than the sender.
DCCP should be able to make use of CM where desired by the
application, but we do not see any benefit in making the deployment
of DCCP contingent on the deployment of CM itself.

We intend for DCCP's protocol mechanisms, which are described in this
document, to suit any application desiring unicast congestion-
controlled streams of unreliable datagrams. However, the congestion
control mechanisms currently approved for use with DCCP, which are
described in separate Congestion Control ID Profiles [RFC4341,
RFC4342], may cause problems for some applications, including high-
bandwidth interactive video. These applications should be able to
use DCCP once suitable Congestion Control ID Profiles are
standardized.