Tanenbaum model
以下は上下が逆順なのに注意
5 layers:
物理層
cf. layer 1
提供するサービス
bit stream
over symbol stream
protocols
SONET
LTE
aka. 4G
データ・リンク層
cf. layer 2
対向と じかに通信してる と見ると分かりやすい。
提供するサービス
ネットワーク層のパケットを受け付けるインターフェイス
伝送誤り対策
輻輳対策
下層
フレームを送信する
frame stream
サービス3種
確認通知なし connectionless service
確認通知付き connectionless service
確認通知付き connection指向 service
errors
bit flip
burst error
誤り制御
方式
byte数
errorに弱い
byte stuffing
flag byte
最悪+100%の増加
bit stuffing
e.g. HDLC
平均 1/8 = 12.5% の悪化
物理層を使う
coding violation
preamble
信頼性
タイマーからの再送
順序番号 = sequence number
フロー制御
rate-based flow control
minor
feedback-based flow control
上位層でも繰り返される。
誤り制御戦略
error-correcting code
ja: 誤り訂正符号
error-detecting code
ja: 誤り検出符号
aka. forward error correction = FEC
error rate の spectrum ごとの戦略
低頻度: 誤り検出符号
高頻度: 誤り訂正符号
符号
parity bit
check sum
CRC
frame
構成要素4つ組
kind
seq
min = 1 bit
ack
info
body(本体)相当
制御フレームなら、ないことも
frame header: kind, seq, ack
window
w: width
w = 1
minor
w > 1
ragular
prop.
MAX_SEQ_N + 1 = MAX_W
[n,n)、特に[0,0)なのは初期状態のときのみ。
[a,b) にて buffered n は n = b - a mod (MAX_SEQ_N+1)
w = 2*B+1
bandwidth-delay
副層
channel割り当て問題を処理してる。
LLC
フレームのペイロードの抽象を暴いて、内部のパケットのプロトコルを峻別する。
ネットワーク層
cf. layer 3
routing
internetworking
現象
輻輳
en: congestion
fragmentation
MTU の調整が必要
protocols
ICMPv6
ARP/NDP
DHCP
MPLS
abbt. of multi protocol label switching
peering で使う?
connection-oriented
PPP < MPLS < IP
so-called layer 2.5
label
indexed
exact match
トランスポート層
cf. layer 4
提供サービス
reliable byte stream
aka. reliable bit pipe
⊂ connection-oriented service
XXX over TCP が また transport layer だと見ることも できる。
next gen
RFC 4960 → RFC 9260
SCTP
SST: Structured Stream Transport
応用
クラサバ
XXX over UDP もトランスポート層だと思える。
over UDP
アプリケーション層に実装されたトランスポート・プロトコル
by タネンバウム
ここに おける かも?
TLS over TPC も TLS over UDP も できる。
cf. DTLS
アプリケーション層
5, 6 は不要だった。
e.g. HTTP, DNS
副層?wint.icon
このしたに LTS のレイヤーを置くこともある。
このしたに DTN の bundle layer を置くこともある。