[[PageNavi(internal24-navi)]]
{{{ comment
h2w-title:送信処理
}}}
= 送信処理 = #SECTION05720000000000000000
アプリケーションからのデータ送信処理要求は、socketレイヤを経由しinet_sendmsg関数を呼び出す(struct proto_ops inet_dgram_opsインターフェイステーブル経由)ことにより実現される。inet_sendmsg関数は、即udp_sendmsg関数を呼び出す(struct proto ucp_protインターフェイステーブル経由)。
まずucp_sendmsg関数は仮のUDPヘッダを作り上げ、ルーティング情報を取得し(ip_route_output関数)、IPレイヤの送信関数(ip_build_xmit関数)を呼び出す。
ip_build_xmit関数は、IPパケットを生成したのちに送信処理まで行う関数である。ip_build_xmit関数内ではパケット(sk_buff)を確保した後、udp_getfrag関数をコールバックする。
udp_getfrag関数では、確保したパケットにユーザ空間のデータを読み込み、チェックサムの計算を行う。また、先に生成しておいた仮のUDPヘッダの情報をこのパケットに反映させる。(処理の高速化のためにこのような構成にしていると思われる)
以上でUDPレイヤの送信処理は完了である。
----
''(NIS)HirokazuTakahashi [[BR]]2000年12月09日 (土) 23時55分06秒 JST''1
[[PageNavi(internal24-navi)]]