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...

Descripción completa

Detalles Bibliográficos
Autor principal: Rosen, Rami. author (author)
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...""