* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download CSCE 790: Computer Network Security
Survey
Document related concepts
Asynchronous Transfer Mode wikipedia , lookup
Airborne Networking wikipedia , lookup
Computer network wikipedia , lookup
Dynamic Host Configuration Protocol wikipedia , lookup
Power over Ethernet wikipedia , lookup
Remote Desktop Services wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Internet protocol suite wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Serial digital interface wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Real-Time Messaging Protocol wikipedia , lookup
Transcript
CSCE 515: Computer Network Programming Chin-Tser Huang [email protected] University of South Carolina Write a Multithreaded Server Benefits of multithreaded server Exceptions and problems with a connection is limited to corresponding thread Implementation is cleaner Two ways of making your server multithreaded Extend Thread class Implement Runnable interface 1/27/2005 2 Class Thread Constructors Thread(String name) Thread(Runnable target) Static Methods static static static static 1/27/2005 int activeCount() Thread currentThread() void sleep(long millis) throws InterruptedException void yield() 3 Class Thread Instance Methods void run() void setPriority(int newPriority) int getPriority() void start() void stop() 1/27/2005 4 Interface Runnable Method void run() 1/27/2005 5 A Multithreaded Echo Server Example Main thread accepts connections and launches a new handler thread for each connection Each handler thread echoes received data back to sender 1/27/2005 6 MTEchoServer.java /* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */ import java.net.*; import java.io.*; public class MTEchoServer extends Thread { // MTEchoServer (Socket socket) … // public void run () … // public static void main (String[] args) throws IOException … } 1/27/2005 7 Constructor MTEchoServer protected Socket socket; MTEchoServer (Socket socket) { this.socket = socket; } 1/27/2005 8 Method run public void run () { try { InputStream in = socket.getInputStream (); OutputStream out = socket.getOutputStream (); byte[] buffer = new byte[1024]; int read; while ((read = in.read (buffer)) >= 0) out.write (buffer, 0, read); } catch (IOException ex) { ex.printStackTrace (); } finally { try { socket.close (); } catch (IOException ignored) { } } } 1/27/2005 9 Method main public static void main (String[] args) throws IOException { if (args.length != 1) throw new IllegalArgumentException ("Syntax: MTEchoServer <port>"); System.out.println ("Starting on port " + args[0]); ServerSocket server = new ServerSocket (Integer.parseInt (args[0])); while (true) { Socket client = server.accept (); MTEchoServer echo = new MTEchoServer (client); echo.start (); } } 1/27/2005 10 Link Layer Three purposes of link layer Send and receive IP datagrams for IP module Send and receive ARP requests and replies for ARP module Send and receive RARP requests and replies for RARP module 1/27/2005 11 Link Layer Channel Two types of link layer channels Broadcast: e.g. LAN, wireless LAN Point-to-point: e.g. between router and router or between dialup modem and ISP router Ethernet for broadcast channel SLIP and PPP for point-to-point link 1/27/2005 12 Ethernet Most popular LAN technology because of its simplicity Different flavors of Ethernet Bus topology, star topology Coaxial cable, twisted-pair copper wire, fiber optics 10Mbps, 100Mbps, 1Gbps, 10Gbps Use 48-bit addresses 1/27/2005 13 Ethernet Frame Preamble 8 1/27/2005 Dest. Source address address 6 6 Type Data CRC 2 46-1500 4 14 Ethernet Frame Demultiplexing IP ARP RARP Ethernet driver incoming frame 1/27/2005 15 CSMA/CD Carrier Sense: an adapter never transmits a frame when it senses that other adapter is transmitting Multiple access: any adapter can transmit at any time Collision detection: an adapter aborts its transmission as soon as it detects other adapter is also transmitting, and waits a random time to retransmit 1/27/2005 16 Serial Line IP (SLIP) A simple form of encapsulation for IP datagrams on serial lines Put delimiter bytes around both end of datagram, and use escape bytes to replace occurrences of delimiter bytes in datagram Some deficiencies of SLIP No negotiation of IP addresses No type field No checksum 1/27/2005 17 Point-to-Point Protocol (PPP) Three components Framing mechanism Link control protocol (LCP) Network control protocol (NCP) Fix deficiencies in SLIP 1/27/2005 18 Requirements of PPP Packet framing Transparency Multiple network-layer protocols Multiple types of links Error detection Connection liveness Network-layer address negotiation Simplicity 1/27/2005 19 PPP Data Framing Flag Address Control 01111110 11111111 00000011 1 1 1/27/2005 1 Flag Protocol Data 1 or 2 Variable length Check 2 or 4 01111110 1 20 PPP Byte Stuffing When flag pattern appears in data, PPP stuffs a control escape byte before it b5 b4 01111110 b2 b1 PPP b1 b2 01111110 b4 b5 PPP b5 b4 01111110 01111101 b2 b1 1/27/2005 21 Loopback Interface Used for communication between client and server on the same host, and for functionality testing Class A network ID 127 reserved for lookback interface Assigned the address 127.0.0.1 and the name localhost Loopback interface puts every received datagram on IP input queue Make a copy of every datagram sent to multicast or broadcast addresses to loopback interface Forward any IP datagram sent to one of host’s own IP addresses to loopback interface 1/27/2005 22 Maximum Transmission Unit (MTU) Limit on Ethernet frame size If IP datagram is larger than MTU, IP needs to perform fragmentation Need to discover path MTU if communicating across networks 1/27/2005 23 Next Class ARP RARP IP Read TI Ch. 3, 4, 5 1/27/2005 24