====== ネットワーク ======
===== TCP再送処理 =====
セグメント(SYN)の再送のタイムアウトは3秒でリトライは2回、全体の再転送回数は5回となっている。\\
3 + (3 x 2) + (6 x 2)秒で、約21秒(リトライする度に、リトライの間隔が直前の間隔の2倍になります)。\\
再送のタイムアウトのレジストリ「TcpInitialRTT」 3000ミリ秒(3秒)\\
リトライ回数の2回は固定(Windows 7以降はnetsh コマンドによって調整)\\
再転送回数設定のレジストリ「TcpMaxDataRetransmissions」 5回\\
1パケットは3秒でリトライ2回で21秒、その後はタイムアウトは自動計算され再転送回数でリトライする。\\
[[https://social.msdn.microsoft.com/Forums/ja-JP/068b5f82-94b3-442e-8bd3-6ff1614b4c5e/tcp21?forum=w7itprogeneralja|TCPの接続タイムアウトの21秒について]]
※TCP接続が確立されたときに、再送タイマーは 3 秒に初期化されます。ただし、このタイマーは、RFC793 に記載されているように、[[https://www26.atwiki.jp/naobe/pages/29.html|SRTT (Smoothed Round Trip Time)]] の計算を使用して接続の特性に合わせて動的に調整されます。\\
[[https://support.microsoft.com/ja-jp/help/170359/how-to-modify-the-tcp-ip-maximum-retransmission-time-out|TCP/IP の再送タイムアウトの最大値を変更する方法]]
※値の変更を行った場合は有効化するために再起動が必要です
[[https://mio.yokohama/?p=221|TCPの再送処理を見てみる[TCP Retransmission]]]\\
[[http://d.hatena.ne.jp/incarose86/20121222/1356193183|Windows における TCP の再送機能を確認する]]
{{:it技術:tcp再送.png|}}
再送回数を超えた場合、OS側で通信が切断され、Winsock 10053 WSAECONNABORTED エラーとなる。
[[https://www.daisukekobayashi.com/blog/winsock-10053-wsaeconnaborted-error-and-tcp-retransmission-timeout/|Winsock 10053 WSAECONNABORTED エラーと TCP の再送タイムアウト]]
==== 参照 ====
* [[https://www.manuals.nec.co.jp/contents/system/files/nec_manuals/node/290/html/use/tuning/communication.html|構築・運用: WebOTX Application Server Manual]]
* [[https://blogs.msdn.microsoft.com/jpsql/2014/05/25/troubleshooting-connectivity-7/|Troubleshooting Connectivity #7 – 接続タイムアウトエラーまでの時間は?]]
* [[http://itpro.nikkeibp.co.jp/article/COLUMN/20070703/276587/|Lesson2:3回のやりとりで相手とつながる,アプリはポート番号で指定する]]
===== ネットワークドライブの割り当て不要 =====
「net use」コマンドでは、ネットワークドライブを割り当てしなくても接続できる。\\
バッチなどでネットワークドライブを無理に割り当てする必要はない。
net use x: \\server1\share1 /user:user01 *
↓
net use \\server1\share1 /user:user01 *
この場合は、ユーザーは例えば「dir \\server1\share1」というふうに、常にUNC形式でリソースを指定する必要がある。
参照:[[http://www.atmarkit.co.jp/ait/articles/0402/21/news007.html|Windowsでアカウントを指定してIPC$共有リソースへ接続する]]
==== エクスプローラーとWindows SeviceのNet Useは影響しない ====
対話形式のログオンはエクスプローラー側で管理していて、Windows Serverなどの非対話形式は別で管理しているから影響しない。\\
https://www.idearu.info/article/data/ds1061
また、コマンドプロンプトを通常起動した場合と、昇格して起動した場合でも同様にセッションが分かれるため、同一の接続先へ異なるユーザーでnet use接続できるようです。\\
[[https://www.atmarkit.co.jp/ait/articles/1502/27/news149.html|管理者権限のあるコマンドプロンプトからマップしたドライブにアクセスする]]
===== システムエラー1219 =====
ネットワークドライブを接続するバッチを実行した際に、システムエラー1219「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」が発生した場合
【対応】\\
コマンドプロンプトで「net use」を入力してxx.xx.xx.xx/IPC$ と付いていたなら、エクスプローラーで該当のサーバーに繋いでいる可能性が高い。\\
まずは、対象のドライブを開いているエクスプローラーを閉じる。\\
またはコマンドプロンプトで「net use xx.xx.xx.xx/IPC$ /delete /no」を入力する。
その上で、ネットワークドライブを接続するバッチを実行させる。\\
それが駄目なら、ワークステーションサービスを再起動する。
net stop Workstation
net start Workstation
【参照】
* [[https://social.technet.microsoft.com/Forums/ja-JP/5c9da934-6885-423c-8d25-122bc7d1e9d7/1219?forum=w8itpro|ネットワークドライブの再割当て時にシステムエラー1219で実行できない]]
* [[http://srz-zumix.blogspot.jp/2015/04/net-use-1219.html|net use でシステムエラー 1219]]
* [[https://qiita.com/kiitadesu/items/2a1dd630a47a772e4699|net use ~ /deleteしたのに、再度net useで繋ごうとすると1219エラー発生]]
* [[https://windows.command-ref.com/cmd-net-use.html|net use コマンドオプション]]
===== アクセス拒否 =====
共有アクセス権でEveryoneでフルアクセスにしていても、セキュリティタブ側で対象ユーザーの権限がないとアクセス拒否エラーになる。
ファイル共有をかけるとき、Everyone(誰でもアクセス可能)にするには2つのアクセス許可を行う。
- フォルダのプロパティを開きセキュリティタブにある編集ボタンを押して、アクセス許可の画面を開く。アクセス許可の画面で追加ボタンを押して、Everyoneアカウントにフルコントロール権限を与える。
- フォルダのプロパティを開き、共有タブにある詳細な共有ボタンを押して、詳細な共有の画面を開く。「このフォルダを共有する」をチェックして、アクセス許可ボタンを押し、Everyoneアカウントにフルコントロールの権限を与える
* [[https://www.haruru29.net/blog/post-5720/|ファイル共有はNTFSアクセス権と共有アクセス権のどちらで設定?]]
* [[https://www.code-lab.net/?p=21208|Windowsのファイル共有でEvryoneからのアクセスを許可する]]