Linux Kernel(2.6)の実装に関するメモ書き

IPv4 送信処理


Rev.3を表示中。最新版はこちら

1. 概要

IP層(IPv4)のパケット送信処理に関するメモ。

2. 処理の流れ

ソケットを使ってデータを送信する際のIP層の処理の流れを図1に示す。


図1 送信時の流れ

3. 送信処理

3.1 IPパケットの作成

UDP,RAWソケットを使用している場合は、プロトコル層は送信データをip_append_data()を使ってsk_buffに格納する。ip_append_data()はsk_buffを割り当てて、データを格納する。

送信データを格納したsk_buffを作成した後は、RAWソケットならip_push_pending_frames()を呼び出して、さきほどip_append_data()で作成したsk_buffにIPヘッダを付けてdst_output()を呼び出す。

UDPの場合はudp_push_pending_frames()を呼び出して、UDPヘッダを付けた後、RAWソケットと同じくip_push_pending_frames()を呼び出す。

3.2 dst_output()



最終更新 2007/04/20 13:42:55 - kztomita
(2007/04/20 13:29:28 作成)
添付ファイル
ip_snd.png - kztomita
ip_append_data.png - kztomita
ip_push_pending_frames.png - kztomita


リンク
最近更新したページ
検索