Rabu, 19 Februari 2014

Client-server Socket Programming dalam bahasa Python di Linux

artikel ini membahas cara membuat socket progrmming dalam bahasa python di Linux. cara di bawah ini hanya perlu membuat satu file source code, tetapi tetap menggunakan dua terminal saat menjalankannya. langkah-langkah dalam membuatnya adalah sebagai berikut.
1.  buat soure code server pada text editor. simpan file dengan nama server.py

'''
    Simple socket server using threads
'''

import socket
import sys
from thread import *

HOST = ''   # Symbolic name meaning all available interfaces
PORT = 8889 # Arbitrary non-privileged port

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'

#Bind socket to local host and port
try:
    s.bind((HOST, PORT))
except socket.error as msg:
    print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
    sys.exit()
     
print 'Socket bind complete'

#Start listening on socket
s.listen(10)
print 'Socket now listening'

#Function for handling connections. This will be used to create threads
def clientthread(conn):
    #Sending message to connected client
    conn.send('Welcome to the server. Type something and hit enter\n') #send only takes string
     
    #infinite loop so that function do not terminate and thread do not end.
    while True:
         
        #Receiving from client
        data = conn.recv(1024)
        reply = 'OK...' + data
        if not data:
            break
        conn.sendall(reply)
    #came out of loop
    conn.close()

#now keep talking with the client
while 1:
    #wait to accept a connection - blocking call
    conn, addr = s.accept()
    print 'Connected with ' + addr[0] + ':' + str(addr[1])
     
    #start new thread takes 1st argument as a function name to be run, second is the tuple of arguments to the function.
    start_new_thread(clientthread ,(conn,))

s.close()

3. buka terminal dan masuk ke direktori tempat Anda menyimpan file source code Anda, misal cd Desktop, cd Downloads, dll
3. compile source code dengan mengetikkan python (nama file). kali ini ketikkan dengan perintah python server.py
4. buka terminal baru lalu ketikkan telnet localhost 8889 (localhost disesuaikan dengan yang ada pada source code yang telah dibuat.
7. socket yang dibuat akan memperlihatkan tampilan sebagai berikut. Anda bisa melakukan percakapan pada terminal kedua


Referensi: http://www.binarytides.com/python-socket-server-code-example/
Client-server Socket Programming dalam Bahasa Java di Linux

artikel ini akan membahas langkah-langkah membuat socket progrmming client server dalam bahasa Java. seperti membuat socket programming dalam bahasa C, kita juga harus membuat dua file source code. 

1. buat soure code server pada text editor. simpan file dengan nama yang sama dengan nama class. kali ini kita membuat file dengan nama class GreetingServer, maka simpan dengan nama file GreetingServer.java
// File Name GreetingServer.java
import java.net.*;
import java.io.*;
public class GreetingServer extends Thread{
   private ServerSocket serverSocket;
   public GreetingServer(int port) throws IOException{
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }
   public void run(){
      while(true){
         try{
            System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("Just connected to "+ server.getRemoteSocketAddress());
            DataInputStream in = new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out = new DataOutputStream(server.getOutputStream());
            out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!");
            server.close();
         }catch(SocketTimeoutException s){
            System.out.println("Socket timed out!");
            break;
         }catch(IOException e){
            e.printStackTrace();
            break;
         }
      }
   }
   public static void main(String [] args){
      int port = Integer.parseInt(args[0]);
      try{
         Thread t = new GreetingServer(port);
         t.start();
      }catch(IOException e){
         e.printStackTrace();
      }
   }
}

2. buat soure code client pada text editor. simpan file dengan nama yang sama dengan nama class. kali ini kita membuat file dengan nama class GreetingClient, maka simpan dengan nama file GreetingClient.java
// File Name GreetingClient.java
import java.net.*;
import java.io.*;
public class GreetingClient{
   public static void main(String [] args){
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try{
         System.out.println("Connecting to " + serverName + " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to " + client.getRemoteSocketAddres());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         out.writeUTF("Hello from " + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in = new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e){
         e.printStackTrace();
      }
   }
}

3. buka terminal dan masuk ke direktori tempat Anda menyimpan file source code Anda, misal cd Desktop, cd Downloads, dll
3. compile GreetingServer dengan mengetikkan javac GreetingServer.java (sebelumnya komputer harus sudah terinstall jdk dan jre.
4. jalankan GreetingServer dengan mengetik java GreetingServer (4 digit localhost). contoh java GreetingServer 8888
5. compile GreetingClient pada terminal berbeda dengan mengetik javac GreetingClient.java
6. jalankan client dengan mengetikkan  java GreetingClient localhost 8888 (sesuai dengan localhost server yang dibuat sebelumnya.
7. socket yang dibuat akan memperlihatkan tampilan sebagai berikut.

Referensi: http://www.tutorialspoint.com/java/java_networking.htm
Client-Server Socket Programming bahasa C di Linux

artikel ini akan membahas langkah-langkah membuat socket programming client-server dalam bahasa C. untuk dapat membuat chatt, kita harus membuat dua file source code, yaitu client dan server sebagai berikut.
1. buat source code server pada text editor lalu simpan, contoh simpan dengan nama server.c
 /* server */

#include<stdio.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netdb.h>
#include<stdlib.h>
#include<string.h>
#define MAX 80
#define PORT 43454
#define SA struct sockaddr

void func(int sockfd){
char buff[MAX];
int n;
for(;;){
bzero(buff,MAX);
read(sockfd,buff,sizeof(buff));
printf("From client: %s\t To client : ",buff);
bzero(buff,MAX);
n=0;
while((buff[n++]=getchar())!='\n');
write(sockfd,buff,sizeof(buff));
if(strncmp("exit",buff,4)==0){
printf("Server Exit...\n");
break;
}
}
}

int main(){
int sockfd,connfd,len;
struct sockaddr_in servaddr,cli;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd==-1){
printf("socket creation failed...\n");
exit(0);
}
else
printf("Socket successfully created..\n");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
servaddr.sin_port=htons(PORT);
if((bind(sockfd,(SA*)&servaddr, sizeof(servaddr)))!=0)
{
printf("socket bind failed...\n");
exit(0);
}

else
printf("Socket successfully binded..\n");
if((listen(sockfd,5))!=0){
printf("Listen failed...\n");
exit(0);
}
else
printf("Server listening..\n");
len=sizeof(cli);
connfd=accept(sockfd,(SA *)&cli,&len);
if(connfd<0){
printf("server acccept failed...\n");
exit(0);
}
else
printf("server acccept the client...\n");
func(connfd);
close(sockfd);
}

2. buat source code client sebagai berikut lalu simpan dengan nama client.c
/* client */

#include<stdio.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netdb.h>
#include<string.h>
#include<stdlib.h>
#define MAX 80
#define PORT 43454
#define SA struct sockaddr

void func(int sockfd){
char buff[MAX];
int n;
for(;;){
bzero(buff,sizeof(buff));
printf("Enter the string : ");
n=0;
while((buff[n++]=getchar())!='\n');
write(sockfd,buff,sizeof(buff));
bzero(buff,sizeof(buff));
read(sockfd,buff,sizeof(buff));
printf("From Server : %s",buff);
if((strncmp(buff,"exit",4))==0){
printf("Client Exit...\n");
break;
}
}
}

int main(){
int sockfd,connfd;
struct sockaddr_in servaddr,cli;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd==-1){
printf("socket creation failed...\n");
exit(0);
}
else
printf("Socket successfully created..\n");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");
servaddr.sin_port=htons(PORT);
if(connect(sockfd,(SA *)&servaddr,sizeof(servaddr))!=0){
printf("connection with the server failed...\n");
exit(0);
}
else
printf("connected to the server..\n");
func(sockfd);
close(sockfd);
}

3. buka terminal dan masuk ke direktori tempat Anda menyimpan source code yang Anda buat, misal: cd Desktop, cd Downloads, dll.
4. compile server.c dengan mengetikan gcc -o server server.c
5. buka terminal baru dan compile client.c dengan mengetikan gcc -o client client.c
6. jalankan server terlebih dahulu dengan mengetikan ./server pada teminal server
7. jalankan client dengan mengetikan ./client pada terminal client
8. computer sudah dapat menjalankan chatt antara client dan server. tampilan layar akan tampak seperti gambar di bawah ini.

Referensi: http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html


Perbedaan Jaringan Client-Server dengan Peer to Peer

Jaringan Client-server

Client Server merupakan model jaringan yang menggunakan satu atau beberapa komputer sebagai server yang memberikan resource-nya kepada komputer lain (client) dalam jaringan, server akan mengatur mekanisme akses resource yang boleh digunakan, serta mekanisme komunikasi antar node dalam jaringan.

Selain pada jaringan lokal, sistem ini bisa juga diterapkan dengan teknologi internet. Dimana ada suatu unit komputer) berfungsi sebagai server yang hanya memberikan pelayanan bagi komputer lain, dan client yang juga hanya meminta layanan dari server. Akses dilakukan secara transparan dari client dengan melakukan login terlebih dulu ke server yang dituju.

Client hanya bisa menggunakan resource yang disediakan server sesuai dengan otoritas yang diberikan oleh administrator. Aplikasi yang dijalankan pada sisi client, bisa saja merupakan resource yang tersedia di server. namun hanya bisa dijalankan setelah terkoneksi ke server. Pada implementasi software splikasi yang di-install disisi client berbeda dengan yang digunakan di server.

Jaringan peer to peer
jaringn peer to peer adalah sebuah jaringan komputer dimana setiap komputer disusun dan dihubungkan satu sama lain tanpa adanya kontrol terpusat yang berperan sebagai server murni. Setiap komputer yang ada dalam jaringan peer to peer menawarkan layanan yang sama sehingga server bisa sebagai client atau client juga bisa sebagai server.

Perbedaan antara Client-server dengan peer to peer



Kelebihan client server
Kelebihan peer to peer
Memberikan keamanan yang lebih baik
Pelaksanaan tidak terlalu mahal
Lebih mudah pengaturannya bila networknya besar karena administrasinya disentralkan
Tidak membutuhkan software server NOS ( Network Operating System )
Semua data dapat dibackup
Tidak membutuhkan administrator network yang handal
Kerugian client server
Kerugian peer to peer
Membutuhkan hardware yang lebih tinggi dan mahal untuk mesin server
Tidak cocok untuk network skala besar, administrasi menjadi tidak terkontrol
Membutuhkan administrator yang professional
Tiap user harus dilatih untuk menjalankan tugas administrative
Mempunyai satu titik lemah jika menggunakan satu server, data user menjadi tak ada jika server mati.
Keamanan kurang
Membutuhkan software NOS yang mahal contoh : NT atau server Windows 2000, XP,Novell, UNIX
Semua mesin yang sharing resource tidak mempengaruhi performaa


referensi:
http://tutorial-mj.blogspot.com/2012/08/jaringan-peer-to-peer-non-dedicated.html
http://auliarampack.blogspot.com/
http://shareaza.sourceforge.net/mediawiki/index.php/File:Networks.png





Sabtu, 15 Februari 2014

SOCKET PROGRAMMING

Socket adalah mekanisme komunikasi yang memungkinkan terjadinya  pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin [1]. Socket merupakan sebuah Class yang disediakan oleh beberapa bahasa pemrograman yang digunakan oleh aplikasi untuk saling berhubungan. Berikut ini menunjukkan bagaimana suatu aplikasi berhubungan dengan aplikasi lainnya.




Socket pertama kali diperkenalkan di sistem UnixBSD versi 4.2, pada tahun 1983, sebagai kelanjutan dari implementasi protocol TCP/IP yang muncul pertama kali pada sistem Unix BSD versi 4.1 pada akhir tahun 1981. Hampir setiap varian unix atau linux mengadopsi BSD Socket [2]
Paradigma pada aplikasi jaringan berlaku model client-server. Aplikasi yang menginisialisasi koneksi, disebut aplikasi client. Sedangkan aplikasi yang menerima inisialisasi disebut sebagai aplikasi server. Oleh karena itu, jika kita membangun suatu aplikasi jaringan yang lengkap, maka kita harus membuat aplikasi client maupun aplikasi server.
Ada dua jenis socket yang bisa digunakan untuk membangun aplikasi, yakni TCP Socket dan UDP Socket. Perbedaan utamanya adalah, model TCP menggunakan konsep connection oriented dan reliable data transfer, sedangkan model UDP menggunakan konsep connectionless oriented dan unreliable data transfer. Sebuah aplikasi dapat menggunakan salah satu dari jenis socket tersebut disesuaikan dengan peruntukan aplikasi tersebut. Aplikasi berbasis TCP biasanya adalah aplikasi yang membutuhkan ketepatan data hingga 100% tapi tidak memperdulikan lama pengiriman, sedangkan aplikasi berbasis UDP biasanya adalah aplikasi yang tidak terlalu mempedulikan ketepatan data tapi sangat peduli dengan delay pengiriman. Contoh aplikasi TCP adalah web browser, sedangkan contoh UDP adalah Video Converence.
Untuk membangun aplikasi hal pertama yang perlu dilakukan adalah menganalisa jenis aplikasi, kebutuhan bandwidth, kebutuhan ketersampaian data, dan sensitifitas terhadap delay. Berdasarkan hal ini kita bisa menentukan protokol apa yang akan kita gunakan, TCP atau UDP [3].
Dalam network programming dibutuhkan socket yang bertindak sebagai interface pemrograman pada transport layer jaringan. Socket programming dapat dibuat dalam berbagai bahasa seperti java, c, atau phyton. Socket programming juga dapat dikatakan sebagai bentuk file dan manipulasi  I/O yang digunakan untuk membaca dan melewatkannya ke mesin lain dalam suatu jaringan. Setiap socket programming terdiri dari client dan server. Dengan port number dan IP address. Sebuah server dibatasi oleh port khusus pada mesin khusus dan menunggu koneksi dari client. Sedangkan client kemudian menyambungkan koneksi ke server dengan IP address dan nomor port tertentu [4]. 

Referensi :
[4]Sayed Mohamed Buhari. 2011. Prin of Programming Languages: A paradigm approach. New Delhi: Tata Graw-Hill

Rabu, 05 Februari 2014

Setting SSH

      Secure Shell atau SSH adalah protokol jaringan yang memungkinkan pertukaran data melalui saluran aman antara dua perangkat jaringan. SSH banyak digunakan terutama pada sistem berbasis Linux dan Unix untuk mengakses akun shell, SSH dirancang sebagai pengganti Telnet dan shell remote tak aman lainnya, yang mengirim informasi, terutama kata sandi, dalam bentuk teks sederhana yang membuatnya mudah untuk dicegat. Enkripsi yang digunakan oleh SSH menyediakan kerahasiaan dan integritas data melalui jaringan yang tidak aman seperti internet.
    SSH menggunakan kriptografi kunci publik untuk mengotentikasi komputer remote dan membiarkan komputer remote untuk mengotentikasi pengguna jika perlu. SSH biasanya digunakan untuk login ke mesin remote dan mengeksekusi berbagai perintah, tetapi juga mendukung tunneling, forwarding TCP port dan X11 connections yang dapat mentransfer file menggunakan SFTP atau SCP protocols. SSH menggunakan klien-server model.

(referensi: http://id.wikipedia.org/wiki/SSH )

Setting SSH
Ketik sudo apt-get install openssh-server pada terminal jika menggunakan ubuntu/debian. Jika menggunakan fedora/red-hat, ubah apt-get menjadi yum


Setting SSL

     SSL (Secure Sockets Layer) adalah sebuah protokol keamanan data yang digunakan untuk menjaga pengiriman data web server dan pengguna situs web tersebut. SSL berfungsi untuk memastikan data transaksi yang terjadi secara online dienkripsi/diacak-acak sehingga tidak dapat dibaca oleh pihak lain. Kegunaan utamanya adalah untuk menjaga keamanan dan kerahasiaan data ketika melakukan transaksi.


      OpenSSL adalah sebuah toolkit kriptografi yang mengimplementasikan SSL v2/v3 dan Transport Layer Security (TLS v1) dan terkait dengan protokol jaringan standar kriptografi yang dibutuhkan oleh keduanya. Aplikasi OpenSSL ini merupakan command line tool yang menggunakan berbagai fungsi kriptografi OpenSSL's crypto library dari shell. OpenSSL dapat digunakan untuk:
      1.       Penciptaan RSA, DH dan DSA parameter kunci
      2.       Penciptaan sertifikat X.509, CSRs dan CRLs
      3.       Perhitungan Pesan Digests
      4.       Enkripsi dan Dekripsi dengan Ciphers
      5.       Pengujian SSL / TLS Client dan Server
      6.       Penanganan S/MIME signed or encrypted email

(referensi: http://inilahinfo.blogspot.com/2012/04/apa-itu-ssl-definisi-dan-penjelasan-ssl.html , https://www.openssl.org/ )

Installasi OpenSSL

1. Pastikan komputer telah terhubung ke dalam jaringan komputer (internet/intranet) dan pastikan komputer telah menginstal web server sebelumnya.
2. Buka aplikasi terminal pada sistem operasi Linux. Gunakan akses sebagai root dengan mengetikkan sudo su (untuk Debian based) atau su (untuk Red Hat based) atau sesuaikan distro Linux. 
3. Ketikkan perintah yum install openssl openssl-devel mod_ ssl (pada Red Hat/Fedora based gunakan yum install, untuk Debian/Ubuntu based gunakan apt-get install). Jika diperlukan dapat ditambahkan opsi –skip-broken untuk mengabaikan peringatan lainnya. Tahap ini merupakan tahap penginstallan.
4. Setelah proses instalasi selesai, ketikkan perintah /ete/init.d/httpd restart (untuk LAMP) atau /opt/lampp/lampp restart. Perintah tersebut dijalankan untuk merestart XAMPP yang dijalankan. Tujuannya adalah untuk menjalankan SSL di apache XAMPP.


Selasa, 04 Februari 2014

Setting Jaringan Komputer (LAN)

       Jaringan komputer adalah sebuah sistem yang terdiri atas komputer-komputer yang didesain untuk dapat berbagi sumber daya (data, printer, CPU, dsb), berkomunikasi (surel, pesan instan), dan dapat mengakses informasi (peramban web). Setiap bagian dari jaringan komputer dapat meminta dan memberikan layanan (service). Pihak yang meminta/menerima layanan disebut klien dan yang memberikan/mengirim layanan disebut peladen (server). Desain ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer.

Jaringan client-server

       Selain sistem client-server, jaringan komputer juga bisa dibuat dengan sistem peer to peerJaringan peer-to-peer (P2P) merupakan salah satu model jaringan komputer yang terdiri dari dua atau beberapa komputer, dimana setiap station atau komputer yang terdapat di dalam lingkungan jaringan tersebut bisa saling berbagi. Bahkan untuk membuat jaringan peer-to-peer dengan dua komputer, kita tidak perlu menggunakan hub atau switch, namun cukup menggunakan 1 kabel UTP yang dipasangkan pada kartu jaringan masing-masing komputer. Dalam jaringan ini tidak ada komputer yang berfungsi khusus, semua komputer dapat berfungsi sebagai klien dan server secara bersamaan. Pengguna masing-masing komputer bertanggung jawab terhadap administrasiresource komputer, seperti membuat nama user, menentukan yang akan di-share, menandai ijin akses bagian share tersebut, dan yang lainnya.

Jaringan peer to peer

   Dua buah komputer yang masing-masing memiliki sebuah kartu jaringan kemudian dihubungkan melalui kabel maupun nirkabel sebagai medium transmisi data, serta terdapat perangkat lunak sistem operasi jaringan akan membentuk sebuah jaringan komputer yang sederhana.

(referensi: http://dosen.gufron.com/artikel/pengertian-jaringan-peer-to-peer-p2p/7/ , https://kucingampus.wordpress.com/2013/01/17/si-jarkom-ada-yang-kenal-jaringan-komputer-itu/ )

Cara mengeset jaringan komputer
1. Pastikan komputer telah terhubung ke dalam jaringan komputer (internet/intranet). Buka aplikasi terminal pada sistem operasi Linux kemudian ketik perintah ifconfig

Perintah ifconfig merupakan perintah konfigurasi antarmuka jaringan, yaitu untuk melihat alamat jaringan/IP address default dari komputer.
Belum terdapat alamat jaringan/IP address (eth0) pada tahap ini

2. Ketik perintah cat /etc/resolv.conf
Perintah cat /etc/resolv.conf digunakan untuk membuka isi file DNS/sebagai perantara untuk menanyakan ke server DNS di internet atau intranet. File akan memberitahukan mesin linux, name server yang akan memetakan nama host atau domain ke alamat IP.
Didapat alamat DNS server/name server 127.0.1.1 (terlihat pada gambar)

3. Ketik perintah ifconfig eth0 192.168.1.x netmask 255.255.255.0 (contoh: x diisi dengan 19). Lanjutkan dengan perintah route add default gw 192.168.1.1. Kemudian ketik lagi perintah ifconfig.

Perintah ifconfig eth0 192.168.1.x netmask 255.255.255.0 dan perintah route add default gw 192.168.1.1 digunakan untuk mengeset IP client (komputer yang digunakan). Ifconfig selanjutnya digunakan untuk masuk kembali ke alamat jaringan.
Gambar menjelaskan tahap pembuatan jaringan komputer sendiri dengan mengeset IP address jaringan. Dari hasil konfigurasi antarmuka jaringan terlihat perbedaan pada eth0. Perintah pada tahap ini berhasil membuat IP address sendiri untuk jaringan komputer yang dibuat yaitu 192.168.1.19

4. Ketik perintah echo “nameserver 8.8.8.8“ > /etc/resolv.conf. Kemudian ketik perintah cat /etc/resolv.conf

echo “nameserver 8.8.8.8“ > /etc/resolv.conf. adalah perintah untuk menambahkan konfigurasi DNS ke komputer (nama server baru).  Perintah cat /etc/resolv.conf  digunakan untuk melihat alamat DNS server (dalam hal ini untuk mengecek jaringan komputer baru yang telah dibuat)
Nama server telah diubah menjadi 8.8.8.8

Peran alamat IP, subnet mask, gateway, dan alamat DNS server

Peranan alamat IP:  memberikan suatu identitas kepada host agar dikenali oleh jaringan sehingga paket data dapat disampaikan ke alamat yang tepat.
Peranan subnet mask: mengacu kepada angka biner 32 bit yang digunakan untuk membedakan network ID dengan host ID, menunjukkan letak suatu host, apakah berada di jaringan lokal atau jaringan luar. Subnet mask digunakan untuk membedakan antara Network ID dengan Host IDmenentukan alamat tujuan paket data (“local” atau “remote”), membuat suatu jaringan lebih tertata, dan menentukan jumalah host suatu jaringan.
Peranan gateway: perangkat yang digunakan untuk menghubungkan satu jaringan komputer dengan satu atau lebih jaringan komputer termasuk yang menggunakan protokol komunikasi yang berbeda sehingga informasi dari satu jaringan komputer dapat diberikan kepada jaringan komputer lain yang protokolnya berbeda.
Peranan alamat DNS server: digunakan untuk pencarian nama komputer (name resolution) di jaringan yang mengunakan TCP/IP, membantu memetakan host name sebuah komputer ke IP address.
Setting FTP Server

       FTP (File Transfer Protocol) adalah sebuah protokol Internet yang berjalan di dalam lapisan aplikasi yang merupakan standar untuk pentransferan berkas (file) komputer antarmesin dalam sebuah internetworkFTP merupakan salah satu protokol Internet yang paling awal dikembangkan dan masih digunakan hingga saat ini untuk melakukan pengunduhan (download) dan penggugahan (upload) berkas-berkas komputer antara klien FTP dan server FTP. 
            FTP server adalah server yang menjalankan software yang berfungsi untuk memberikan layanan tukan-menukar file. FTP server harus selalu siap memberikan layanan FTP apabila mendapat permintaan dari FTP klien. Sedangkan FTP client adalah komputer yang meminta koneksi ke FTP server untuk tujuan tukar menukar file. setelah terhubung ke FTP server, maka klien dapat mengunduh, mengunggah, me-rename, menghapus, dll sesuai permission yang diberikan oleh FTP server. Beberapa contoh FTP server antara lain: proftpd, vsftpd, wuftpd, dan IIS. Contoh FTP client antara lain: cuteFTP, Wget, WsFTP, getright, absoluteFTP, smartFTP, dll. 
Tujuan FTP server antara lain: - sharing data
                                                       - menyediakan indirect atau implicit remote computer
                                                       - menyediakan tempat penyimpanan bagi user
                                                       - menyediakan transfer data yang reliable dan efisien
FTP server dibagi menjadi dua, yaitu:
1. Public FTP/Anonymous FTP: FTP server yang mengizinkan siapapun untuk memperoleh (mengunduh) file-file yang terdapat pada FTP server tersebut.
2. Private FTP: FTP server yang hanya mengizinkan orang-orang tertentu untuk mengakses file-file biasanya menggunakan metode authentication untuk melindungi Privat FTP

Proses kerja FTP Server:

Cara Mengeset FTP Server
Ketik yum install nama-aplikasi. Contoh: yum install vsftpd (untuk fedora) atau apt-get install vsftpd.(untuk ubuntu)




(referensi: http://agustya-blog.blogspot.com/2013/01/pengertian-fungsi-dan-cara-kerja-ftp.html , http://jallu74.blogspot.com/2011/12/pengertian-ftp-server-dan-ftp-client.html , http://aldy.blog.student.eepis-its.edu/2013/04/06/ftp1/ , http://sabtoxandros.wordpress.com/2013/04/16/pengertian-ftp-server/ )