ネットワークプログラミングの基礎
## 1. ネットワークプログラミング入門
1.1 ネットワークプログラミングの概要【理解】
コンピュータネットワーク
地理的に離れた場所にある複数の独立機能を持つコンピュータと外部デバイスを通信回線で接続し、ネットワークオペレーティングシステム、ネットワーク管理ソフトウェア、およびネットワーク通信プロトコルによって管理・調整され、リソース共有と情報伝達 ...
7月6日 17:01 投稿
カスタム通信プロトコルの設計と実装:TCP/IPを用いたネットワークサービス構築
はじめに
ソケットAPIを用いたネットワークプログラミングにおいて、データの読み書きは基本的にバイトストリーム(文字列)として扱われます。しかし、実際のアプリケーション開発では、構造化されたデータ(オブジェクトや構造体)を送受信する必要があります。この課題を解決するために、アプリケーション層での「カスタムプロトコル」の定義と、データを送信可能な形式 ...
6月30日 19:45 投稿
Pythonによるソケット通信の基礎と実装
ソケットの基本概念
ソケット(Socket)は、ネットワーク上でプロセス間通信を実現するためのインターフェースです。BSD UNIXを起源とし、異なるホスト上で動作するプログラム同士がデータをやり取りするための基盤を提供します。電話網に例えるなら、ソケットは電話の差込口に相当し、IPアドレスとポート番号の組み合わせが市外局番と電話番号の役割を果たします。
ソケ ...
6月29日 16:00 投稿
Javaネットワークプログラミング完全ガイド
ネットワークプログラミング概要
JavaはInternet而生まれた言語であり、ネットワークアプリケーションの開発を言語レベルから支援している。開発者はJava提供的网络类库を使用することで、ネットワーク接続の詳細を隠蔽し、より効率的にネットワークアプリケーションを構築できる。
ソフトウェアアーキテクチャ
ネットワークアプリケーションは大きく分けて2種類のアー ...
6月25日 18:57 投稿
Haskellによるネットワークプログラミング:Socket通信の基礎から実践まで
Haskellによるネットワークプログラミング:Socket通信の基礎から実践まで
はじめに
Haskellは、高階関数、不変データ、強力な型システムといった特徴で広く知られる純粋関数型プログラミング言語です。ネットワークプログラミングにおいて、Haskellはその美しさと簡潔さを発揮し、開発者が宣言的なアプローチで複雑なネットワークアプリケーションを構築でき ...
6月21日 16:06 投稿
ネットワークエンジニアリングの基礎から応用まで
DHCPによる自動IPアドレス割り当て
ルーターでDHCPサービスを有効にするには、まずルーターのIPアドレスを設定した上で以下のコマンドを実行します。
[Router]dhcp enable
Info: The operation may take a few seconds. Please wait for a moment.done.
次に、対象のインターフェースでDHCPを有効化します。
[Router]interface GigabitEthernet0/0/1
[Router-GigabitEthe ...
6月16日 16:12 投稿
並行処理とネットワークプログラミングの基礎
基本的なソケット通信
import socket
サーバー = socket.socket() # TCPプロトコルをデフォルトで使用
サーバー.bind(('IPアドレス', ポート番号)) # IPとポートのバインディング
サーバー.listen(5) # 接続待ちキュー
クライアント, アドレス = サーバー.accept() # 接続受付、3ウェイハンドシェイク完了状態
データ = クライアント.recv(1024) # データ受信
ク ...
6月8日 21:59 投稿
LinuxシステムにおけるTCP接続制限の確認と拡張手順
1. 現在のTCP接続ステータスの確認
システム全体のTCP接続状況を把握するために、以下のコマンドを使用して現在のセッション数をカウントします。
# 確立された接続(ESTABLISHED)のみをカウントする場合
ss -atn | grep -c "ESTAB"
# 全てのソケット状態の概要を表示
ss -s
接続数が後述するシステム制限値に近い場合、新規接続の拒否やレイテンシの増加が発生する ...
6月7日 22:43 投稿
PythonでのSocket通信入門
ソケット(Socket)はネットワーク上のプログラム間で双方向通信を行うためのエンドポイントです。IPアドレスとポート番号を組み合わせた通信ハンドルとして機能し、異なるマシンや仮想環境間のデータ交換を可能にします。サーバー側では複数のサービスを提供する際、各サービスごとに固有のポートにソケットをバインドし、クライアントはそのポートに接続して通信を行いま ...
6月7日 18:06 投稿
Go言語におけるcmuxとsmuxを活用したTCPポート・コネクション多重化手法
cmuxによるポートレベルのプロトコル振り分け
cmuxは単一ポートで受信したTCPトラフィックをペイロードの先頭バイト列に基づき解析し、異なるプロトコル用リスナーへ動的にルーティングするライブラリである。HTTP、gRPC、TLS、または独自バイナリプロトコルを同一ポートで共存させる場合に有効である。
baseLn, err := net.Listen("tcp", ":19876")
if err != nil {
l ...
6月4日 20:25 投稿