Title: Architecture of Network Implementation
1Architecture of Network Implementation
2Layer-Based Communication Models
Intermediate system
End systems
End systems
Anwendung
Anwendung
Application
Application
(N1)-Protocols
Instance (N1)
Instance (N1)
Instance (N1)
Instance (N1)
Layer (N1)
(N)-protocol
Instance (N)
Instance (N)
Layer (N)
(N)-protocol
Instance (N-1)
Instance (N-1)
Layer (N-1)
Transmission medium
Transmission medium
3Two Important Concepts in the Layered Model
- Protocols
- Rules that two parties talk and understand each
other - Horizontal
- Services
- Functions provided by a lower layer to the
neighboring upper layer - Vertical
- Service interface (function calls)
4ISO/OSI Reference Model
ISO/OSI Reference model
Application
Presentation
Session
Transport
Network
Data link
Physical
5ISO/OSI Model
- Physical layer
- Media types, coding methods, bit sequences vs.
physical signals - Data link layer
- Moving data between two directly connected
stations. Flow control, error detection, etc.
Shared medium access control. LLC/MAC - Network layer
- Connectivity of networks. Packet
routing/forwarding - Transport layer
- Concerning end-to-end functions between
applications. Flow control, packet ordering, etc. - Session layer
- Handling structured message exchange
- Presentation layer
- Regulating data presentation (format)
- Application layer
- Protocols for different applications, HTTP, SMTP,
FTP, etc
6TCP/IP Reference Model
Internet reference mode
ISO/OSI reference model
Application
Application (HTTP, SMTP, SSH)
7
6
Presentation
5
Session
4
Transport (TCP/UDP)
Transport
3
Internet (IPv4/v6)
Network
Data link(802.x, PPP, SLIP)
Data link
2
Physical
1
7Interplay of Layers, Instances, and Protocols
(N1)-Layer
(N)-IDU
(N)-Layer
(N)-ICI
(N)-SDU
(N)-PCI
(N)-PDU
(N-1)-ICI
(N)-PCI
(N)-SDU
(N-1)-IDU
(N-1)-Layer
(N-1)-SDU
(N-1)-ICI
8PDU/PCI/SDU/ICI/IDU
- PDU protocol data unit
- Elements exchanged between two protocol instances
- PCI (protocol control information or packet
header) SDU (service data unit) - ICI interface control information
- Passed from layer N to layer N-1 together with
layer N PDU - IDU interface data unit
- ICI PDU
9Managing Network Packets in Kernel
- Socket buffers
- Where packets are stored, manipulated.
- Socket buffer queues
- Linked list of socket buffers
10Socket Buffers (skb)
11Some important fields of skb
- prev, next, list
- Queues linked list
- sk
- Socket owning the packet
- dev
- Device receiving/sending packet
- h, nh, mac
- Pointers to the transport/network/MAC layer
headers - len
- Size of the packet
- data, head, tail, end
- Pointers associated with data packet field
- datarefp
- A counter indicating how many skb_buff points to
the packet - Not really a field of sbk_buff
12Updates of skb_buff as packet passing different
layers
13Operations on socket buffers
- Three types of operations
- Creating and releasing socket buffers
- alloc_skb(), dev_alloc_skb(), skb_clone(),
kfree_skb(), dev_kfree_skb() - Manipulating fields of socket buffers
- skb_put(), skb_push(), skb_pull(), skb_reserve()
- Managing socket buffer queues
- skb_queue_head(),etc
14Creating/releasing skb
- alloc_skb(size, gpf_mask)
- dev_alloc_skb(length)
- kfree_skb(skb)
- dev_kfree_skb(skb)
- skb_clone(skb,gpf_mask)
- skb_copy(skb,gpf_mask)
15Skb_clone()
16skb_copy()
17Manipulating skb fields
- skb_put(skb,len)
- skb_push(skb,len)
- skb_pull(skb,len)
- skb_reserve(skb,len)
After alloc_skb()
After skb_reserve()
An skb_buff containing data
After skb_put()
After skb_push()
18Socket buffer queue
19Operations on socket buffer queues
- Managing queue structures
- skb_queue_head_init(list)
- skb_queue_empty(list)
- skb_queue_len(list)
- Managing socket buffers in queues
- skb_queue_head(), skb_queue_tail(),etc
20Managing skb in queues
- skb_queue_head(list, skb)
- skb_queue_tail(list, skb)
- skb_dequeue(list)
- skb_dequeue_tail(list)
- skb_insert(oldskb,newskb)
- skb_append(oldskb,newskb)
- skb_peek(list)
- skb_peek_tail(list)
21Next time
- Chapter 5 network devices