Linux Networking Stack
|
|
- Bertha O’Brien’
- 8 years ago
- Views:
Transcription
1 Linux Networking Stack Kiran Divekar 28th May 2014
2 Agenda System calls in Networking world Client server model Linux networking stack Evolution of networking stack Driver Interface Introduction to Wifi Stack Wifi stack as an example Future...?
3 Simple router Control plane Module 1 to Module n are processes on the CP Module 1 Module 2 Module n Control Plane User Space Interconnect Protocol Network Driver Control Plane Kernel Space Data Plane Intercard communication mechanism
4 Problem definition All CP modules are communicating with each other IPC Control plane / Data plan communication happens over high speed network link Line cards can interact with other line cards or Control cards. And the router crashes???
5 Things to look out for... Is kernel, network driver alive, kernel log, crash dump. see if there is a particular irq screaming in /proc/interrupts /proc/sys/net/* : networking information Check top, free output if any process is hogging cpu? Check ps to see expected processes/threads are alive : status of CP processes. Try to get some info from /proc/net/nf_conntrack_stats to see if a particular type of error packet is being reported Check firewall rules: iptables -L, ifconfig, route. Kernel/Application log indicating any error: /var/log/syslog
6 Going deeper... Check files, sockets owned by each process. cat /proc/$pid/* : fd, wchan /proc/net/tcp, /proc/net/udp netstat -apeen lsof (-i for networking) Socket Status [socket operation on non-socket] Kernel modules to spit information on data structures like task_struct, struct netdevice
7 Knowing the full stack... In order to understand the complete, kernel knowledge is necessary. User space applications Threads, socket types Kernel interface through system calls TCP IP stack inside the kernel Interaction with network device driver. And the kernel subsystems.
8 Do you know this? User space Kernel space
9 User space kernel space...
10 Standard Socket Sequence The server application socket() bind() listen() The client application socket() bind() accept() 3-way handshake connect() read() write() data flow to client data flow to server write() read() close() 4-way handshake close()
11 Socket() in kernel For every socket which is created by a userspace application, there is a corresponding socket struct and sock struct in the kernel int socket (int family, int type, int protocol); SOCK_STREAM : TCP, SOCK_DGRAM: UDP, SOCK_RAW. This system call eventually invokes the sock_create() method in the kernel. struct socket { /* ONLY important members */ socket_state state; } unsigned long flags; struct fasync_struct *fasync_list; wait_queue_head_t wait; struct file *file; struct sock *sk; const struct proto_ops *ops;
12 socket queues
13 bind() in kernel int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); This system call eventually invokes the inet_bind() method in the kernel. The bind system call associates a local network transport address with a socket. For a client process, it is not mandatory to issue a bind call. The kernel takes care of doing an implicit binding when the client process issues the connect system call. The kernel function sys_bind() does the following: sock = sockfd_lookup_light(fd, &err, &fput_needed); sock->ops->bind(sock, (struct sockaddr *)address, addrlen); Point to note: Binding to unprivileged ports (<1024)
14 listen() in kernel int listen(int sockfd, int backlog); backlog argument defines the maximum length to which the queue of pending connections for sockfd may grow. Linux uses two queues, a SYN queue (or incomplete connection queue) and an accept queue (or complete connection queue). Connections in state SYN RECEIVED are added to the SYN queue and later moved to the accept queue when their state changes to ESTABLISHED, i.e. when the ACK packet in the 3-way handshake is received. As the name implies, the accept call is then implemented simply to consume connections from the accept queue. In this case, the backlog argument of the listen syscall determines the size of the accept queue. SYN queue with a size specified by a system wide setting. /proc/sys/net/ipv4/tcp_max_syn_backlog. accept queue with a size specified by the application. Implementation is in inet_listen() kernel function.
15 connect() in kernel int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Calls inet_autobind() to use the available source port as needed. Fills destination in inet_sock and calls ipv4_stream_connect or ipv4_datagram_connect (for IPV4). Routing is done by ip_route_connect function (L3)
16 accept() in kernel int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); This system call eventually invokes the inet_accept() method in the kernel.
17 TCP 3-way handshake (SYN)
18 TCP 3-way handshake (SYN-ACK)
19 TCP 3-way handshake (SYN-ACK)
20 TCP 3-way handshake (ACK)
21 close() in kernel int shutdown(int sockfd, int how); int close(int sockfd); Shutdown can bring down the connection in half duplex mode. At the point, the queues associated with socket are not purged. Hence, it is necessary to call the close() function.
22 Network stack Architecture Application User Kernel Socket Layer Socket Interface PF_INET PF_PACKET PF_UNIX PF_... SOCK_ STREAM TCP SOCK_ DGRAM UDP SOCK _RAW SOCK _RAW SOCK_ DGRAM.. Protocol Layers IPV4 Ethernet Network Device Layer... PPP WLAN Kernel Device Layer Intel E1000 Hardware
23 Socket Data Structures For every socket which is created by a user space application, there is a corresponding struct socket and struct sock in the kernel. struct socket: include/linux/net.h Data common to the BSD socket layer Has only 8 members Any variable sock always refers to a struct socket struct sock : include/net/sock.h Data common to the Network Protocol layer (i.e., AF_INET) Any variable sk always refers to a struct sock.
24 AF Interface Main data structures struct net_proto_family struct proto_ops Key function sock_register(struct net_proto_family *ops) Each address family: Implements the struct net _proto_family. Calls the function sock_register( ) when the protocol family is initialized. Implement the struct proto_ops for binding the BSD socket layer and protocol family layer.
25 INET and PACKET proto_family static const struct net_proto_family inet_family_ops = {.family = PF_INET,.create = inet_create,.owner = THIS_MODULE, /* af_inet.c */ }; static const struct net_proto_family packet_family_ops = {.family = PF_PACKET,.create = packet_create,.owner = THIS_MODULE, /* af_packet.c */ };
26 PF_INET proto_ops inet_stream_ops (TCP) inet_dgram_ops (UDP) inet_sockraw_ops (RAW).family PF_INET PF_INET PF_INET.owner THIS_MODULE THIS_MODULE THIS_MODULE.release inet_release inet_release inet_release.bind inet_bind inet_bind inet_bind.connect inet_stream_connect inet_dgram_connect inet_dgram_connect.socketpair sock_no_socketpair sock_no_socketpair sock_no_socketpair.accept inet_accept sock_no_accept sock_no_accept.getname inet_getname inet_getname inet_getname.poll tcp_poll udp_poll datagram_poll.ioctl inet_ioctl inet_ioctl inet_ioctl.listen inet_listen sock_no_listen sock_no_listen.shutdown inet_shutdown inet_shutdown inet_shutdown.setsockopt sock_common_setsockopt sock_common_setsockopt sock_common_setsockopt.getsockopt sock_common_getsockop sock_common_getsockop sock_common_getsockop.sendmsg tcp_sendmsg inet_sendmsg inet_sendmsg.recvmsg sock_common_recvmsg sock_common_recvmsg sock_common_recvmsg.mmap sock_no_mmap sock_no_mmap sock_no_mmap.sendpage tcp_sendpage inet_sendpage inet_sendpage.splice_read tcp_splice_read net/ipv4/af_inet.c
27 udp_prot struct proto udp_prot = {.name = "UDP",.owner = THIS_MODULE,.close = udp_lib_close,.connect = ip4_datagram_connect,.disconnect = udp_disconnect,.ioctl = udp_ioctl,.destroy = udp_destroy_sock,.setsockopt = udp_setsockopt,.getsockopt = udp_getsockopt,.sendmsg = udp_sendmsg,.recvmsg = udp_recvmsg,.sendpage = udp_sendpage,.backlog_rcv = udp_queue_rcv_skb,.hash = udp_lib_hash,.unhash = udp_lib_unhash,.get_port = udp_v4_get_port,.memory_allocated = &udp_memory_allocated,.sysctl_mem = sysctl_udp_mem,.sysctl_wmem = &sysctl_udp_wmem_min,.sysctl_rmem = &sysctl_udp_rmem_min,.obj_size = sizeof(struct udp_sock),.slab_flags = SLAB_DESTROY_BY_RCU,.h.udp_table = &udp_table, #ifdef CONFIG_COMPAT.compat_setsockopt = compat_udp_setsockopt,.compat_getsockopt = compat_udp_getsockopt, #endif }; net/ipv4/af_inet.c
28 Relationship struct sock sk_common sk_common sk_lock sk_lock sk_backlog sk_backlog struct socket state state type type flags flags fasync_list fasync_list struct proto_ops inet_release inet_release inet_bind inet_bind inet_accept inet_accept wait wait file file sk sk proto_ops proto_ops struct proto udp_lib_close udp_lib_close ipv4_dgram_connect ipv4_dgram_connect udp_sendmsg udp_sendmsg udp_recvmsg udp_recvmsg af_inet.c af_inet.c PF_INET PF_INET (*sk_prot_creator) (*sk_prot_creator) sk_socket sk_socket struct sock_common skc_node skc_node skc_refcnt skc_refcnt skc_hash skc_hash skc_proto skc_proto skc_net skc_net sk_send_head sk_send_head......
29 protocol handlers
30 Key structure: packet_type struct packet_type { unsigned short type; htons(ether_type) struct net_device *dev; NULL means all dev int (*func) (...); handler address void *data; private data struct list_head list; }; There are two exported kernel functions for adding and removing handlers: void dev_add_pack(struct packet_type *pt) void dev_remove_pack(struct packet_type *pt)
31 sk_buff structure...
32 sk_buff Kernel buffer that stores packets. Contains headers for all network layers. Creation Application sends data to socket. Packet arrives at network interface. Copying Copied from user/kernel space. Copied from kernel space to NIC. Send: appends headers via skb_reserve(). Receive: moves ptr from header to header.
33 sk_buff (cont...) sk_buff represents data and headers. sk_buff API (examples) sk_buff allocation is done with alloc_skb() or dev_alloc_skb(); drivers use dev_alloc_skb(); (free by kfree_skb() and dev_kfree_skb(). unsigned char* data : points to the current header. skb_pull(int len) removes data from the start of a buffer by advancing data to data+len and by decreasing len. Almost always sk_buff instances appear as skb in the kernel code
34 sk_buff functions skb_headroom(), skb_tailroom() Prototype / Description int skb_headroom(const struct sk_buff *skb); bytes at buffer head int skb_tailroom(const struct sk_buff *skb); bytes at buffer
35 sk_buff functions skb_reserve() Prototype void skb_reserve(struct sk_buff *skb, unsigned int len); Description adjust headroom. Used to make reservation for the header. When setting up receive packets that an ethernet device will DMA into, skb_reserve(skb, NET_IP_ALIGN) is called. This makes it so that, after the ethernet header, the protocol header will be aligned on at least a 4-byte boundary
36 sk_buff functions skb_push() Prototype unsigned char *skb_push(struct sk_buff *skb, unsigned int len); Description add data to the start of a buffer. skb_push() decrements 'skb- >data' and increments 'skb->len'. e.g. adding ethernet header before IP, TCP header.
37 sk_buff functions skb_pull() Prototype unsigned char *skb_pull(struct sk_buff *skb, unsigned int len); Description remove data from the start of a buffer
38 sk_buff functions skb_put() Prototype unsigned char *skb_put(struct sk_buff *skb, unsigned int len); Description add data to a buffer. skb_put() advances 'skb->tail' by the specified number of bytes, it also increments 'skb->len' by that number of bytes as well. Make sure, that enough tailroom is available, else skb_over_panic()
39 sk_buff functions skb_trim() Prototype void skb_trim(struct sk_buff *skb, unsigned int len); Description remove end from a buffer
40 Network device drivers net_device registration hard_start_xmit function pointer Interrupt handler for packet reception Bus Interaction (e.g. PCI) NAPI context
41 net_device structure net_device represents a network interface card. It is used to represent physical or virtual devices. e.g. loopback devices, bonding devices used for load balancing or high availability. Implemented using the private data of the device (the void *priv member of net_device); unsigned char* data : points to the current header. skb_pull(int len) removes data from the start of a buffer by advancing data to data+len and by decreasing len. Almost always sk_buff instances appear as skb in the kernel code
42 net_device structure (cont...) unsigned int mtu Maximum Transmission Unit: the maximum size of frame the device can handle. unsigned int flags, dev_addr[6]. void *ip_ptr: IPv4 specific data. This pointer is assigned to a pointer to in_device in inetdev_init() (net/ipv4/devinet.c) struct in_device: It contains a member named cnf (which is instance of ipv4_devconf). Setting /proc/sys/net/ipv4/conf/all/forwarding
43 Packet Transmission TCP/IP stack calls dev_queue_xmit function to queue the packet in the device queue. The device driver has a Tx handler registered as hard_start_xmit() function pointer. This function transmits the packet over wire or air and waits for completion callback. This completion callback is generally used to free the sk_buff associated with the packet.
44 Packet Transmission (cont...) Handling of sending a packet is done by ip_route_output_key(). Routing lookup also in the case of transmission. If the packet is for a remote host, set dst >output to ip_output() ip_output() will call ip_finish_output() This is the NF_IP_POST_ROUTING point
45 Packet Reception When working in interrupt-driven model, the nic registers an interrupt handler with the IRQ with which the device works by calling request_irq(). This interrupt handler will be called when a frame is received. The same interrupt handler will be called when transmission of a frame is finished and under other conditions like errors. Interrupt handler should verify interrupt cause Control transferred to TCP/IP stack using netif_rx() or netif_rx_ni()
46 Packet Reception (cont...) Interrupt handler: sk_buff is allocated by calling dev_alloc_skb() ; also eth_type_trans() is called; It also advances the data pointer of the sk_buff to point to the IP header using skb_pull(skb, ETH_HLEN). This interrupt handler will be called when a frame is received. The same interrupt handler will be called when transmission of a frame is finished and under other conditions like errors. Interrupt handler should verify interrupt cause.
47 Network Packets Handling
48 Physical ( Ethernet ) [L1] NIC generates an Interrupt Request ( IRQ ) The card driver is the Interrupt Service Routine ( ISR ) - disables interrupts Allocates a new sk_buff structure Fetches packet data from card buffer to freshly allocated sk_buff ( using DMA ) Invokes netif_rx() When netif_rx() returns, the Interrupts are reenabled and the ISR is terminated
49 Journey of a packet The picture: Receiving Process wake_up_interruptible() Socket Level data_ready() TCP Processing UDP ICMP tcp_rcv() udp_rcv() icmp_rcv() Other Layer 3 Proc AF_INET ( IP ) AF_PACKET *_rcv() ip_rcv() packet_rcv() Deferred pkt rcptn net_rx_action() Low Lever Pkt Rx netif_rx() Ethernet Driver
50 TCP/IP stack Minimize copying Zero copy technique Page remapping Branch optimization Avoid process migration or cache misses Avoid dynamic assignment of interrupts to different CPUs Combine Operations within the same layer to minimize passes to the data
51 Wifi Networking stack
52 Wifi Programming Steps for programming the wireless extensions: Open a network socket. (PF_INET, SOCK_DGRAM). Setup the wireless request using struct iwreq. Set device name. Set wireless request data. Set subioctl_no. Invoke device ioctl. Wait for the response. [ Blocking Call ] Wireless events are received over netlink socket. ( PF_NETLINK )
53 Wifi kernel handling Kernel space handling: * When kernel ioctl handler transfers control to the ioctl from the wireless device driver. * The driver invokes appropriate wireless extension call based on the ioctl command. * The wireless extension call transfers control to wireless firmware using special command interface over the USB/SDIO/MMC bus. * Wireless driver can receive events from firmware. ( e.g.link_loss Event)
54 Driver firmware interface What is a firmware? * Firmware is wireless networking software that runs on the wireless chipset. * The wireless device driver downloads the firmware to the wireless chipset, upon initialization. * All low level wireless operations are performed by the firmware software. * It works in two modes Synchronous Request, response protocol Asynchronous Events from FW. * The firmware resides in /lib/firmware/ e.g. /lib/firmware/iwl-3945.ucode
55 Need for NGW Next Generation Wireless Centralized control for all wireless work Drivers implement small set of configuration methods Semantics as per flows in the IEEE specifications Various modes of operation Station, AP, Monitor, IBSS, WDS, Mesh, P2P
56 Mac80211, cfg80211 Mac80211 is Linux kernel subsytem Implements shared code for soft MAC, half MAC devices Contains MLME (Media Access Control (MAC) Layer Management Entity) Authenticate, Deauthenticate, Associate, Disassociate Reassociate, Beacon, Probe Cfg80211 is the layer between user space and mac80211.
57 architecture
58 architecture
59 END OF PART I Questions...
Operating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski pxk@cs.rutgers.edu 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
More informationThe POSIX Socket API
The POSIX Giovanni Agosta Piattaforme Software per la Rete Modulo 2 G. Agosta The POSIX Outline Sockets & TCP Connections 1 Sockets & TCP Connections 2 3 4 G. Agosta The POSIX TCP Connections Preliminaries
More informationNetwork packet capture in Linux kernelspace
Network packet capture in Linux kernelspace An overview of the network stack in the Linux kernel Beraldo Leal beraldo@ime.usp.br http://www.ime.usp.br/~beraldo/ Institute of Mathematics and Statistics
More informationICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab. angelo.liguori@uniroma3.it
Course: Software Defined Radio ICT SEcurity BASICS Angelo Liguori angelo.liguori@uniroma3.it SP4TE lab 1 Simple Timing Covert Channel Unintended information about data gets leaked through observing the
More informationTutorial on Socket Programming
Tutorial on Socket Programming Computer Networks - CSC 458 Department of Computer Science Seyed Hossein Mortazavi (Slides are mainly from Monia Ghobadi, and Amin Tootoonchian, ) 1 Outline Client- server
More informationELEN 602: Computer Communications and Networking. Socket Programming Basics
1 ELEN 602: Computer Communications and Networking Socket Programming Basics A. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing
More informationSocket Programming. Kameswari Chebrolu Dept. of Electrical Engineering, IIT Kanpur
Socket Programming Kameswari Chebrolu Dept. of Electrical Engineering, IIT Kanpur Background Demultiplexing Convert host-to-host packet delivery service into a process-to-process communication channel
More informationComputer Networks Network architecture
Computer Networks Network architecture Saad Mneimneh Computer Science Hunter College of CUNY New York - Networks are like onions - They stink? - Yes, no, they have layers Shrek and Donkey 1 Introduction
More informationSEP Packet Capturing Using the Linux Netfilter Framework Ivan Pronchev pronchev@in.tum.de
SEP Packet Capturing Using the Linux Netfilter Framework Ivan Pronchev pronchev@in.tum.de Today's Agenda Goals of the Project Motivation Revision Design Enhancements tcpdump vs kernel sniffer Interesting
More informationLinux Kernel Networking. Raoul Rivas
Linux Kernel Networking Raoul Rivas Kernel vs Application Programming No memory protection Memory Protection We share memory with devices, scheduler Sometimes no preemption Can hog the CPU Segmentation
More informationNetworks. Inter-process Communication. Pipes. Inter-process Communication
Networks Mechanism by which two processes exchange information and coordinate activities Inter-process Communication process CS 217 process Network 1 2 Inter-process Communication Sockets o Processes can
More informationSocket Programming. Srinidhi Varadarajan
Socket Programming Srinidhi Varadarajan Client-server paradigm Client: initiates contact with server ( speaks first ) typically requests service from server, for Web, client is implemented in browser;
More informationUNIX Sockets. COS 461 Precept 1
UNIX Sockets COS 461 Precept 1 Clients and Servers Client program Running on end host Requests service E.g., Web browser Server program Running on end host Provides service E.g., Web server GET /index.html
More informationOptimizing Point-to-Point Ethernet Cluster Communication
Department of Computer Science Chair of Computer Architecture Diploma Thesis Optimizing Point-to-Point Ethernet Cluster Communication Mirko Reinhardt Chemnitz, February 28, 2006 Supervisor: Advisor: Prof.
More informationIntroduction to Socket Programming Part I : TCP Clients, Servers; Host information
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Keywords: sockets, client-server, network programming-socket functions, OSI layering, byte-ordering Outline: 1.) Introduction
More informationImplementing Network Software
Implementing Network Software Outline Sockets Example Process Models Message Buffers Spring 2007 CSE 30264 1 Sockets Application Programming Interface (API) Socket interface socket : point where an application
More informationAnalysis of Open Source Drivers for IEEE 802.11 WLANs
Preprint of an article that appeared in IEEE conference proceeding of ICWCSC 2010 Analysis of Open Source Drivers for IEEE 802.11 WLANs Vipin M AU-KBC Research Centre MIT campus of Anna University Chennai,
More informationIMPROVING PERFORMANCE OF SMTP RELAY SERVERS AN IN-KERNEL APPROACH MAYURESH KASTURE. (Under the Direction of Kang Li) ABSTRACT
IMPROVING PERFORMANCE OF SMTP RELAY SERVERS AN IN-KERNEL APPROACH by MAYURESH KASTURE (Under the Direction of Kang Li) ABSTRACT With continuous increase in average size and number of e-mails on the Internet,
More informationUnix Network Programming
Introduction to Computer Networks Polly Huang EE NTU http://cc.ee.ntu.edu.tw/~phuang phuang@cc.ee.ntu.edu.tw Unix Network Programming The socket struct and data handling System calls Based on Beej's Guide
More informationLab 4: Socket Programming: netcat part
Lab 4: Socket Programming: netcat part Overview The goal of this lab is to familiarize yourself with application level programming with sockets, specifically stream or TCP sockets, by implementing a client/server
More informationSocket Programming. Request. Reply. Figure 1. Client-Server paradigm
Socket Programming 1. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing with the request(s) received, and returns a reply
More informationProgrammation Systèmes Cours 9 UNIX Domain Sockets
Programmation Systèmes Cours 9 UNIX Domain Sockets Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/progsyst/
More informationSocket Programming in C/C++
September 24, 2004 Contact Info Mani Radhakrishnan Office 4224 SEL email mradhakr @ cs. uic. edu Office Hours Tuesday 1-4 PM Introduction Sockets are a protocol independent method of creating a connection
More informationLab 6: Building Your Own Firewall
CS498 Systems and Networking Lab Spring 2012 Lab 6: Building Your Own Firewall Instructor: Matthew Caesar Due: Firewalls are widely deployed technologies for protecting networks from unauthorized access
More informationXinying Wang, Cong Xu CS 423 Project
Understanding Linux Network Device Driver and NAPI Mechanism Xinying Wang, Cong Xu CS 423 Project Outline Ethernet Introduction Ethernet Frame MAC address Linux Network Driver Intel e1000 driver Important
More informationLinux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
More informationEthernet. Ethernet. Network Devices
Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking
More informationNS3 Lab 1 TCP/IP Network Programming in C
NS3 Lab 1 TCP/IP Network Programming in C Dr Colin Perkins School of Computing Science University of Glasgow http://csperkins.org/teaching/ns3/ 13/14 January 2015 Introduction The laboratory exercises
More informationAT12181: ATWINC1500 Wi-Fi Network Controller - AP Provision Mode. Introduction. Features. Atmel SmartConnect APPLICATION NOTE
Atmel SmartConnect AT12181: ATWINC1500 Wi-Fi Network Controller - AP Provision Mode APPLICATION NOTE Introduction This application note explains how to build the state-of-art Internet of Things (IoT) applications
More informationIT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking.
Aim: IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking. Other Objective of this lab session is to learn how to do socket
More informationNetworking Test 4 Study Guide
Networking Test 4 Study Guide True/False Indicate whether the statement is true or false. 1. IPX/SPX is considered the protocol suite of the Internet, and it is the most widely used protocol suite in LANs.
More informationTCP/IP - Socket Programming
TCP/IP - Socket Programming jrb@socket.to.me Jim Binkley 1 sockets - overview sockets simple client - server model look at tcpclient/tcpserver.c look at udpclient/udpserver.c tcp/udp contrasts normal master/slave
More informationLinux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
More informationPacket Sniffing and Spoofing Lab
SEED Labs Packet Sniffing and Spoofing Lab 1 Packet Sniffing and Spoofing Lab Copyright c 2014 Wenliang Du, Syracuse University. The development of this document is/was funded by the following grants from
More informationRF Monitor and its Uses
RF Monitor and its Uses Pradipta De prade@cs.sunysb.edu Outline RF Monitoring Basics RF Monitoring Installation Using RF Monitoring RF Monitoring on WRT54GS Extending RF Monitoring UDP Lite Comments on
More informationLinux Firewall Lab. 1 Overview. 2 Lab Tasks. 2.1 Task 1: Firewall Policies. Laboratory for Computer Security Education 1
Laboratory for Computer Security Education 1 Linux Firewall Lab Copyright c 2006-2011 Wenliang Du, Syracuse University. The development of this document is funded by the National Science Foundation s Course,
More informationIntroduction to Socket programming using C
Introduction to Socket programming using C Goal: learn how to build client/server application that communicate using sockets Vinay Narasimhamurthy S0677790@sms.ed.ac.uk CLIENT SERVER MODEL Sockets are
More informationPorting applications & DNS issues. socket interface extensions for IPv6. Eva M. Castro. ecastro@dit.upm.es. dit. Porting applications & DNS issues UPM
socket interface extensions for IPv6 Eva M. Castro ecastro@.upm.es Contents * Introduction * Porting IPv4 applications to IPv6, using socket interface extensions to IPv6. Data structures Conversion functions
More informationSession NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software
Session NM059 TCP/IP Programming on VMS Geoff Bryant Process Software Course Roadmap Slide 160 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server
More informationWhat is CSG150 about? Fundamentals of Computer Networking. Course Outline. Lecture 1 Outline. Guevara Noubir noubir@ccs.neu.
What is CSG150 about? Fundamentals of Computer Networking Guevara Noubir noubir@ccs.neu.edu CSG150 Understand the basic principles of networking: Description of existing networks, and networking mechanisms
More informationOSBRiDGE 5XLi. Configuration Manual. Firmware 3.10R
OSBRiDGE 5XLi Configuration Manual Firmware 3.10R 1. Initial setup and configuration. OSBRiDGE 5XLi devices are configurable via WWW interface. Each device uses following default settings: IP Address:
More informationINTRODUCTION UNIX NETWORK PROGRAMMING Vol 1, Third Edition by Richard Stevens
INTRODUCTION UNIX NETWORK PROGRAMMING Vol 1, Third Edition by Richard Stevens Read: Chapters 1,2, 3, 4 Communications Client Example: Ex: TCP/IP Server Telnet client on local machine to Telnet server on
More informationIntroduction To Computer Networking
Introduction To Computer Networking Alex S. 1 Introduction 1.1 Serial Lines Serial lines are generally the most basic and most common communication medium you can have between computers and/or equipment.
More informationBasic processes in IEEE802.11 networks
Module contents IEEE 802.11 Terminology IEEE 802.11 MAC Frames Basic processes in IEEE802.11 networks Configuration parameters.11 Architect. 1 IEEE 802.11 Terminology Station (STA) Architecture: Device
More informationDirect Sockets. Christian Leber christian@leber.de. Lehrstuhl Rechnerarchitektur Universität Mannheim 25.1.2005
1 Direct Sockets 25.1.2005 Christian Leber christian@leber.de Lehrstuhl Rechnerarchitektur Universität Mannheim Outline Motivation Ethernet, IP, TCP Socket Interface Problems with TCP/IP over Ethernet
More informationpoint to point and point to multi point calls over IP
Helsinki University of Technology Department of Electrical and Communications Engineering Jarkko Kneckt point to point and point to multi point calls over IP Helsinki 27.11.2001 Supervisor: Instructor:
More informationApplication Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking
Application Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking This application note demonstrates the use of XMOS TCP/IP stack on an XMOS multicore micro controller to communicate on an ethernet-based
More informationUnix System Administration
Unix System Administration Chris Schenk Lecture 08 Tuesday Feb 13 CSCI 4113, Spring 2007 ARP Review Host A 128.138.202.50 00:0B:DB:A6:76:18 Host B 128.138.202.53 00:11:43:70:45:81 Switch Host C 128.138.202.71
More informationHardware Prerequisites Atmel SAM W25 Xplained Pro Evaluation Kit Atmel IO1 extension Micro-USB Cable (Micro-A / Micro-B)
USER GUIDE Software Programming Guide for SAM W25 Xplained Pro Atmel SmartConnect Prerequisites Hardware Prerequisites Atmel SAM W25 Xplained Pro Evaluation Kit Atmel IO1 extension Micro-USB Cable (Micro-A
More informationCustomized Data Exchange Gateway (DEG) for Automated File Exchange across Networks
Customized Data Exchange Gateway (DEG) for Automated File Exchange across Networks *Abhishek Vora B. Lakshmi C.V. Srinivas National Remote Sensing Center (NRSC), Indian Space Research Organization (ISRO),
More informationThe Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology
3. The Lagopus SDN Software Switch Here we explain the capabilities of the new Lagopus software switch in detail, starting with the basics of SDN and OpenFlow. 3.1 SDN and OpenFlow Those engaged in network-related
More informationBasic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet
Basic Networking Concepts 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet 1 1. Introduction -A network can be defined as a group of computers and other devices connected
More informationHow do I get to www.randomsite.com?
Networking Primer* *caveat: this is just a brief and incomplete introduction to networking to help students without a networking background learn Network Security. How do I get to www.randomsite.com? Local
More informationSoftware Datapath Acceleration for Stateless Packet Processing
June 22, 2010 Software Datapath Acceleration for Stateless Packet Processing FTF-NET-F0817 Ravi Malhotra Software Architect Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, the Energy Efficient Solutions
More informationTransport Layer Protocols
Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements
More informationHost Configuration (Linux)
: Location Date Host Configuration (Linux) Trainer Name Laboratory Exercise: Host Configuration (Linux) Objectives In this laboratory exercise you will complete the following tasks: Check for IPv6 support
More informationData Communication Networks. Lecture 1
Data Communication Networks Lecture 1 Saad Mneimneh Computer Science Hunter College of CUNY New York Primitive forms of networks.................................................... 2 Early networks.............................................................
More informationImproving DNS performance using Stateless TCP in FreeBSD 9
Improving DNS performance using Stateless TCP in FreeBSD 9 David Hayes, Mattia Rossi, Grenville Armitage Centre for Advanced Internet Architectures, Technical Report 101022A Swinburne University of Technology
More informationLinux LKM Firewall v 0.95 (2/5/2010)
600/650.424 Network Security Linux LKM Firewall 1 1 Overview Linux LKM Firewall v 0.95 (2/5/2010) The learning objective of this project is for you to understand how firewalls work by designing and implementing
More informationFirewalls. Chien-Chung Shen cshen@cis.udel.edu
Firewalls Chien-Chung Shen cshen@cis.udel.edu The Need for Firewalls Internet connectivity is essential however it creates a threat vs. host-based security services (e.g., intrusion detection), not cost-effective
More informationNetwork Security. Chapter 3. Cornelius Diekmann. Version: October 21, 2015. Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik
Network Security Chapter 3 Cornelius Diekmann Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik Version: October 21, 2015 IN2101, WS 15/16, Network Security 1 Security Policies and
More informationIP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP
CSCE 515: Computer Network Programming TCP/IP IP Network Layer Wenyuan Xu Department of Computer Science and Engineering University of South Carolina IP Datagrams IP is the network layer packet delivery
More informationObjectives of Lecture. Network Architecture. Protocols. Contents
Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking
More informationMultiple WiFi Clients on a Single Wireless Card
Multiple WiFi Clients on a Single Wireless Card Juan M Torrescusa Supervisor: Andrea Bittau April 27, 2006 This report is submitted as part requirement for the BSc Degree in Computer Science at University
More information2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring
2057-15 First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 7-25 September 2009 TCP/IP Networking Abhaya S. Induruwa Department
More informationTroubleshooting Tools
Troubleshooting Tools An overview of the main tools for verifying network operation from a host Fulvio Risso Mario Baldi Politecnico di Torino (Technical University of Turin) see page 2 Notes n The commands/programs
More informationApplication Architecture
A Course on Internetworking & Network-based Applications CS 6/75995 Internet-based Applications & Systems Design Kent State University Dept. of Science LECT-2 LECT-02, S-1 2 Application Architecture Today
More informationDateless and DNS Desperate! Stateless. Geoff Huston APNIC
Dateless and DNS Desperate! Stateless Geoff Huston APNIC Can I do both at once? This is definitely a Bad Idea with that intriguing possibility that it just might be made to work making it a Useless Tool
More informationACHILLES CERTIFICATION. SIS Module SLS 1508
ACHILLES CERTIFICATION PUBLIC REPORT Final DeltaV Report SIS Module SLS 1508 Disclaimer Wurldtech Security Inc. retains the right to change information in this report without notice. Wurldtech Security
More informationThe Performance Analysis of Linux Networking Packet Receiving
The Performance Analysis of Linux Networking Packet Receiving Wenji Wu, Matt Crawford Fermilab CHEP 2006 wenji@fnal.gov, crawdad@fnal.gov Topics Background Problems Linux Packet Receiving Process NIC &
More informationInterprocess Communication Message Passing
Interprocess Communication Message Passing IPC facility provides two operations: send(message) message size fixed or variable receive(message) If P and Q wish to communicate, they need to: establish a
More informationTransport Layer. Chapter 3.4. Think about
Chapter 3.4 La 4 Transport La 1 Think about 2 How do MAC addresses differ from that of the network la? What is flat and what is hierarchical addressing? Who defines the IP Address of a device? What is
More informationNetwork Security TCP/IP Refresher
Network Security TCP/IP Refresher What you (at least) need to know about networking! Dr. David Barrera Network Security HS 2014 Outline Network Reference Models Local Area Networks Internet Protocol (IP)
More informationSMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
More informationEnabling Linux* Network Support of Hardware Multiqueue Devices
Enabling Linux* Network Support of Hardware Multiqueue Devices Zhu Yi Intel Corp. yi.zhu@intel.com Peter P. Waskiewicz, Jr. Intel Corp. peter.p.waskiewicz.jr@intel.com Abstract In the Linux kernel network
More informationTCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline
OSI Seven Layer Model & Seminar Outline TCP/IP Fundamentals This seminar will present TCP/IP communications starting from Layer 2 up to Layer 4 (TCP/IP applications cover Layers 5-7) IP Addresses Data
More informationLab Exercise 802.11. Objective. Requirements. Step 1: Fetch a Trace
Lab Exercise 802.11 Objective To explore the physical layer, link layer, and management functions of 802.11. It is widely used to wireless connect mobile devices to the Internet, and covered in 4.4 of
More informationNetwork Diagnostic Tools. Jijesh Kalliyat Sr.Technical Account Manager, Red Hat 15th Nov 2014
Network Diagnostic Tools Jijesh Kalliyat Sr.Technical Account Manager, Red Hat 15th Nov 2014 Agenda Network Diagnostic Tools Linux Tcpdump Wireshark Tcpdump Analysis Sources of Network Issues If a system
More informationNetwork Administration and Monitoring
Network Administration and Monitoring Alessandro Barenghi Dipartimento di Elettronica, Informazione e Bioingengeria Politecnico di Milano barenghi - at - elet.polimi.it April 17, 2013 Recap What did we
More informationGetting started with IPv6 on Linux
Getting started with IPv6 on Linux Jake Edge LWN.net jake@lwn.net LinuxCon North America 19 August 2011 History and Motivation IPng project July 1994 IPv6 - RFC 2460 December 1998 IPv5 - Internet Stream
More informationRIOT-Lab. How to use RIOT in the IoT-Lab. Oliver "Oleg" Hahm. November 7, 2014 INRIA. O. Hahm (INRIA) RIOT-Lab November 7, 2014 1 / 29
RIOT-Lab How to use RIOT in the IoT-Lab Oliver "Oleg" Hahm INRIA November 7, 2014 O. Hahm (INRIA) RIOT-Lab November 7, 2014 1 / 29 Agenda 1 Start the RIOT 2 Using RIOT 3 Writing an Application for RIOT
More informationCSE 127: Computer Security. Network Security. Kirill Levchenko
CSE 127: Computer Security Network Security Kirill Levchenko December 4, 2014 Network Security Original TCP/IP design: Trusted network and hosts Hosts and networks administered by mutually trusted parties
More informationChapter 9. IP Secure
Chapter 9 IP Secure 1 Network architecture is usually explained as a stack of different layers. Figure 1 explains the OSI (Open System Interconnect) model stack and IP (Internet Protocol) model stack.
More informationTransport and Network Layer
Transport and Network Layer 1 Introduction Responsible for moving messages from end-to-end in a network Closely tied together TCP/IP: most commonly used protocol o Used in Internet o Compatible with a
More informationVoice over IP. Demonstration 1: VoIP Protocols. Network Environment
Voice over IP Demonstration 1: VoIP Protocols Network Environment We use two Windows workstations from the production network, both with OpenPhone application (figure 1). The OpenH.323 project has developed
More informationLESSON 3.6. 98-366 Networking Fundamentals. Understand TCP/IP
Understand TCP/IP Lesson Overview In this lesson, you will learn about: TCP/IP Tracert Telnet Netstat Reserved addresses Local loopback IP Ping Pathping Ipconfig Protocols Anticipatory Set Experiment with
More informationPost-Class Quiz: Telecommunication & Network Security Domain
1. What type of network is more likely to include Frame Relay, Switched Multi-megabit Data Services (SMDS), and X.25? A. Local area network (LAN) B. Wide area network (WAN) C. Intranet D. Internet 2. Which
More informationA way towards Lower Latency and Jitter
A way towards Lower Latency and Jitter Jesse Brandeburg jesse.brandeburg@intel.com Intel Ethernet BIO Jesse Brandeburg A senior Linux developer in the Intel LAN Access Division,
More informationHands On Activities: TCP/IP Network Monitoring and Management
Hands On Activities: TCP/IP Network Monitoring and Management 1. TCP/IP Network Management Tasks TCP/IP network management tasks include Examine your physical and IP network address Traffic monitoring
More informationPresentation of Diagnosing performance overheads in the Xen virtual machine environment
Presentation of Diagnosing performance overheads in the Xen virtual machine environment September 26, 2005 Framework Using to fix the Network Anomaly Xen Network Performance Test Using Outline 1 Introduction
More information802.11. Markku Renfors. Partly based on student presentation by: Lukasz Kondrad Tomasz Augustynowicz Jaroslaw Lacki Jakub Jakubiak
802.11 Markku Renfors Partly based on student presentation by: Lukasz Kondrad Tomasz Augustynowicz Jaroslaw Lacki Jakub Jakubiak Contents 802.11 Overview & Architecture 802.11 MAC 802.11 Overview and Architecture
More informationNetwork Programming with Sockets. Process Management in UNIX
Network Programming with Sockets This section is a brief introduction to the basics of networking programming using the BSD Socket interface on the Unix Operating System. Processes in Unix Sockets Stream
More informationWriting a C-based Client/Server
Working the Socket Writing a C-based Client/Server Consider for a moment having the massive power of different computers all simultaneously trying to compute a problem for you -- and still being legal!
More informationSubnetting,Supernetting, VLSM & CIDR
Subnetting,Supernetting, VLSM & CIDR WHAT - IP Address Unique 32 or 128 bit Binary, used to identify a system on a Network or Internet. Network Portion Host Portion CLASSFULL ADDRESSING IP address space
More informationIPv6.marceln.org. marcel.nijenhof@proxy.nl
IPv6.marceln.org marcel.nijenhof@proxy.nl RFC 1606 RFC 1606 A Historical Perspective On The Usage Of IP Version 9 1 April 1994, J. Onions Introduction The take-up of the network protocol TCP/IPv9 has been
More informationContent Distribution Networks (CDN)
229 Content Distribution Networks (CDNs) A content distribution network can be viewed as a global web replication. main idea: each replica is located in a different geographic area, rather then in the
More informationMEASURING WIRELESS NETWORK CONNECTION QUALITY
Technical Disclosure Commons Defensive Publications Series January 27, 2016 MEASURING WIRELESS NETWORK CONNECTION QUALITY Mike Mu Avery Pennarun Follow this and additional works at: http://www.tdcommons.org/dpubs_series
More informationImplementation and Performance Evaluation of M-VIA on AceNIC Gigabit Ethernet Card
Implementation and Performance Evaluation of M-VIA on AceNIC Gigabit Ethernet Card In-Su Yoon 1, Sang-Hwa Chung 1, Ben Lee 2, and Hyuk-Chul Kwon 1 1 Pusan National University School of Electrical and Computer
More informationOverview of TCP/IP. TCP/IP and Internet
Overview of TCP/IP System Administrators and network administrators Why networking - communication Why TCP/IP Provides interoperable communications between all types of hardware and all kinds of operating
More informationJOB READY ASSESSMENT BLUEPRINT COMPUTER NETWORKING FUNDAMENTALS - PILOT. Test Code: 4514 Version: 01
JOB READY ASSESSMENT BLUEPRINT COMPUTER NETWORKING FUNDAMENTALS - PILOT Test Code: 4514 Version: 01 Specific Competencies and Skills Tested in this Assessment: PC Principles Identify physical and equipment
More information