CHAPTER 1 : Network Theory & Java Overview By : Mr. Asyran Zarizi Bin Abdullah
Objective The end of this course you be able to : 1) Understand about network environment 2) Knowing the TCP/IP & OSI layer 3) Understand about security issues in network.
At the end of this course…..
I UNDERSTAND SIR !
BLURR………!!
What is a NETWORK ?
Before that we must know how communication in previous time
Burung merpati
Api asap
“Networking is a concept of connecting two or more computing devices together so that we can share resources like printer, scanner, memory”
How network communicate? Connect, share and transferring data from 1point to another point. LAN – MAN - WAN Wired and Wireless P2P and Client server
Network Communication Using 2 network model. OSI Model TCP/IP Model
OSI Model
OSI MODEL
TCP/IP Model
TCP/IP Model Application layer is responsible for performing encoding, encryption etc. Transport layer provide service of courier. In real life whenever we want to send a packet to another place, we go to courier shop and give them packet with address. Transport layer is the courier for communication. Internet layer determine the path how to route the packet to target destination. In above example once packet is given to courier company, then on wards courier send that packet through some transport ( car, bus or truck). Now driver has to decide which way to go in order to reach destination. So internet layer perform that work.
Protocol and Port Number Represent as a logical/virtual door for incoming and outgoing packet Basically an application or service will bind with 1 port for its usage. There are 65,535 port available in any computers 1 – 1023 are reserved for System Operations 1024 – 65,535 are available for others
Protocol and Port Number Port number: It is unique identification value represents residing position of a server in the computer. It is four digit +ve number. Default port number for major protocol that is useful to know Port 80 Port 21/22 Port 433 Port 23 Port 25
Protocol and Port Name Port Name: It is a valid user defined name to know about client system, the default port name for any local computer is localhost. Default port for major protocol that is useful to know Port 80 = Http Port 21/22 = FTP Port 433 = Https Port 23 = Telnet Port 25 = SMTP
Firewall Firewall can be either software or hardware to filter incoming and outgoing transmission for access. Firewall is a network access control device that is designed to deny all traffic except that which is explicitly allowed.
Internet Border Firewall Internet (Untrusted) Attack Packet Log File Attacker Internet Border Firewall Hardened Server Hardened Client PC Passed Packet (Ingress) Dropped Packet (Ingress) Passed Packet (Egress) Internal Corporate Network (Trusted)
Proxy Proxy Server is a middle man between a client computer and the network (usually internet) which has the function to disguise transmission from client
What is a SOCKET ? Socket is a mechanisms of communication that use to exchange data with program in same machine or different machine
Socket Programming Socket is a IPC (Inter Process Communication) facility for network application. To make socket communicate with other socket, so it need unique address as a identifier. Socket Address contain IP Address and Port Number. Example : 192.168.20.12 : 8080 IPC is a mechanism of exchange data between 1 process to another process, in a same network or different geography area. IP Address Port Number
SOCKET = IP Add + Port No
Socket Operation Socket can do some operation below : Send data Receive data Close connection Listen on input data Connection to remote machine Connect from remote machine on specific port
Network Socket Program A network program can send and receive information/data. General technology that use by network program is Chat Application Multiplayer Games Peer‐to‐peer Application
Socket Element Protocol Local IP (Private IP) Local Port Remote IP Remote Port
IP Protocol Suite
Socket to Socket Communication
Socket Type 2 type of socket that usually use : Socket Local = AF_UNIX Socket Networking = AF_INET Socket Stream = SOCK_STREAM Socket Datagram = SOCK_DGRAM Example : Socket Network Socket Datagram Protocol
JAVA Overview
JAVA Overview JAVA is a programming language created by Sun Microsystem to fully utilized Object Oriented Programming in software development. Currently this language intellectual property (IP) is owned by Oracle It require Java Development Kit (JDK) to be installed before development could be started. As a developer, text editor could be used to form the source code or any IDE that support JAVA can be a very good choice Eclipse Jcreator NetBeans Java support Network programming by certain network library which simplified a lot of development compared to C++.
Overview In Networking application mainly two programs are running one is Client program and another is Server program. In Core java Client program can be design using Socket class and Server program can be design using ServerSocket class. Both Socket and ServerSocket classes are predefined in java.net package
Java Packages Java.net = TCP/IP networking Java.io = I/O Streams & Utilities Java.rmi = Remote Invocation Java.security = Security Policies Java.lang = Threading classes *java.net.ServerSocket = use for Server Connection *java.net.Socekt = use for Client Connection
JAVA API Socket programming use Java API component to develop socket programming application. Java API is a group of library that use for develop programed. J2SE was ready with java.net package that contain classes and interface that provide API (Application Programming Interface) Low level (Socket, ServerSocket, DatagramSocket) High Level (URL, URLConnection)
Connection-Oriented & Connectionless Socket A socket programming construct can make use of either the UDP (User Datagram Protocol) or TCP (Transmission Control Protocol). Sockets that use UDP for transport are known as datagram sockets, while sockets that use TCP are termed stream sockets.
UDP & TCP UDP = User Datagram Protocol , TCP = Transmission Control Protocol.
TCP Sockets Java.net.ServerSocket class Java.net.Socket class Use for server program Local port to listen for initial connection Can be bound to local IP for multi-homed machines Java.net.Socket class Use for client program Combines socket with socket option (timeout, linger, keep alive, no delay)
UDP Sockets Java.net.DatagramSocket class Java makes no distinction between client/server for UDP sockets. Can be bound to both a local port & local IP address
Issues in JAVA language Java Network Programming will exhibit this issues. Some of them are:- Unable to access with low level network device Network security issues Firewall preventing access for your application Proxy may interfere with the inert function of your application
Sample of Java Program
Sample of Java Program