Architecture of Network Implementation - PowerPoint PPT Presentation

About This Presentation
Title:

Architecture of Network Implementation

Description:

Architecture of Network Implementation Reading: Chapters 3 and 4 Layer-Based Communication Models Two Important Concepts in the Layered Model Protocols Rules that two ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 22
Provided by: csFsuEdu8
Learn more at: http://www.cs.fsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Architecture of Network Implementation


1
Architecture of Network Implementation
  • Reading Chapters 3 and 4

2
Layer-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
3
Two 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)

4
ISO/OSI Reference Model
ISO/OSI Reference model
Application
Presentation
Session
Transport
Network
Data link
Physical
5
ISO/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

6
TCP/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
7
Interplay 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
8
PDU/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

9
Managing Network Packets in Kernel
  • Socket buffers
  • Where packets are stored, manipulated.
  • Socket buffer queues
  • Linked list of socket buffers

10
Socket Buffers (skb)
11
Some 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

12
Updates of skb_buff as packet passing different
layers
13
Operations 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

14
Creating/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)

15
Skb_clone()
16
skb_copy()
17
Manipulating 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()
18
Socket buffer queue
19
Operations 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

20
Managing 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)

21
Next time
  • Chapter 5 network devices
Write a Comment
User Comments (0)
About PowerShow.com