コンテンツにスキップ

Winsock

Xuất điển: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』

Winsock(Windows Sockets API,WSA) は,Windowsにおいてネットワークソフトウェアネットワークサービス( đặc にTCP/IP) にアクセスする phương pháp を định nghĩa した kỹ thuật sĩ dạng である. Windows thượng のTCP/IPクライアントアプリケーション (FTPクライアントや Gopherクライアント ) とTCP/IPプロトコルスタックとの tiêu chuẩnインタフェースを định nghĩa している. その danh xưng はBSDHệUNIXでプログラム gian の thông tín に sử われたソケットと hô ばれるAPIモデルに cơ づいている. winsock.dll というDLLファイルはWSAインタフェースの chủ yếu bộ phân を đề cung するものであったため, このAPIを Winsock という lược xưng で hô ぶことには khai phát giả trắc の để kháng があったし, ユーザー trắc にも đa くの hỗn loạn があった. ユーザーは winsock.dll さえあれば, TCP/IP プロトコルが hoàn toàn にサポートされるのだと ngộ giải していることが đa かった.

Bối cảnh

[Biên tập]

Sơ kỳ のマイクロソフトのオペレーティングシステム (MS-DOSWindowsも ) は, ネットワーク cơ năng が bần nhược で,NetBIOS/NetBEUIを chủ に sử っていた. これは giai tằng hóa されていない, ルーティング bất khả năng なネットワーク cơ năng であり,IBMの NetBIOS をマイクロソフトが thật trang したものであった. Đặc に đương thời, マイクロソフトはTCP/IPを hoàn toàn に vô thị していた. Sổ 々の đại học グループ (MIT) や thương dụng ベンダー (サン・マイクロシステムズTha ) がMS-DOS dụng TCP/IPを khai phát し, ハードウェアに đồng khổn するなどして phiến mại していた. Windows がリリースされると, さらに Windows hướng け TCP/IP を đề cung するベンダーが tăng えていった. しかし, マイクロソフトは tương 変わらず cơ năng の bần nhược な chế phẩm を đề cung していた.

これらベンダーの chế phẩm の nhược điểm は, それぞれ độc tự のAPIを thải dụng していた điểm である. また, メモリ sử dụng lượng ( đương thời, 640KBもあれば đại dung lượng とされていた ) や, phục sổ のプロトコルを tịnh hành してサポートする phương pháp がない điểm も vấn đề だった. Đặc に tối hậu の vấn đề điểm は trọng yếu であった. Đương thời のネットワーク hoàn cảnh はベンダー mỗi に dị なり ( lệ えば, DECのDECnet,ノベルNetware,Banyan Vines, IBM Lan Manager など ), それぞれ vi ったプロトコルを sử っていた ( lệ えば, ノベルは IPX/SPX, IBM は NetBIOS API ベースのプロトコル, マイクロソフトは NetBEUI Frames Protocol ). 従って, ユーザーが phục sổ のネットワークサービスに tiếp 続するには, phục sổ のブート cấu thành を dụng ý し, sử いたいサービスに hợp わせて lập ち thượng げ trực して, đối ứng するプロトコルを sử えるようにする tất yếu があった. さらにプログラミングモデルが thống nhất されていないため, nhậm ý のベンダーのTCP/IP thật trang で động tác するネットワークアプリケーションの khai phát は phi thường に khốn nan であった. Hà らかの “Tiêu chuẩn hóa” が tất yếu であることは minh らかであった.

Đương thời kí にPCネットワークの phân dã での tiêu chuẩn hóa はいくつも tiến められていた.アメリカ không quânの chi viện で hành われた tiêu chuẩn hóa としてRFC1001RFC1002がある. これは TCP/IP thượng の NetBIOS thật trang であり,NBT(NetBIOS over TCP/IP) と hô ばれた. Thứ に FTP Software xã が trung tâm となって tiến められたCrynwr packet driverがある. これは, thượng thuật したメモリ sử dụng lượng の vấn đề をアセンブリ ngôn ngữで thật trang することで hồi tị し, ネットワークカードの cát り込みを độc chiêm しないことで phục sổ プロトコルの đồng thời サポート vấn đề にも đối ứng した. Đồng dạng の thí みとしてノベルのODI (Open Data-Link Interface) やマイクロソフトのNDIS (Network Driver Interface Specification) といったAPIがある. これらはTCP/IPも hàm めたプロトコルスタックの hoàn toàn な thật trang ではない điểm が trọng yếu である. 従って, lệ えば Crynwr の Russ Nelson が khai phát したQVTWinQVTはDECのVT220 đoan mạt エミュレータだが, どちらもアプリケーション nội にTCP/IPスタックを trì っていた. packet driver と đồng thời に sử うことが khả năng で, lệ えばノベルのIPX/SPXNetWareのファイルサーバにアクセスすると đồng thời に, DECのVMSにTCP/IP kinh do でアクセスすることが khả năng であった. Minh らかにこのような hoàn cảnh がこのプロジェクトの mục chỉ したものであり, lệ えばパリのOECDなどでそのような sử われ phương をしていた.

Windows Sockets API を đề án したのは JSB Software の Martin Hall であり, 1991 niên 10 nguyệt,CompuServeでのĐiện tử yết kỳ bảnでの nghị luận が tối sơ であった. Sĩ dạng の đệ 1 bản を biên tập したのは Martin Hall, Mark Towfiq ( Microdyne, hậu にサン・マイクロシステムズ ), Geoff Arnold ( サン・マイクロシステムズ ), Henry Sanders と J Allard (マイクロソフト) らである. Trứ tác 権や tri đích sở hữu 権について nghị luận があり,IETFを thông すとか phi 営 lợi đoàn thể を kết thành するといった nghị luận がなされた. Kết cục, 単 thuần に trứ tác 権は5 nhân がそれぞれ sở hữu することとなった. Hậu に J Allard はマイクロソフト xã nội に đại きなオフィスを dữ えられ, そこで ACK と NACK と danh づけたイグアナを tự った.

Kỹ thuật

[Biên tập]

Windows Socket API sĩ dạng は2つのインタフェースを định nghĩa している. 1つはアプリケーションソフトウェアKhai phát giả が lợi dụng するAPIであり, もう1つはネットワークソフトウェア khai phát giả が tân たなプロトコルモジュールをシステムに truy gia する tế に lợi dụng するSPIである. APIは chuẩn 拠アプリケーションがWinsockに chuẩn 拠して thật trang された nhậm ý のプロトコルを sử って động tác khả năng であることを bảo chứng する. SPI は chuẩn 拠プロトコルモジュールを Windows に truy gia khả năng であることと, nhậm ý のAPI chuẩn 拠アプリケーションから lợi dụng khả năng となることを bảo chứng する. リリース đương sơ, phục sổ プロトコルサポートが tất tu だったため, このような bảo chứng は trọng yếu だったが, kim では học vấn đích hưng vị から ngữ られるだけである. Windows Socket version 2.0にはIPX/SPXで sử われる cơ năng も hàm まれているが, Winsock 2.0 リリース đương thời から kí に廃れつつあるプロトコルであり, kim ではこれを sử うものはほとんどないだろう.マイクロソフトは tối cận の Windows には tất ず cao phẩm chất なTCP/IPスタックを thật trang しており, その đại thế となる hữu lực な chế phẩm も tồn tại しない. さらに ngôn えば, TCP/IP dĩ ngoại のプロトコルを thật trang しなければならない cường い động cơ も tồn tại しない.

Windows Sockets はバークレーのソケットに cơ づいているが, Windows の tiêu chuẩn プログラミングモデルに đối ứng するために cơ năng を truy gia している. Winsock はソケットのほとんどの cơ năng をカバーしているが, Windows とUNIXの căn bổn đích な vi いからどうしても tị けられない soa dị も sinh じている ( とは ngôn っても,STREAMSとの soa dị に bỉ べれば, ずっとソケットに cận い ). APIに hàm まれる toàn ての quan sổ danh の đầu にはWSAが phó く. Lệ えばホスト danh tham chiếu のWSAGetHostByName()などである. BSDソケットからの拡 trương で đặc bút すべきは, “Phi đồng kỳ ソケット” およびオーバーラップI/Oを lợi dụng した “オーバーラップソケット” である. Phi đồng kỳ バージョンの quan sổ は, tiếp đầu từ としてWSAAsyncを phó け,WSAAsyncGetHostByName()などという danh tiền になっており, Windowsのウィンドウメッセージによって kết quả を thông tri する. Phi đồng kỳ 処 lý のキャンセルはWSACancelAsyncRequest()で thật hành する. オーバーラップソケットは hoàn liễu thông tri にWSAEVENTオブジェクトとWSAOVERLAPPEDCấu tạo thể を sử dụng する. なお, Winsockの phi đồng kỳ ソケットやオーバーラップソケットは, BSDのノンブロッキングソケットとは dị なる khái niệm である. ブロッキングモードのsend()およびrecv()のタイムアウト thời gian を thiết định するソケットオプションSO_SNDTIMEOおよびSO_RCVTIMEOを sử dụng するには, ソケット tác thành thời にWSA_FLAG_OVERLAPPEDChúc tính が thiết định されている tất yếu がある[1].Winsock2では, ソケットは kí định でブロッキングモードで tác thành される[2].またBSD hỗ hoán のsocket()Quan sổ を sử dụng して tác thành されたソケットは, kí định でWSA_FLAG_OVERLAPPEDChúc tính を trì つ[3].

Thiết kế mục tiêu は,UNIXから Windows へのソケットベースのアプリケーションの di thực を dung dịch にすることであった. Tân たに Windows hướng けに thư かれるプログラムにとって, そのAPIが thập phân かどうかはあまり khảo lự されなかった. このため, Winsock には di thực のために thiết kế された yếu tố がいくつか hàm まれている. Lệ えば,UNIXアプリケーションでは, ネットワークのエラーもTiêu chuẩn Cライブラリの quan sổ nội のエラーも đồng じerrnoで biểu される. これは Windows にはない cơ năng であるため, Winsock はそのための quan sổWSAGetLastError()でエラー tình báo が đắc られるようにした. このような cơ năng は dịch lập つものの, アプリケーションの di thực はなかなか khốn nan だった. Đa くのTCP/IPアプリケーションは, 仮 tưởng đoan mạt とかforkシステムコールといったUNIXのシステム cố hữu cơ năng を sử って thật trang されており, そのような cơ năng を Windows で tái hiện するのが khốn nan だったのである. しかし, gian もなく di thực よりも Windows độc tự のアプリケーション khai phát の phương が chủ lưu となっていった.

Sĩ dạng

[Biên tập]
Version 1.0 ( 1992 niên 6 nguyệt )
Winsock の cơ bổn định nghĩa. BSDのソケットのインタフェースをかなり trung thật に thủ っており, kí tồn アプリケーションの di thực tính を khảo lự している. Windows cố hữu の拡 trương が nhược càn あり, chủ にメッセージ thông tri による phi đồng kỳ thao tác に quan するものである. Văn thư ではTCP/IPに chế hạn してはいないが, cụ thể đích に ngôn cập されているプロトコルはTCPとUDPだけであった. ほとんどのベンダーはTCP/IPだけをサポートしたが,DECは DECnet もサポートしていた.
Verison 1.1 ( 1993 niên 1 nguyệt )
Tế かな tu chính と sĩ dạng の phân loại. Trọng yếu な変 canh điểm としては,gethostname()Quan sổ を truy gia した điểm が cử げられる.
Winsock 2
Winsock 1.1 との hỗ hoán tính を duy trì しつつ拡 trương している. プロトコルに độc lập した danh tiền giải quyết pháp をサポート. イベント thông tri や hoàn liễu ルーチンによる phi đồng kỳ thao tác サポート. Giai tằng hình プロトコル thật trang サポート.マルチキャスト.Quality of Service.Phục sổ プロトコルサポートも công thức hóa され,IPX/SPXDECnetが minh ký された. プロセス gian でのソケット cộng hữu, コネクションの điều kiện phó き thụ lý, ソケットグループ処 lý などが khả năng となった. Winsock 1.x とは đại phúc な vi いがあるが, Winsock 1.1 API とのソース hỗ hoán とバイナリ hỗ hoán を bảo っている. Tha にも Service Provider Interface (SPI) API やLayered Service Provider(LSP) がサポートされた.
Version 2.0.x ( 1994 niên 3 nguyệt dĩ hàng )
Nội bộ ドラフト. Tiêu chuẩn として công khai されたものではない.
Version 2.1.0 ( 1996 niên 1 nguyệt )
Winsock 2 としての tối sơ の công khai bản.
Version 2.2.0 ( 1996 niên 5 nguyệt )
Tế かな tu chính, minh xác hóa, sử dụng phương pháp の truy ký など. 16ビット Windows アプリケーションサポートを tước trừ した.
Version 2.2.1 ( 1997 niên 5 nguyệt ), Version 2.2.2 ( 1997 niên 8 nguyệt )
Tế かな cơ năng cường hóa. ネットワーク cấu thành やシステム cấu thành の変 hóa に quan して vấn い hợp わせたり, thông tri を thụ け phó ける cơ cấu を truy gia した.

IPv6Đối ứng はWindows 2000( 2000 niên 12 nguyệt ) で,RFC2553( hậu にRFC3493に trí hoán ) に cơ づいて hành われ,Windows XPの Winsock の nhất bộ となっている.

Thật trang

[Biên tập]

マイクロソフト

[Biên tập]
  • マイクロソフトは Winsock 1.0 の thật trang を đề cung しなかった.
  • Winsock 1.1 は Windows for Workgroups のアドオンパッケージとして đề cung された. また,Windows 95Windows NT3.x では tối sơ から tất tu コンポーネントとして đạo nhập された.
  • Winsock 2 は Windows 95 のアドオンパッケージとして đề cung された[4].Windows 98および NT 4.0 dĩ hàng は tất tu コンポーネントとして đạo nhập されている. Windows 3.x や NT 3.x hướng けに Winsock 2 が đề cung されることはなかった.
  • Winsock 2.x は tân たなWindowsのリリース thời điểm やサービスパックの hình で đề cung されている.
  • Winsock 2 はLayered Service Provider(LSP) と hô ばれる cơ cấu で拡 trương khả năng である. Winsock LSP はペアレンタル chế ngự, Webコンテンツのフィルタリング,QoSなどに sử われている. Toàn ての Provider の giai tằng thuận vị は Winsock Catalog で quản lý される. かつて, バグのある LSP を tước trừ すると Winsock Catalog が phá 壊されてネットワークが toàn く sử えなくなるという vấn đề があった. Windows XP SP2, Windows Server 2003 SP1, およびその hậu の Windows では, LSP をアンインストールしても tự động tu phục できるようになっている.

Tha の thật trang

[Biên tập]
  • Winsock chuẩn 拠の TCP/IP スタックを đề cung するベンダーとしては,スリーコム,Beame & Whiteside, DEC, Distinct, FTP Software, Frontier,IBM,Microdyne, NetManage,ノベル,サン・マイクロシステムズ,Trumpet Software International などがある.
  • Trumpet Winsock は sổ thiếu ない Winsock 1.0 の thật trang であり, Windows 3.0 にインストール khả năng であった. Trumpet は Windows 3.x hướng け Winsock のシェアウェアBản でも tri られている. 2008 niên 2 nguyệt dĩ hàng はTattam Software EnterprisesがTrumpet の tri đích sở hữu 権を hữu している[5].

Cước chú

[Biên tập]

Tham khảo văn hiến

[Biên tập]
  • Aboba, Bernard D., comp.protocols.tcp-ip.ibmpc, Frequently Asked Questions, 1993. Usenet:news:news.answers.

この ký sự は2008 niên 11 nguyệt 1 nhật dĩ tiền にFree On-line Dictionary of Computingから thủ đắc した hạng mục の tư liêu を nguyên に,GFDLバージョン1.3 dĩ hàng の “RELICENSING” ( tái ライセンス) điều kiện に cơ づいて tổ み込まれている.

Quan liên hạng mục

[Biên tập]

Ngoại bộ リンク

[Biên tập]

Microsoft

[Biên tập]

その tha

[Biên tập]