JP2004248187A - 無線lan装置の制御方式 - Google Patents

無線lan装置の制御方式 Download PDF

Info

Publication number
JP2004248187A
JP2004248187A JP2003038303A JP2003038303A JP2004248187A JP 2004248187 A JP2004248187 A JP 2004248187A JP 2003038303 A JP2003038303 A JP 2003038303A JP 2003038303 A JP2003038303 A JP 2003038303A JP 2004248187 A JP2004248187 A JP 2004248187A
Authority
JP
Japan
Prior art keywords
data
wireless lan
length
transmission
lan device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003038303A
Other languages
English (en)
Inventor
Masaru Yamakawa
賢 山川
Koichi Ichimura
浩一 市村
Nobuyasu Shiga
伸靖 志賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Iwatsu Electric Co Ltd
Original Assignee
Iwatsu Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Iwatsu Electric Co Ltd filed Critical Iwatsu Electric Co Ltd
Priority to JP2003038303A priority Critical patent/JP2004248187A/ja
Publication of JP2004248187A publication Critical patent/JP2004248187A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】一対向の無線LAN装置間でデータを送受信する際の転送速度の低下を実質的に軽減し、転送速度を向上させる。
【解決手段】無線LAN装置1の送信バッファ部7の送信バッファに複数のデータおよびそれらデータのデータ長を書き込む。これを1まとまりとし、送信ヘッダ・CRC生成部9により生成されたヘッダ、CRC、および送信バッファ・ステータス・レジスタ8からの総データ長を付加してパケットとする。このパケットを無線5により相手無線LAN装置2へ送信する。無線LAN装置2は、受信バッファ13にストアしたデータを、データ長および総データ長に基づいて個々のデータに分解し、有線4を通じて配下の端末装置に送信する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、無線LAN装置の制御方式に関し、特に、一対一に対向する無線LAN装置間で送受されるパケットにおけるヘッダ、CRC(cyclic redunduncy check)などの誤り検出符号が占める割合および受信側からの応答の発生頻度を削減することができ、転送速度を実質的に向上させることができる無線LAN装置の制御方式に関する。
【0002】
【従来の技術】
図5は、一対一に対向する無線LAN装置1、2で構成される無線LANシステムを示す。無線LAN装置1と無線LAN装置2とは、無線5により接続される。無線LAN装置1には、有線3により端末装置1−1、1−2、・・が接続され、無線LAN装置2には、有線4により端末装置2−1、2−2、・・が接続される。
【0003】
以下では、端末装置1−1、1−2、・・から端末装置2−1、2−2、・・にデータを送信する場合、すなわち、無線LAN装置1を送信側、無線LAN装置2を受信側とする場合について説明するが、無線LAN装置2を送信側、無線LAN装置1を受信側とする逆方向のデータの送受信であっても同様である。
【0004】
送信側の無線LAN装置1は、配下の端末装置1−1、1−2、・・からのデータ(フレーム)を有線3を通して受信し、これらデータの各々を1つのパケットとして無線5を通して受信側の無線LAN装置2に送信する。受信側の無線LAN装置2は、受信したパケットのデータを有線4を通して配下の端末装置2−1、2−2、・・へ送信する。
【0005】
送信側の無線LAN装置1は、自己の配下の端末装置1−1、1−2、・・から受信したデータを受信側の無線LAN装置2に送信するに際し、受信したデータの各々に対してヘッダ、CRCなどの誤り検出符号を付加してパケット化する。また、受信側の無線LAN装置2は、パケットの各々の受信に対して受信が行われたことを示す応答を送信側の無線LAN装置1に返送する。誤って受信された場合には、否定応答が返送され、再送が行われる。
【0006】
【発明が解決しようとする課題】
従来の無線LAN装置の制御方式では、一対一に対向する無線LAN装置間でデータを送受信する際に、自己の配下の端末装置からのデータ(フレーム)の各々に対してヘッダ、CRCなどの誤り検出符号を付加してパケット化しているため、送信するデータのデータ量がヘッダやCRCなどと比較して少ない場合は、データ以外のヘッダ、CRCなどが占める割合が増大し、実質的なデータ転送速度が低下するという問題がある。
【0007】
また、受信側の無線LAN装置は、パケットの各々の受信に対して受信が行われたことを示す応答を送信側の無線LAN装置に返送しているため、応答の発生頻度が多く、この点からも実質的な転送速度が低下するという問題がある。
【0008】
本発明の目的は、一対一に対向して無線LANを構成する無線LAN装置の制御方式において、データを送受信する際の転送速度の低下を実質的に軽減し、転送速度を向上させることのできる無線LAN装置の制御方式を提供することにある。
【0009】
【課題を解決するための手段】
上記課題を解決するために、本発明は、一対一に対向して無線LANを構成する無線LAN装置の制御方式において、前記無線LAN装置は、複数のデータをそれら各データのデータ長を示すレングスフィールドとともにストア可能な送信バッファと、前記送信バッファにストアされたデータの総データ長を保持する送信バッファ・ステータス・レジスタと、前記送信バッファにストアされた全データに対して1つの送信ヘッダおよび誤り検出符号を生成する送信ヘッダ・誤り検出符号生成部と、無線インタフェース部とを具備し、前記送信バッファにストアされた複数のデータおよびレングスフィールドに対し、前記送信バッファ・ステータス・レジスタに保持された総データ長、および前記送信ヘッダ・誤り検出符号生成部により生成されたヘッダおよび誤り検出符号を付加して1つのパケットを生成し、該パケットを前記無線インタフェース部を通して相手無線LAN装置に送信する点に第1の特徴がある。
【0010】
また、本発明は、送受信間の電波の状態の応じて前記送信バッファにストアされるデータの総データ長を変える点に第2の特徴がある。
【0011】
また、本発明は、一対一に対向して無線LANを構成する無線LAN装置の制御方式において、前記無線LAN装置は、無線インタフェース部と、相手無線LAN装置から前記無線インタフェース部を通して受信される1つのパケット内の複数のデータをそれら各データのデータ長を示すレングスフィールドとともにストア可能な受信バッファと、前記受信バッファの各々にストアされたデータの総データ長を保持する総データ長レジスタとを具備し、受信された1つのパケット内のデータおよび該データに付加されたレングスフィールドを前記受信バッファにストアし、受信されたデータに付加された総データ長を前記総データ長レジスタに保持し、前記受信バッファにストアされたデータを前記受信バッファにストアされたレングスフィールドおよび前記総データ長レジスタに保持された総データ長に基づいて個々のデータに分解する点に第3の特徴がある。
【0012】
さらに、本発明は、送受信間の電波の状態の応じて1パケット内に含まれるデータの総データ長が変えられている点に第4の特徴がある。
【0013】
第1および第3の特徴によれば、複数のデータを結合し、結合した1まとまりのデータに対して1つのヘッダおよび誤り検出符号を付加してパケット化したパケットを送受信するため、送受信されるパケットにおけるヘッダ、CRCなどの誤り検出符号の占める割合および受信側から返送する応答の発生頻度を低減することができ、オーバヘッドを小さくして実質的な転送速度を向上させることができる。
【0014】
また、第2および第4の特徴によれば、送受信間の電波の状態に応じて1パケット内に含まれるデータの総データ長を変えるので、電波状態が良好なときには一括して送信されるデータ量を増やしてデータの転送速度を実質的に向上させることができるとともに、電波状態が悪いときには一括して送信されるデータ量を減らして受信不良となる可能性が比較的大きいデータのデータ量を減らすことができ、効率的なデータ伝送を実現できる。
【0015】
【発明の実施の形態】
以下、図面を参照して本発明を詳細に説明する。図1は、本発明の実施形態を示すブロック構成図であり、図5と同一または類似する部分には同一番号を付してある。
【0016】
無線LAN装置1、2は、一対一に対向して無線5を通してパケットの送受信を行う。無線5における伝送形態は、本発明の特徴部分を除いて、例えば IEEE802.11a の5GHz帯無線LANの規格や IEEE802.11b の2.4GHz帯無線LANの規格に沿ったものとすることができる。
【0017】
無線LAN装置1、2のいずれもが、送信側にも受信側にもなり得る構成を有するが、図1には、無線LAN装置1の配下の端末装置から無線LAN装置2の配下の端末装置へデータを送信する場合の構成、すなわち送信側のLAN装置1については送信に関する構成のみを示し、受信側のLAN装置2については受信に関する構成のみを示している。以下では、図1に従って、無線LAN装置1が送信側であり、無線LAN装置2が受信側である場合について説明する。
【0018】
送信側の無線LAN装置1は、配下の端末装置から有線3により送信されてくるデータを有線LANインタフェース部(以下、インタフェース部をI/Fと記す。)6により受信し、送信バッファ部7にストアする。有線3における伝送形態は、例えば IEEE802.3 の規格に従ったLAN仕様とすることができる。後述の有線4も同様である。
【0019】
図2は、有線LAN上のフレームのフレーム構成の一例を示す。本例は、IEEE802.3 の規格に従った場合のものである。このフレームは、同期をとるためのプリアンブル、フレームの宛先である端末装置のアドレスを示す宛先アドレス、フレームの送信元である端末装置のアドレスを示す送信元アドレス、データの長さを示すデータ長、データ、および誤り検出符号であるCRCから構成される。宛先アドレスは、端末装置2−1、2−2、・・・のいずれかのアドレスであり、送信元アドレスは、端末装置1−1、1−2、・・・のいずれかのアドレスである。
【0020】
送信バッファ部7は、図3に示すように、送信バッファ0〜nを含み、各々の送信バッファ0〜nは、無線LAN装置1から無線LAN装置2へ送信するパケットに含ませるデータの最大長に等しい容量を有する。
【0021】
無線LAN装置1側から無線LAN装置2側へ伝送すべきデータは、有線3により送信されてくる、図2に示されるようなフレームであり、このデータは、まず、送信バッファ0にストアされる。この際、各データの先頭に該データのデータ長を示すレングスフィールドが付加される。図3は、送信バッファ0にそれぞれ、データ長0、1、2、・・・、mのデータ0、1、2、・・・、mがストアされた状態を示している。送信バッファ0が満杯になれば、続くデータは、次の送信バッファ1にストアされ、以下、同様に、送信バッファ2、3、・・・、nに順にデータがストアされる。
【0022】
以下では、送信バッファ0について説明するが、他の送信バッファ1〜nについても同様である。データおよび該データのデータ長が送信バッファ0にストアされると、送信バッファ0上のデータの有無を示す送信バッファフラグおよび送信バッファ0にストアされたデータのデータ長が送信バッファ・ステータス・レジスタ8に保持される。
【0023】
送信バッファ・ステータス・レジスタ8に保持されるデータ長は、各送信バッファごとに、送信バッファに順次ストアされたデータのデータ長を加算、更新することにより得られる総データ長である。送信バッファ0について、送信バッファ・ステータス・レジスタ8に保持される総データ長は、データ長0〜mの合計値である。また、送信ヘッダ・CRC生成部9は、送信バッファ0にストアされたデータ全てに対して1つの送信ヘッダおよびCRCを生成する。
【0024】
送信バッファ0が満杯になると、空きチャネル検出部10は、無線LAN I/F11上の空きチャネルの検出を行い、無線5上においてデータが他のデータと衝突しないかを調べる。なお、送信バッファ0が満杯になったことは、先の送信バッファフラグや送信バッファ内のデータ量を調べるなどして判断できる。
【0025】
空きチャネル検出部10により無線LAN I/F11上の空きチャネルが検出されると、無線LAN I/F11は、送信バッファ0にストアされている全てのデータおよびデータ長を1まとまりとし、それに送信ヘッダ・CRC生成部9により生成されたヘッダおよびCRCを付加し、さらに送信バッファ・ステータス・レジスタ8に保持された総データ長を付加する。これにより1つのパケットが生成され、無線LAN5上 に送信される。
【0026】
パケットが無線LAN I/F11より無線5上に送信されると、送信バッファ0に対応する送信バッファ・ステータス・レジスタ8の送信バッファフラグはデータなしの状態に遷移する。
【0027】
送信バッファ1、2、・・にデータがあれば、同様に各送信バッファ1、2、・・のデータおよび該データのデータ長を1まとまりとし、それに1つのヘッダ、CRCおよび総データ長が付加されてパケットとして順次送信される。パケットが送信されれば、対応する送信バッファ・ステータス・レジスタ8の送信バッファフラグはデータなしの状態に遷移する。
【0028】
受信側の無線LAN装置2では、上記のようにして送信されてきたパケットを無線LAN I/F12により受信し、当該データの正当性をCRCによりチェックする。これにより当該データの正当性を確認したならば、データおよびデータ長を受信バッファ部13にストアする。また、総データ長を総データ長レジスタ14にストアする。
【0029】
その後、送信側の無線LAN装置1で1つにまとめられデータを、有線LANI/F15で個々のデータに分解して元のデータを得る。これは、受信データのレングスフィールドにある各々のデータのデータ長に基づき、あるいは総データ長から受信データのレングスフィールドにある各々のデータのデータ長を順次減算することにより得られる値に基づき、レングスフィールドに続くデータ長を求め、該データ長に従って、受信バッファ部13にストアされているデータを分解することにより実現できる。
【0030】
このデータの分解は、総データ長から順次データ長が減算された値が0になるまで繰り返され、0になったときに当該1つにまとめられたデータの処理を終了し、次の1まとまりのデータの処理に移行する。分解されたデータは順次、有線LAN I/F15および有線4を通して配下の端末装置に送信される。有線4には、例えば IEEE802.3 の規格に従ったLAN仕様で送信される。
【0031】
送信するパケットを生成する際に付加される総データ長は、受信側でのデータの終了を指示してCRCによるチェック処理や終了処理に移行するために使用されるものであるので、その限りにおいてはデータの個数でもよく、ここで言うところの総データ長は、データの個数も含む。
【0032】
また、1まとめにされるデータのデータ量は、送信バッファの容量により制限されるが、送信バッファの容量は常に一定である必要はなく、端末装置から送信されるデータの量や端末装置からのデータの受信頻度に応じて動的に変えれば、パケットに含まれる総データ量を動的に変え、該総データ量になったところでパケットを生成して送信できる。
【0033】
受信側の無線LAN装置で受信されるデータの品質は、送受信間の電波の状態によって変わり、この電波の状態が時間的に変化する場合には電波の悪い状態の時に送信される1まとまりとなったデータ全てが劣化する可能性がある。この劣化の影響を少なくするためには、1まとめにするデータの総データ長を電波の状態に応じて変えればよい。
【0034】
すなわち、電波状態が良好なときには1まとめにするデータの総データ長を増大させることによりデータの転送速度を実質的に向上させることができ、電波の状態が悪いときには1まとめにするデータの総データ長を低減させることにより送受不良となる可能性が比較的大きいデータのデータ量を減らすことができる。なお、これには送受信間の電波の状態をモニタする必要があるが、これは公知の技術を用いて実現することができる。
【0035】
図4は、本発明によるパケットと従来技術によるパケットとを対比して示す説明図である。図4(a)は、無線LAN上のフレームのフレーム構成の一例を示す。このフレームは、同期をとるためのプリアンブル、フレームの宛先である無線LAN装置のアドレスを示す宛先アドレス、フレームの送信元である無線LAN装置のアドレスを示す送信元アドレス、データの長さを示すデータ長、データ、および誤り検出符号であるCRCから構成される。前記実施形態において、宛先アドレスは、無線LAN装置2のアドレスであり、送信元アドレスは、無線LAN装置1のアドレスである。
【0036】
従来技術では、図4(b)に示すように、各々が有線LAN上のフレームであるデータ0、1、2、・・の各々に対してヘッダH、H′、H″、・・、CRCなどの誤り検出符号が付加されて無線LAN上の各フレームが生成される。ここで、ヘッダH、H′、H″、・・はそれぞれ、プリアンブル、宛先アドレス、送信元アドレス、データ長を含んでいる。
【0037】
これに対して、本発明では、例えば、図4(c)に示すように、有線LAN上のフレームであるデータ0、1、2、・・mが1つにまとめられ、それに対して1つのヘッダHおよびCRCが付加されて無線LAN上の1つのフレームが生成される。ここで、ヘッダHは、プリアンブル、宛先アドレス、送信元アドレス、データ長(総データ長)を含んでいるが、ヘッダH′、H″、・・は、1つにまとめられた複数のデータの各データ長のみを含んでいる。
【0038】
このように、本発明では、無線LAN装置が一対一対向であるため、無線5により送信される全てのパケットの送信元アドレスおよび宛先アドレスは同一であり、図4(b)において各データに対して個別に付加されていたプリアンブル、宛先アドレス、送信元アドレスを、図4(c)に示すように、結合した複数のデータに対して1つのヘッダHとしてまとめることができる。また、CRCも複数のデータに対して1つ付加すればよい。なお、ヘッダHのデータ長には結合したデータの総データ長を格納する。
【0039】
【発明の効果】
以上の説明から明らかなように、本発明によれば、複数のデータを結合し、結合した1まとまりのデータに対して1つのヘッダおよび誤り検出符号を付加して送信するため、一対一に対向する無線LAN装置間で送受信されるパケットにおけるヘッダ、CRCなどの誤り検出符号の占める割合および受信側からの応答の発生頻度を削減することができ、オーバヘッドを小さくし、転送速度を実質的に向上させることができる。また、無線LAN装置が高速になっても付加されるヘッダおよび誤り検出符号、送信に対する応答の割合は変化しないため、常に転送速度の向上が期待できる。
【図面の簡単な説明】
【図1】本発明の実施形態を示すブロック構成図である。
【図2】有線LAN上のフレームのフレーム構成の一例の説明図である。
【図3】送信バッファ部における送信バッファの説明図である。
【図4】従来技術によるパケットと本発明によるパケットとを対比して示す説明図である。
【図5】無線LANシステムの構成を示すブロック構成図である。
【符号の説明】
1、2・・・無線LAN装置、1−1、1−2、2−1、2−2・・・端末装置、3、4・・・有線、5・・・無線、6、15・・・有線LANI/F、7・・・送信バッファ部、8・・・送信バッファ・ステータス・レジスタ、9・・・送信ヘッダ・CRC生成部、10・・・空きチャネル検出部、11、12・・・無線LANI/F、13・・・受信バッファ部、14・・・総データ長レジスタ

Claims (4)

  1. 一対一に対向して無線LANを構成する無線LAN装置の制御方式において、
    前記無線LAN装置は、複数のデータをそれら各データのデータ長を示すレングスフィールドとともにストア可能な送信バッファと、前記送信バッファにストアされたデータの総データ長を保持する送信バッファ・ステータス・レジスタと、前記送信バッファにストアされた全データに対して1つの送信ヘッダおよび誤り検出符号を生成する送信ヘッダ・誤り検出符号生成部と、無線インタフェース部とを具備し、
    前記送信バッファにストアされた複数のデータおよびレングスフィールドに対し、前記送信バッファ・ステータス・レジスタに保持された総データ長、および前記送信ヘッダ・誤り検出符号生成部により生成されたヘッダおよび誤り検出符号を付加して1つのパケットを生成し、該パケットを前記無線インタフェース部を通して相手無線LAN装置に送信することを特徴とする無線LAN装置の制御方式。
  2. 送受信間の電波の状態の応じて前記送信バッファにストアされるデータの総データ長を変えることを特徴とする請求項1に記載の無線LAN装置の制御方式。
  3. 一対一に対向して無線LANを構成する無線LAN装置の制御方式において、
    前記無線LAN装置は、無線インタフェース部と、相手無線LAN装置から前記無線インタフェース部を通して受信される1つのパケット内の複数のデータをそれら各データのデータ長を示すレングスフィールドとともにストア可能な受信バッファと、前記受信バッファの各々にストアされたデータの総データ長を保持する総データ長レジスタとを具備し、
    受信された1つのパケット内のデータおよび該データに付加されたレングスフィールドを前記受信バッファにストアし、受信されたデータに付加された総データ長を前記総データ長レジスタに保持し、前記受信バッファにストアされたデータを前記受信バッファにストアされたレングスフィールドおよび前記総データ長レジスタに保持された総データ長に基づいて個々のデータに分解することを特徴とする無線LAN装置の制御方式。
  4. 送受信間の電波の状態の応じて1パケット内に含まれるデータの総データ長が変えられていることを特徴とする請求項3に記載の無線LAN装置の制御方式。
JP2003038303A 2003-02-17 2003-02-17 無線lan装置の制御方式 Pending JP2004248187A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003038303A JP2004248187A (ja) 2003-02-17 2003-02-17 無線lan装置の制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003038303A JP2004248187A (ja) 2003-02-17 2003-02-17 無線lan装置の制御方式

Publications (1)

Publication Number Publication Date
JP2004248187A true JP2004248187A (ja) 2004-09-02

Family

ID=33022869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003038303A Pending JP2004248187A (ja) 2003-02-17 2003-02-17 無線lan装置の制御方式

Country Status (1)

Country Link
JP (1) JP2004248187A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005160098A (ja) * 2003-11-25 2005-06-16 Samsung Electronics Co Ltd ペイロード内でのフレーム分割方法
JP2014209754A (ja) * 2008-06-19 2014-11-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated Wwan技術のためのハードウェアアクセラレーション

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005160098A (ja) * 2003-11-25 2005-06-16 Samsung Electronics Co Ltd ペイロード内でのフレーム分割方法
JP4713875B2 (ja) * 2003-11-25 2011-06-29 三星電子株式会社 ペイロード内でのフレーム分割方法
JP2014209754A (ja) * 2008-06-19 2014-11-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated Wwan技術のためのハードウェアアクセラレーション

Similar Documents

Publication Publication Date Title
KR101984250B1 (ko) 장거리 wlan 데이터 유닛 포맷
KR100631271B1 (ko) 패킷 응집 전송 방법
JP6165859B2 (ja) ブロック確認応答圧縮のための装置および方法
KR101557686B1 (ko) 미디어 액세스 제어 헤더 압축을 위한 장치 및 방법
JP5572220B2 (ja) 断片化パッキング拡張ヘッダーを伴うmacpduを伝送する方法及び装置
JP2018078563A (ja) ブロック確認応答圧縮のための装置および方法
US7729348B2 (en) Efficiency improvement for shared communications networks
EP1548989A2 (en) Packet sub-frame structure for selective acknowledgment
JP2005323372A (ja) フレーム集約と共に使用されるmacヘッダ圧縮
KR20150040336A (ko) 프레임 제어 설계를 위한 장치 및 방법
JP2006211632A (ja) Crc検査範囲外エラーを検出する方法
JP3533385B2 (ja) データ受信の肯定応答のための方法およびシステム
US20220271800A1 (en) Communication devices and methods
Saif et al. Impact of aggregation headers on aggregating small MSDUs in 802.11 n WLANs
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
JP2009010628A (ja) 無線通信装置及び無線通信方法
JP2003209577A (ja) 通信システム、通信方法、送信端末、受信端末及び中継機器
JP2001197144A (ja) 無線機
US11271686B2 (en) Hybrid automatic repeat request acknowledgement and upload multiuser operation
KR20200045471A (ko) 통신 장치 및 방법
Saif et al. An optimized A-MSDU frame aggregation with subframe retransmission in IEEE 802.11 n wireless networks
JP2004248187A (ja) 無線lan装置の制御方式
WO2020116184A1 (ja) 通信装置、及び通信方法
JP2006005786A (ja) 送信装置、受信装置、通信システム及び通信方法
WO2023058502A1 (ja) 通信装置、通信端末、および通信方法