Linux Kernel Networking Implementation and Theory
Linux Kernel Networking takes you on a guided in-depth tour of the current Linux networking implementation and the theory behind it. Linux kernel networking is a complex topic, so the book won't burden you with topics not directly related to networking. This book will also not overload you with...
Autor principal: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Berkeley, CA :
Apress
2014.
|
Edición: | 1st ed. 2014. |
Colección: | Expert's voice in open source.
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629543906719 |
Tabla de Contenidos:
- ""Contents at a Glance""; ""Contents""; ""About the Author""; ""About the Technical Reviewer""; ""Acknowledgments""; ""Preface""; ""Chapter 1: Introduction""; ""The Linux Network Stack""; ""The Network Device""; ""New API (NAPI) in Network Devices""; ""Receiving and Transmitting Packets""; ""The Socket Buffer""; ""The Linux Kernel Networking Development Model""; ""Summary""; ""Chapter 2: Netlink Sockets""; ""The Netlink Family""; ""Netlink Sockets Libraries""; ""The sockaddr_nl Structure""; ""Userspace Packages for Controlling TCP/IP Networking""; ""Kernel Netlink Sockets""
- ""The Netlink Message Header""""NETLINK_ROUTE Messages""; ""Adding and Deleting a Routing Entry in a Routing Table""; ""Generic Netlink Protocol""; ""Creating and Sending Generic Netlink Messages""; ""Socket Monitoring Interface""; ""Summary""; ""Quick Reference""; ""Chapter 3: Internet Control Message Protocol (ICMP)""; ""ICMPv4""; ""ICMPv4 Initialization""; ""ICMPv4 Header""; ""Receiving ICMPv4 Messages""; ""Sending ICMPv4 Messages: “Destination Unreachable�""; ""Code 2: ICMP_PROT_UNREACH (Protocol Unreachable)""; ""Code 3: ICMP_PORT_UNREACH (“Port Unreachable�)""
- ""Code 4: ICMP_FRAG_NEEDED""""Code 5: ICMP_SR_FAILED""; ""ICMPv6""; ""ICMPv6 Initialization""; ""ICMPv6 Header""; ""Receiving ICMPv6 Messages""; ""Sending ICMPv6 Messages""; ""Example: Sending “Hop Limit Time Exceeded� ICMPv6 Messages""; ""Example: Sending “Fragment Reassembly Time Exceeded� ICMPv6 Messages""; ""Example: Sending “Destination Unreachable�/“Port Unreachable� ICMPv6 Messages""; ""Example: Sending “Fragmentation Needed� ICMPv6 Messages""; ""Example: Sending “Parameter Problem� ICMPv6 Messages""; ""ICMP Sockets (“Ping sockets�)""; ""Summary""
- ""Quick Reference""""Methods""; ""int icmp_rcv(struct sk_buff *skb); ""; ""extern void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info); ""; ""struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb); ""; ""void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info); ""; ""void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos); ""; ""Tables""; ""procfs entries""; ""sysctl_icmp_echo_ignore_all""; ""sysctl_icmp_echo_ignore_broadcasts""; ""sysctl_icmp_ignore_bogus_error_responses""; ""sysctl_icmp_ratelimit""; ""sysctl_icmp_ratemask""
- ""sysctl_icmp_errors_use_inbound_ifaddr""""Creating “Destination Unreachable� Messages with iptables""; ""Chapter 4: IPv4""; ""IPv4 Header""; ""IPv4 Initialization""; ""Receiving IPv4 Packets""; ""Receiving IPv4 Multicast Packets""; ""IP Options""; ""Timestamp Option""; ""Record Route Option""; ""IP Options and Fragmentation""; ""Building IP Options""; ""Sending IPv4 Packets""; ""Fragmentation""; ""Fast Path""; ""Slow Path""; ""Defragmentation""; ""Forwarding""; ""Summary""; ""Quick Reference""; ""Methods""; ""int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl); ""
- ""int ip_append_data(struct sock *sk, struct flowi4 *fl4, int getfrag(void *from, char *to, int offset, int len, int odd, str...""