15
Linux Networking 2012 年 5 年 年年 年年 年年0512-68839302 E-mail [email protected] 年年http://staff.ustc.edu.cn/~mengning 年年 年年年年年年年年年年年年年年年年年 166 年年年年 A302 年

Linux Networking

  • Upload
    alton

  • View
    154

  • Download
    0

Embed Size (px)

DESCRIPTION

Linux Networking. 主讲:孟宁 电话:0512-68839302 E-mail:[email protected] 主页:http://staff.ustc.edu.cn/~mengning 地址:苏州工业园区独墅湖高等教育区仁爱路166号明德楼A302室. 2012年5月. Structure of the Linux kernel. IEEE 802 in the Linux network architecture. Packet queues in the Linux kernel. - PowerPoint PPT Presentation

Citation preview

Page 1: Linux Networking

Linux Networking

2012 年 5 月

主讲:孟宁电话: 0512-68839302E-mail : [email protected]主页: http://staff.ustc.edu.cn/~mengning地址:苏州工业园区独墅湖高等教育区仁爱路 166 号明德楼 A302室

Page 2: Linux Networking

Structure of the Linux kernel

Page 3: Linux Networking

IEEE 802 in the Linux network architecture

Page 4: Linux Networking

Packet queues in the Linux kernel

Page 5: Linux Networking

the packet buffers across the protocol hierarchy

Page 6: Linux Networking

The structure of a network device interface

Page 7: Linux Networking

A network adapter uses an interrupt to send messages

Page 8: Linux Networking

Linking net_device structures

Page 9: Linux Networking

Activity forms in the Linux network architecture

Page 10: Linux Networking
Page 11: Linux Networking
Page 12: Linux Networking

recvfrom

♦ recvfrom 、 sock_recvmsg... sock->ops->recvmsg/socket.c

♦ inet_recvmsg 、 sk->sk_prot->recvmsg/af_inet.c(struct proto_ops inet_dgram_ops)

♦ udp_recvmsg/udp.c(struct proto udp_prot)

♦ __skb_recv_datagram 、 wait_for_packet/datagram.c

Page 13: Linux Networking

interrupt rx

♦ el3_interrupt 、 el3_rx 、 dev_alloc_skb+insl(ioaddr+RX_FIFO, skb_put(skb, pkt_len)...);+netif_rx(enqueue_to_backlog)/3c589_cs.c

Page 14: Linux Networking

softirq rx

♦ net_rx_action♦ napi_complete 、 napi_gro_flush 、 napi_

gro_complete 、 netif_receive_skb 、 pt_prev->func/dev.c

♦ ip_rcv 、 ip_rcv_finish 、 ipprot->handler(skb)/ip_input.c

♦ udp_rcv 、 __udp_queue_rcv_skb/udp.c 、 ip_queue_rcv_skb/ip_sockglue.c 、 sock_queue_rcv_skb 、 sk->sk_data_ready(sk, skb_len);/sock.c

Page 15: Linux Networking

谢谢大家!