約 2,462,610 件
https://w.atwiki.jp/dtlog/pages/42.html
DTセル DT Cell DT自体を放出する、DTに感染した細胞群。
https://w.atwiki.jp/dtlog/pages/69.html
DTam DT Autonomic Machinery DTコンピュータ搭載の自立型ロボットの総称。無人兵器など概して戦闘用のものが多いが、人語を解するなどインターフェイスは充実している。
https://w.atwiki.jp/naobe/pages/21.html
ネットワークに戻る 目的 排他は無視して概略を追う。 UDPに対して拡張した機能を理解する。 フローコントロールの仕組み(TCPからどう改善されているか)を理解する。 UDTの特徴(www.mcs.anl.gov/~kettimut/pfldnet04.pptから抜粋) パケットのほとんどがMSSにパックされる 済み パケットベースのシーケンス番号作成 済み ACKは副シーケンス? パケット損失情報のフィードバック(NACK) タイマ 転送率制御、ACK,NACK, 再送タイマ転送率制御、ACKは、定期的にトリガ 済み NAKタイマは、再送が増加した時間間隔で届かなかったときに損失情報を再送するために用いる 済み 輻輳制御転送率ベースの輻輳制御パケット送信間隔を調節する 済み 定期的に起動される 済み 転送率制御の間隔は、10msecで一定(ACKの受信で起動する) 済み ウィンドウベースのフロー制御ackされていないパケット数を制限する 済み ACK受信ごとに起動される。 済み フロー制御がスロースタートを開始するTCPに似ているが、セッションの開始でのみ発生する 済み 転送率制御AIMD増加パラメータは、リンクキャパシティと現在の転送率に関連する。減少要因は1/9だが全ての損失イベントで減少するわけではない。 リンクキャパシティは、UDTの送信データからサンプリングしたパケットペアを用いて調査する。 済み16パケットごとのパケットが送信されて戻される?? 受信者は、パケットが到着したときの間隔からメディアンフィルタ(中間値)を用いてリンクキャパシティを求める 済み クライアント UDT socket api.cpp UDT socket CUDT socket CUDTUnited s_UDTUnited.m_bGCStatusが0かどうかの判定 api.cpp CUDTUnited startup() GCスレッド起動。m_bGCStatusをtrue CUDTUnited s_UDTUnited.newSocket(af, type); socketを作成して返す。 CUDTSocketをnew -- ns // コネクションごとのインスタンス CUDTをnew -- ns- m_pUDT // コネクションごとのインスタンス m_pCCFactory = new CCCFactory CUDTCC ; ns- m_Status = CUDTSocket INIT;//初期状態 ns- m_ListenSocket = 0; ns- m_pUDT- m_SocketID = ns- m_SocketID; ns- m_pUDT- m_iSockType = (SOCK_STREAM == type) ? UDT_STREAM UDT_DGRAM; ns- m_pUDT- m_iIPversion = ns- m_iIPversion = af; ns- m_pUDT- m_pCache = m_pCache;//UDT network information cache common.h,common.cpp m_Sockets[ns- m_SocketID] = ns // CUDTUnitedの中のマップに、作成したCUDTSocketを格納 return ns- m_SocketID UDT connect api.cpp connect(UDTSOCKET u, const struct sockaddr* name, int namelen)// UDTSOCKETはint CUDT connect(u, name, namelen); CUDTUnited s_UDTUnited.connect(u, name, namelen); CUDTSocket* s = locate(u);//内部で保管しているsocketを取得 core.cpp ((CUDTSocket*)s)- m_pUDT- open(); // CUDT* m_pUDT フィールド設定(CUDTのメンバ初期化。m_iPktSize, m_iPayloadSizeなど) m_pSNode = new CSNode; m_pRNode = new CRNode; common.cpp CTimer rdtsc(m_ullNextACKTime); // m_ullNextACKTimeに現在時刻(μsec)を設定 m_ullNextACKTime += m_ullSYNInt; // 次のack時刻を決定 +10msec 同様に、m_ullNextNAKTime、m_ullNextEXPTimeを決める。 updateMux(s- m_pUDT); CMultiplexer m;//マルチプレクサ m.m_pChannel = new CChannel(u- m_iIPversion);//チャネル設定 m.m_pChannel- open(addr); channel.cpp CChannel open(const sockaddr* addr) DGRAMソケット作成 getaddrinfo(NULL, "0", hints, res)// システムコール 自分自身のアドレスを求める bind(m_iSocket, res- ai_addr, res- ai_addrlen)// システムコール ソケットとアドレスをbind CChannel setUDPSockOpt() //受信バッファサイズ、送信バッファサイズ、タイムアウト、非ブロッキングモード設定 m.m_pChannel- getSockAddr(sa);//saにソケットのローカルアドレスを設定する CChannel getSockAddr(sockaddr* addr) m.m_iPortにローカルのポート番号を設定する m.m_pTimer = new CTimer; m.m_pSndQueue- init(m.m_pChannel, m.m_pTimer); queue.cpp CSndQueue init(const CChannel* c, const CTimer* t) CSndQueueにチャネル、タイマ、送信リストを設定 [[pthread]]_create( m_WorkerThread, NULL, CSndQueue worker, this)// 送信スレッド起動 CSndQueue worker(void* param) // スレッドとして起動 クローズするまで以下を永久ループ uint64_t ts = self- m_pSndUList- getNextProcTime();//次回実行時刻 uint64_t CSndUList getNextProcTime()//m_pHeap[0]- m_llTimeStampを返す。(初期値は0 CUDT sendでは1を設定 輻輳制御で値が変わる(pCC- onAck()参照)。) ts = 0 のとき self- m_WindowCondの条件が整うまで待ち ts 0 のとき 現在時刻 次回実行時刻ならば次回実行時刻まで待つ(probe OFFのときは送信間隔まで待つ) self- m_pSndUListからパケットを取得する。 self- m_pSndUList- pop(addr, pkt) 最初のノードからCUDT(u)を取得 最初のノードを削除 u- packData(pkt, ts) int CUDT packData(CPacket packet, uint64_t ts) common.h CSeqNo seqlen(const_cast int32_t (m_iSndLastAck),CSeqNo incseq(m_iSndCurrSeqNo)) CSeqNo incseq(m_iSndCurrSeqNo) m_iSndCurrSeqNoは乱数で決めたシーケンス番号-1。1追加。 m_iSndLastAck ウィンドウサイズ(m_iFlowWindowSizeとm_dCongestionWindowの小さい方) = m_iSndCurrSeqNo + 1 - m_iSndLastAckのとき(m_dCongestionWindowは、スロースタートでないときは16+RTT間の送信データパケット数に設定(pCC- onAck())。) つまり、前回のACK受信がRTTより前ならデータ送信しない(ACK送信間隔 10ms, RTT 100ms)-- 9個のACK損失 buffer.cpp m_pSndBuffer- readData( (packet.m_pcData),packet.m_iMsgNo) int CSndBuffer readData(char** data, int32_t msgno) 現在のブロック(先頭)のデータをdataにセット。メッセージ番号をmsgnoにセット。ブロック長を返す。 現在のブロックを次のブロックに設定 m_iSndCurrSeqNoを+1 packet.m_iSeqNo = m_iSndCurrSeqNo;//m_iSeqNo 初期値 0 16パケットごとにprobeをON m_pSndTimeWindow- onPktSent(packet.m_iTimeStamp);// packet.m_iTimeStamp 現在時刻 - 接続時刻(μsec) void CPktTimeWindow onPktSent(const int currtime) 最小間隔(m_iMinPktSndInt 初期値1sec)を更新(currtimeと前回送信時刻の差分と最小間隔の小さい方) 前回送信時刻にcurrtimeをセット tsにprobeのときは現在時刻を、probeでないときは現在時刻+送信間隔(m_ullInterval, 輻輳状態によって変わる)をセット m_ullIntervalはm_dPktSndPeriodに周波数補正したもの。m_dPktSndPeriodは、ACK受信、パケット損失で再計算する。 m_ullTargetTime = ts ts 0のとき insert_(ts, u); m_pHeap[m_iLastEntry] = n;//リストにCUDTを登録 m_pHeap[m_iLastEntry]とm_pHeap[m_iLastEntry/2]のm_llTimeStampを比較して時刻が逆順なら交換(ソート??) u- m_pSNode- n- m_llTimeStamp = ts//次回送信時刻 self- m_pChannel- sendto(addr, pkt);//ソケットから送信先を求めて送信する。 データ送信フォーマットは、送信フォーマット参照。 m.m_pRcvQueue- init(32, u- m_iPayloadSize, m.m_iIPversion, 1024, m.m_pChannel, m.m_pTimer); queue.cpp void CRcvQueue init(const int qsize, const int payload, const int version, const int hsize, const CChannel* cc, const CTimer* t) m_UnitQueue.init(qsize, payload, version); int CUnitQueue init(const int size, const int mss, const int version)//キュー作成 tempq = new CQEntry; m_pQEntry = m_pCurrQueue = m_pLastQueue = tempq; pthread_create( m_WorkerThread, NULL, CRcvQueue worker, this)//受信スレッド起動 CRcvQueue worker//スレッドとして起動 クローズするまで以下を永久ループ self- ifNewEntry()が0でない(CRcvQueueにCUDTが登録されている。CUDT connectで登録) 受信リストにコネクション登録 受信ハッシュにコネクション登録 self- m_pChannel- recvfrom(addr, unit- m_Packet)// channel.cpp int CChannel recvfrom(sockaddr* addr, CPacket packet) int res = recvmsg(m_iSocket, mh, 0);//受信 ヘッダ部、データ部をホストバイトオーダに変換。= packet(packet.m_nHeader, packet.m_pcData)に結果を格納。 u = self- m_pHash- lookup(id)//受信パケットの宛先コネクションIDから一致する送信コネクションを求める データ受信のとき u- processData(unit); int CUDT processData(CUnit* unit) window.cpp m_pRcvTimeWindow- onPktArrival(); m_piPktWindowに(現在時刻-前回受信時刻をセット)。受信ごとに位置を変えてセット(ローテーションする) プローブパケットペアのとき(シーケンス番号の下位4bitが0x0とシーケンス番号の下位4bitが0x1) m_piProbeWindowにプローブパケットペアの受信時刻の差をセット。受信ごとに位置を変えてセット(ローテーションする。 パワーポイントの説明では、パケットペアは接近したパケット。このロジックでは接近していない?? int32_t offset = CSeqNo seqoff(m_iRcvLastAck, packet.m_iSeqNo);//m_iRcvLastAck 前回ACK送信時の受信シーケンス+1 m_pRcvBuffer- addData(unit, offset) m_pUnitのm_iLastAckPos + offset位置にunit(受信パケット)格納 受信シーケンス 前に受信したパケットのシーケンス番号 + 1 のとき//損失パケットあり 損失リストに(前回受信パケットシーケンス番号+1 ~ 受信パケットシーケンス番号-1)を挿入 sendCtrl(3, NULL, lossdata, 1(損失パケット数 1) or 2 (損失パケット数 2以上)// NAK送信 損失パケット数 1のとき ctrlpkt.pack(3, NULL, (int32_t *)rparam + 1, 4);//ctrlpktにデータセット 損失パケット数 2以上のとき ctrlpkt.pack(3, NULL, (int32_t *)rparam, 8); m_pSndQueue- sendto(m_pPeerAddr, ctrlpkt);// NAK送信 NAK伝送フォーマットは、伝送フォーマット参照 コントロール受信のとき u- processCtrl(unit- m_Packet); m_iEXPCount = 1;// Expiration counter タイムアウトカウンタ? ACK受信 or NACK受信 or 正常ACK受信直後?のとき 次回タイムアウト時刻 = 現在時刻 + 100msec ACKを受信したとき 受信パケットがLightAckのとき//LightAckを送るケース? draft 受信したAckがタイマーによるものでないとき。 ACKの受信シーケンス番号が増加したとき m_iFlowWindowSizeからACKの受信シーケンス番号の増分を減じる。 意味?? m_iSndLastAckにACKの受信シーケンス番号をセット 終了 現在時刻 - 前回AckAck受信時刻 10msecのとき AckAck送信 前回AckAck受信時刻に現在時刻セット ACKの受信シーケンス番号が、前回受信のACKの受信シーケンス番号より増加したとき m_iFlowWindowSizeに通信相手の利用可能バッファサイズをセット(m_pRcvBuffer- getAvailBufSize()) m_pSndBuffer- ackData(offset);// void CSndBuffer ackData(const int offset) m_pFirstBlockの位置をoffsetずらす。送信バッファサイズをoffset分減少する。m_pFirstBlockは、損失があるときの送信バッファ読み込みに使う。?? 送信ロスリストからACK受信シーケンス-1を削除(ACKがきたから送信終了) pthread_cond_signal( m_SendBlockCond); m_pSndQueue- m_pSndUList- update(this, false); m_iRTTVar = 約RTT/2*3/4//相手のRTTも計算に入る。 m_iRTT = (7*RTT + rtt)/8 // RTT 自分のRTT, rtt 相手のRTT m_iRTTを実測で反映している箇所がない?? m_pCC- setRTT(m_iRTT);//UDTCCのRTTを更新 m_ullMinEXPInt(最小タイムアウト時間?)にm_iRTTの約3倍を設定する。 m_iDeliveryRate = (m_iDeliveryRate * 7 + 受信ACKのリンクキャパシティ(pps)) / 8 m_iBandwidth = ( m_iBandwidth * 7 + 受信ACKの帯域) / 8 CCUDTのm_iRcvRateにm_iDeliveryRate、m_iBandwidthを設定する m_pCC- onACK(ack); void CUDTCC onACK(const int32_t ack) スロースタートのとき(初期はtrue) m_dCWndSizeをACK受信シーケンス番号の増加分だけ追加する。//m_dCWndSize:初期値 16 m_dCWndSize 最大ウィンドウサイズ(値?)のとき スロースタートOFF ACK受信転送率があるとき m_dPktSndPeriod = 1000000.0 / m_iRcvRate;//単位 μsec m_iRcvRate ACK受信転送率(pps) ACK受信転送率がないとき m_dPktSndPeriod = m_dCWndSize / (m_iRTT + m_iRCInterval);// シーケンス番号増加b分/時間 終了 スロースタートでないとき // 16 + ラウンドトリップタイム期間に送ったパケット数。 m_iRTT 100000(μsec), m_iRCInterval 10000(μsec) m_dCWndSize(ウィンドウサイズ) = m_iRcvRate / 1000000.0 * (m_iRTT + m_iRCInterval) + 16; 損失があるとき 損失なしに設定 終了 m_dPktSndPeriodを帯域(ACKの帯域)を使って補正(詳細はdraft 7.2参照)//m_dPktSndPeriodはデータパケット送信間隔 m_ullInterval(転送間隔)にCUDTCCで計算したm_dPktSndPeriodを設定 m_dCongestionWindowにCUDTCCで計算したm_dCWndSizeを設定 u- checkTimers(); m_ullInterval設定(最小は、実績の最短送信間隔) m_dCongestionWindow設定(初期値 16) 現在時刻 次回ACK時刻 || ACK回数 = 受信パケット数 sendCtrl(2);//ack送信 core.cpp 損失パケットなしのとき m_pRcvBuffer- ackData(acksize);// acksizeは、受信シーケンス番号と前回ACK時の受信シーケンス番号との差 m_iLastAckPos, m_iMaxPos更新 common.cpp CTimer triggerEvent(); pthread_cond_signal( m_EventCond);// pthread_cond_signal( m_RecvDataCond);// recvにイベント送信 ACKシーケンス番号をincrement 現在時刻 - 前回ACK送信時刻 同期時間(m_ullSYNInt 10msec)のとき ACK送信データにパケット受信速度、帯域追加 ctrlpkt.pack(2, m_iAckSeqNo, data, 24); CPacket pack(const int pkttype, void* lparam, void* rparam, const int size) m_pSndQueue- sendto(m_pPeerAddr, ctrlpkt);//ACK送信 m_pACKWindow- store(m_iAckSeqNo, m_iRcvLastAck);// void CACKWindow store(const int32_t seq, const int32_t ack) 次回ACK送信時刻 = 現在時刻 + ACK送信間隔(10msec) ACKパケットフォーマットは伝送フォーマット参照 self- m_pRcvUList- update(u);// m_vMultiplexer.insert(m_vMultiplexer.end(), m);//vectorにmを登録。CUDTUnitedのメンバ。 u- m_pSndQueue = m.m_pSndQueue;//コネクションごとに送信キュー設定 u- m_pRcvQueue = m.m_pRcvQueue;//コネクションごとに受信キュー設定 CUDTSocket *s- m_Status = CUDTSocket OPENED; // s- m_pUDT- connect(name); // CUDT core.cpp void CUDT connect(const sockaddr* serv_addr) CSndQueue* m_pSndQueue- sendto(serv_addr, request); // HandShakeパケットをサーバに送信 queue.cpp m_pRcvQueue- recvfrom(m_SocketID, response) // レスポンス受信 // 受信データによってパラメータ更新 m_iMSS = res- m_iMSS; m_iFlowWindowSize = res- m_iFlightFlagSize; m_iPktSize = m_iMSS - 28; m_iPayloadSize = m_iPktSize - CPacket m_iPktHdrSize; m_iPeerISN = res- m_iISN; m_iRcvLastAck = res- m_iISN; m_iRcvLastAckAck = res- m_iISN; m_iRcvCurrSeqNo = res- m_iISN - 1; m_PeerID = res- m_iID; //データ作成 m_pSndBuffer = new CSndBuffer(32, m_iPayloadSize);//32 ブロックの個数, m_iPayloadSize MSS - 28 - Header (1500 - 28 -16) m_pRcvBuffer = new CRcvBuffer(m_iRcvBufSize, (m_pRcvQueue- m_UnitQueue)); // after introducing lite ACK, the sndlosslist may not be cleared in time, so it requires twice space. m_pSndLossList = new CSndLossList(m_iFlowWindowSize * 2); m_pRcvLossList = new CRcvLossList(m_iFlightFlagSize); m_pACKWindow = new CACKWindow(4096); m_pRcvTimeWindow = new CPktTimeWindow(16, 64); m_pSndTimeWindow = new CPktTimeWindow(); // CUDTへ輻輳制御登録 CCC *m_pCC = m_pCCFactory- create();// new CUDTCC。 CUDTのm_pCCに輻輳制御登録 void CUDTCC init() m_iRCInterval = m_iSYNInterval;//10000 UDT Rate control interval setACKTimer(m_iRCInterval);//10000 ACKを10msecおきに送信 m_iACKPeriodに設定 m_ullInterval - 1 m_dCongestionWindow - 16 s- m_Status = CUDTSocket CONNECTED; s- m_pUDT- m_pSndQueue- m_pChannel- getSockAddr(s- m_pSelfAddr);// // register this socket for receiving data packets m_pRcvQueue- setNewEntry(this);//受信キューに登録 HandShakeの伝送フォーマットは、伝送フォーマット参照。 タイムアウトチェック、応答パケットタイプチェック、ランデブー??処理 応答パケットの値によってウィンドウサイズ、最大セグメントサイズなどの通信パラメータを更新(negotiation) データ構造(送受信データ用の領域など)を準備 UDT send api.cpp UDT send(UDTSOCKET u, const char* buf, int len, int flags) CUDT send(UDTSOCKET u, const char* buf, int len, int) CUDT* udt- send((char*)buf, len) core.cpp CUDT send(const char* data, const int len) バッファ残りサイズ:送信バッファサイズ(8192バイト) - 使用済みブロック数 * MSS sizeはバッファ残りサイズとlenの小さいほう。 CSndBuffer* m_pSndBuffer- addBuffer(data, size);//送信バッファにデータを挿入 buffer.cpp void CSndBuffer addBuffer(const char* data, const int len, const int ttl, const bool order)// ttl -1, order false dataをセグメントで分割して複数のブロック作成、m_pLastBlockにブロック追加。 ブロックには、メッセージ番号(m_iMsgNo)を設定する。 最初のブロックは、0,1ビットが10。最後のブロックは、0,1ビットが01。残りのビットは全ブロックで共通。 次の送信でメッセージ番号はincrementする。 m_iCountに追加したブロック数を加える。 m_pSndQueue- m_pSndUList- update(this, false);//送信キューにコネクション追加 queue.cpp void CSndUList update(const CUDT* u, const bool reschedule) insert_(1, u); void CSndUList update(const CUDT* u, const bool reschedule) 送信リストの最終位置更新(m_iLastEntry) 送信リストにCUDT登録 既に登録があったときの処理不明(時刻判定して1/2位置との交換。ソート??) 最初の送信のときは、送信スレッドのwaitを解除 送信は、UDT connectで作成したスレッドで送信。 UDT recv UDT close サーバ UDT bind UDT listen UDT accept 伝送フォーマット HandShake ヘッダ部 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Type(0) | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Additional Info | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time Stamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Socket ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ データ部 struct CHandShake { int32_t m_iVersion; // UDT version int32_t m_iType; // UDT socket type int32_t m_iISN; // random initial sequence number int32_t m_iMSS; // maximum segment size int32_t m_iFlightFlagSize; // flow control window size int32_t m_iReqType; // connection request type 1 regular connection request, 0 rendezvous connection request, -1/-2 response int32_t m_iID; // socket ID int32_t m_iCookie; // cookie uint32_t m_piPeerIP[4]; // The IP address that the peer's UDP port is bound to }; ACK ヘッダ部 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Type(2) | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACK packet seq. no. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Socket ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ データ部(int32_t) data[0] = m_iRcvLastAck;//受信データのシーケンス番号 data[1] = m_iRTT;//ラウンドトリップタイム(μsec) data[2] = m_iRTTVar;// RTT variance(μsec) data[3] = m_pRcvBuffer- getAvailBufSize();//advertised flow window size (packets) data[4] = m_pRcvTimeWindow- getPktRcvSpeed();//link capacity (packets per second) data[5] = m_pRcvTimeWindow- getBandwidth(); m_pRcvTimeWindow- getPktRcvSpeed()の内容(CPktTimeWindow getPktRcvSpeed()参照) 16個のデータパケット受信間隔からメディアンフィルタを通してppsを求める ・16個の中間の2個の平均を求める ・求めた値の8倍を最大値、1/8を最小値とする ・最大値、最小値の間にあるデータの平均、個数を求める ・個数が8個以上なら求めた値の逆数をppsとする。 m_pRcvTimeWindow- getBandwidth()の内容(CPktTimeWindow getBandwidth()参照) m_pRcvTimeWindow- getPktRcvSpeed()と同様。 16個のパケットペア(16個おきに発生)間の受信間隔からメディアンフィルタを通じて求める。 bpsではなくてpps。 NAK ヘッダ部 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Type(3) | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Socket ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ データ部(int32_t) CSeqNo incseq(m_iRcvCurrSeqNo) | 0x80000000; 前回受信シーケンス番号 損失パケット2個以上のとき CSeqNo decseq(packet.m_iSeqNo); 受信シーケンス番号 データ ヘッダ部 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0| Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ff |o| Message Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time Stamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Socket ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sequence Number パケット単位でincrement Message Number UDT send()単位でincrement bit ff 11 solo message packet 10 first packet of a message 01 last packet of a message bit o 0 in order delivery not required // in order deliveryとは? 1 in order delivery required データ部 送信データ(最大サイズ MSS 約 1500バイト)をバイナリで羅列。 アクセス数 -
https://w.atwiki.jp/asagaolabo/pages/5188.html
pop'n music Sunny Park original soundtrack vol.2 【ポップンミュージック サニーパーク オリジナルサウンドトラック vol.2】 pop'n music Sunny Park original soundtrack vol.2 CDデータ 発売日 デジタル配信版 全曲リスト 関連項目 CDデータ 発売日 発売日 2014年3月xx日 品番 仕様 12cmCDアルバム×2 定価 xxxx円(税込) 初回限定版封入特典 スペシャルポップンミュージックカード(【まいにち♪みんなと♪サニーパーク】)??? 初回限定版購入特典 ??? 前作「Fantasia」から続く公募イベントや解禁イベントでの曲数増加に伴い、シリーズでは初めてサントラが分割販売された。 主に連動イベント関連曲と、外部含む版権曲の多くが未収録となっており、熱闘!BEMANIスタジアムでポップンに移植された4曲はpop n music ラピストリア original soundtrack vol.1に収録されている。 残念ながらエッセンシャリーはIIDXの尺で収録されておらず、jubeat他と同一の音源となっている。 デジタル配信版 同名のタイトルでAmazon Musicなどで配信されている。 全曲リスト DISC1 No. 曲名 ジャンル名 アーティスト 01 Welcome to Sunny Park! 渡辺大地 02 like a pop n music ポップンポップ はるなば feat.NU-KO Southern Cross スターリートランス Blacky カタテ読書 ガールズロマンスポップ はるなば feat.NU-KO 流れ星ソニック J-エモ マッカチン企画 feat. sisi KARISOME ニューファンクロック 七誌 coffee break スウィングラテ そよもぎ プロキオンの騎士団 ファンタジアフュージョン Flying Kite 恋愛観測 ハッピーラブゲイザー NU-KO Intersection フェージングポップ 秋成 情操ディストピア あやかしロック PEACEFUL PLANET PARTY キーボーズポップ seiya-murai + A.I.Units WORLD COLOR ビタミンポップ 猫叉Master#? feat.林ももこ Brand New World ウィザウチュナイ VE#?NUS#? Smiling トリックポップ Sota Fujimori#? feat.nagisa LOL! ラフロック ApachE 屋根裏ポスト ハイカラポップ three-weeks-old lovesick puppy わたぐものおなか 天空ワルツ Dormir リメンバーリメンバー レイニーワルツ rino m@sumifrom plastic penguin いたずらな天使と☆Christmas Eve ハッピーブラスポップ 達見 恵 featured by 佐野宏晃 彙電子奏叉 バイオテクノ 742 connect ノードトランス kuma feat. 安海ひつじ スイーツ・ドリーム パティスリーポップ Tatsh #? feat.Prico 妄想ダイヤモンド アイドルラッシュ sei☆shin feat.Eri Snowfield Express シュプールフュージョン TIME CAPSULE Lab. 魂ノ華 桃ヴィジュアル2 阿部靖弘 feat.宏樹 龍哲 偽りのアルカディア ジュブナイルロック 夏川陽子 悠久神話録-遥かなる山脈に流れる大河の畔にて- チャイニーズマインド 劇団レコード#? Throat スピットロック Hommarju add. YUNRO Mynarco ドラムンコアダスト positive MAD-crew De-a lungul vietii 悪魔城ドラキュラSLOT3#? 倉持武志#? 滑り台のマーチ スロープカーニバル Mutsuhiko Izumi#? She saw a miracle シーソーファンタジー OJ ENSEMBLE Les Vague ヨーロピアンブレイクコア m@sumi コドモライブ ワラベステップ onoken#? feat.asami DISC2 No. 曲名 ジャンル名 アーティスト 関連項目 pop n music Sunny Park original soundtrack vol.1 ポップンミュージック Sunny Park ポップンミュージック20 fantasia CD・DVD
https://w.atwiki.jp/dtlog/pages/116.html
p-DT(プログラムドDT) Programmed DT ライマージやリオーグを作るときに利用するDT。改造部分のデータを1つだけ内部に持ち、感染後そのデータに従った変形、変身が可能になる。
https://w.atwiki.jp/nakata120/pages/22.html
■進捗 ●120ペーパー ・「インターンについて」のページの原案作成。 ・インタビュー内容作成。 ●蒼翠会プレス なし ■作業目標 (9月第3週)19日までに120ペーパー「インターンについて」のページの完成。 (9月第4週)蒼翠会PRESSの作成に移る。根本からもう一度洗いなおす。 (10月末)蒼翠会PRESS完成。印刷。 (11月上旬)120ペーパー作成開始。 (12月中旬)120ペーパー完成。印刷。 ■各Pのリーダーに依頼 wikiにある「プロジェクト詳細」のページに ・活動内容 ・得られる能力 について書いていただきたいです。 期限は18日2000まででよろしくお願いします。
https://w.atwiki.jp/japanesehiphop/pages/1454.html
Format Title Artist Label Model Number Release Press 2LP ORIGINAL SOUNDTRACK FROM THE M.E.T.S. LIFE MEGA-G CREATIVE PLATFORM CPFSO-009 2014/07/29 - Side Track Title Produce A 1 IN TO RAW MEGA-G 2 WELCOME TO THE M.E.T.S. TOWN GRUNTERZ 3 I M YOUR PUSHA feat.MC漢 GRUNTERZ B 4 RE TRAIN WRECK SKYFISH 5 BAD MIND feat.BES,STICKY YOUNG-G 6 PAPER CHASER feat.BULLDAWGS HIMUKI C 7 AIRPORT(NARITA)~SKIT T.TANAKA 8 GREY AREA 16FLIP 9 HIGH BRAND feat.DOGMA YOUNG-G D 10 AIRPORT(SCHIPHOL)~SKIT T.TANAKA,66 11 12SWITCH VAL 12 THE M.E.T.S. LIFE feat.CQ VAL PERTAIN CD ORIGINAL SOUNDTRACK FROM THE M.E.T.S. LIFE REMIX
https://w.atwiki.jp/endora/pages/58.html
GUITAR FREAKS 2nd MIX ORIGINAL SOUNDTRACK 発売日:1999/9/3 レーベル:キングレコード ASIN:B00005FAQI Disc 1/1 01 GUITAR FREAKS 2nd GIG Mutsuhiko Izumi 0 15 02 JET WORLD Mutsuhiko Izumi 1 30 03 Mr.MACHINE Mutsuhiko Izumi 1 30 04 JUST JOEY Melodie Sexton 1 31 05 HOLIDAY Jimmy Weckl 1 31 06 HOW TO PLAY 2 Mutsuhiko Izumi 1 59 07 WANNA BE YOUR BOY (Long version) Dennis Gunn 3 23 08 MAGIC MUSIC MAGIC Melodie Sexton 1 34 09 SELECT 2 Mutsuhiko Izumi 2 29 10 BODY OPERATION Motoaki Furukawa 1 16 11 ESCAPE Mutsuhiko Izumi 1 35 12 KING G Dennis Gunn 1 27 13 GREAT TEACHER 2 Mutsuhiko Izumi 0 10 14 GO GO AGAIN Fu Fu s 1 31 15 JUST JOEY (Long version) Melodie Sexton 5 15 16 THE ADVENTURES Mutsuhiko Izumi 1 30 17 WANNA BE YOUR BOY Dennis Gunn 1 31 18 AFICION Jimmy Weckl 1 20 19 JET WORLD (Long version) Mutsuhiko Izumi 3 43 20 NAME ENTRY 2 Mutsuhiko Izumi 1 35 21 CUTIE PIE Toshio Sakurai 1 19 22 CHICAGO BLUE Mutsuhiko Izumi 1 29 23 THE ENDLESS SUMMER Mutsuhiko Izumi 1 19 24 FIRE Mutsuhiko Izumi 1 31 25 HAPPY MAN Mutsuhiko Izumi 1 14 26 COOL JOE Mutsuhiko Izumi 1 29 27 HYPNOTICA Naoki Maeda 1 25 28 JAZZY CAT Jimmy Weckl 1 28 29 L.A.RIDER Mutsuhiko Izumi 1 30 30 SHAKE IT UP Mutsuhiko Izumi 1 17 31 DRY MARTINI Atsuki 1 27 32 LUCKY?STAFF Mutsuhiko Izumi 1 26 33 OVER 2 Mutsuhiko Izumi 0 06 [2nd MIX Link version] 34 ECLIPSE Mutsuhiko Izumi 1 37 [PS/GUITAR FREAKS 2nd MIX Link Version] 35 MICKEY S BOOGIE Koichi Namiki 1 29 36 EVIL EYE Koichi Namiki 1 31 [PS/GUITAR FREAKS] 37 J-STAFF Koichi Namiki 1 36 [BONUS TRACK] 38 MICKEY S BOOGIE (Long version) Koichi Namiki 3 27 39 EVIL EYE (Long version) Koichi Namiki 3 08 40 J-STAFF (Long version) Koichi Namiki 3 11
https://w.atwiki.jp/asagaolabo/pages/5189.html
pop'n music ラピストリア original soundtrack vol.2 【ポップンミュージック ラピストリア オリジナルサウンドトラック vol.2】 pop'n music ラピストリア original soundtrack vol.2 CDデータ 発売日 全曲リスト 余談 関連項目 CDデータ 発売日 発売日 2015年7月29日 品番 LC2259-2260 仕様 12cmCDアルバム×2 定価 3300円(税込) 初回限定版封入特典 スペシャルポップンミュージックカード(【Welcome to Lapistoria!!】)ラピストリアストーリーブックシリアルコード 初回限定版購入特典 コナミスタイルでの購入でスリーブケース仕様のパッケージ ポップンミュージック ラピストリアのストーリーモード(pmLT)後半(2014/11~)で登場した楽曲を、一部の連動イベントによる移植曲と共に収録。 またボーナストラックとして、ポップンリズミンで書き下ろされたErosion Mark・Rhythm in Pocket・ほしのつくりかたの3曲が収録され、Vol.1収録曲を含めて今作ラピストリアで登場した曲から選ばれた11曲がロングバージョンとして収録されている。 また、シリアルコードは入力することで、ラピストリアで先行して[ほしのつくりかた]がプレイできるものであった。 全曲リスト DISC1 No. 曲名 ジャンル名 アーティスト DISC2 No. 曲名 ジャンル名 アーティスト 01 空に抗い堕つるとも Akhuta 02 Bloody Mary good-cool ft. 芥(From Chanty) 03 On Your Mark Mikoto 04 KARAKARA sei☆shin×Ken 05 麗しきエトワールアンジュ Shiori 06 運命のパラドックス CapsColte 07 蒼い弓箭 m@sumi feat. TAKMA 08 アマイヒミツ MEG.ME 09 The Sign Of Collapse (A Long Phase Version) Akino 10 歌劇 月夜のアラビア 劇団レコード feat. 夏川陽子 11 Anelis 猫叉Master feat. ATSUMI UEDA 余談 pop n music うさぎと猫と少年の夢 Original Soundtrack 20th Anniversary Editionにロングバージョンが再録された際、1枚のCDに収録できる時間の関係からか、トラック順番が一部異なっている。 No.(ラピストリアVol.2) No.(うさ猫特別版) 曲名 DISC2 01 DISC7 16 空に抗い堕つるとも DISC2 02 DISC8 02 Bloody Mary DISC2 03 DISC8 03 On Your Mark DISC2 04 DISC7 17 KARAKARA DISC2 05 DISC7 18 麗しきエトワールアンジュ DISC2 06 DISC8 01 運命のパラドックス 関連項目 ポップンミュージック ラピストリア CD・DVD
https://w.atwiki.jp/asagaolabo/pages/5182.html
pop'n music 16 PARTY♪ original soundtrack 【ポップンミュージック16 パーティー オリジナルサウンドトラック】 pop'n music 16 PARTY♪ original soundtrack CDデータ デジタル配信版 全曲リスト 関連項目 CDデータ 発売日 2008年8月29日 品番 LC1698-1699 仕様 12cmCDアルバム×2 定価 2940円(税込) ポップンミュージック16 PARTY♪のAC版の新曲を収録。 Sota FujimoriのSYNTHESIZED#?と同時発売。 CS版の発売がAC14で打ち止めとなったため、AC6サントラ以来の1タイトル単独アルバムとなった。 そばかす、天体観測はカバー音源がGITADORAシリーズのサウンドトラックに入っているためか、未収録。 デジタル配信版 「pop n music 16 PARTY♪ Music Selection」としてAmazon Musicなどで配信されている。 CD版との相違点として、以下の曲が未収録となっている。 DISC 1 3・2・1→Smile!・パラソル DISC 2 20.november (single mix)・NORTH・無限軌道ゲームミックス 全曲リスト DISC1 No. 曲名 ジャンル名 アーティスト 配信 01 [[]] - - 02 [[]] 【UM×】 03 [[]] 04 [[]] 05 [[]] 06 [[]] 07 [[]] 【UM×】 08 [[]] 09 [[]] 10 [[]] 11 [[]] 【UM×】 12 [[]] 【UM×】 13 [[]] 14 [[]] 15 [[]] 【UM×】 16 [[]] 17 [[]] 18 [[]] 【UM×】 19 [[]] 【UM×】 20 [[]] 21 [[]] 22 [[]] 【UM×】 23 [[]] 【UM×】 24 [[]] 25 [[]] 26 [[]] 27 [[]] 【UM×】 28 [[]] 【UM×】 29 [[]] 【UM×】 30 [[]] 31 [[]] 32 [[]] 33 [[]] 【UM×】 34 [[]] 35 [[]] 36 [[]] 37 [[]] 【UM×】 DISC2 No. 曲名 ジャンル名 アーティスト 配信 01 [[]] - - 02 [[]] 03 [[]] 04 [[]] 05 [[]] 【UM×】 06 [[]] 07 [[]] 08 [[]] 【UM×】 09 [[]] 【UM×】 10 [[]] 【UM×】 11 [[]] 【UM×】 12 [[]] 【UM×】 13 [[]] 【UM×】 14 [[]] 【UM×】 15 [[]] 【UM×】 16 [[]] 【UM×】 17 [[]] 【UM×】 18 [[]] 【UM×】 19 [[]] 【UM×】 20 [[]] 21 [[]] 【UM×】 22 [[]] 【UM×】 23 [[]] 【UM×】 24 [[]] 【UM×】 25 [[]] 26 [[]] 27 [[]] 【UM×】 28 [[]] Scott Dolph Sana※ 29 [[]] 30 [[]] 31 [[]] 【UM×】 32 [[]] 33 [[]] 【UM×】 34 [[]] 35 [[]] 36 [[]] 【UM×】 37 [[]] 【注】赤文字のアーティスト名は、ULTIMATE MOBILEでは「KONAMI」表記。 関連項目 ポップンミュージック16 PARTY♪ CD・DVD