メイン Transport Layer Protocol Implementation & Model Development トランスポート層とネットワーク層のインターフェイスについて | 投稿するにはまず登録を |
題名 | 投稿者 | 日時 |
---|---|---|
トランスポート層とネットワーク層のインターフェイスについて | yu-be | 2006/9/15 17:03 |
» Re: トランスポート層とネットワーク層のインターフェイスについて | maxam | 2006/9/15 19:19 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
maxam | 投稿日時: 2006/9/15 19:19 |
常連 登録日: 2006/4/11 居住地: 投稿: 58 |
Re: トランスポート層とネットワーク層のインターフェイスについて インターフェイスというと、例えばTCPパケットがどうやってIPレイヤに渡されているか、ということでしょうか?
例えばTCP->Networkの場合はtcp_output.cppで NetworkIpReceivePacketFromTransportLayer(, msg, ...) 関数を呼んでいて、引数でパケットを受け渡ししているようです。 逆にNetwork->TCPの時は ip.cppのDeliverPacket()でMESSAGE_Send()でレイヤ、イベントタイプを設定してイベント通知しているようです。 通知されたメッセージはNODE_ProcessEvent()(node.cpp)で上がってきて、レイヤ、タイプで分岐してTCPに到着、のようです。 TRANSPORT_ProcessEvent() -> TransportTcpLayer() 隣接レイヤとのメッセージのやりとりは、隣接レイヤの関数を直接呼び出すか、 MESSAGE_Send()で隣接レイヤを設定して通知するか、後はqueueを介して 渡すか、だと思います。 IP->MACですと、一旦ip_queueにパケットを入れているみたいです。 多分、どの方式かはレイヤやUp/Downで違うのだと思うのですが・・。 実はどこかのドキュメントにまとまっていたりするんでしょうか? |
フラット表示 | 前のトピック | 次のトピック |