Home

Network Basic Theory 5 (Transport Layer Protocols)

1 Comment

Inti dari transport Layer adalah untuk untuk mengatur pertukaran data dari setiap aplikasi ke masing2 end devices yang saling terhubung

Fungsi lain dari Transport Layer adalah :

  • Memungkinkan setiap aplikasi untuk berkomunikasi dengan jaringan melalui alat/end device yang sama
  • Jika diperlukan, menjaga data diterima dengan baik oleh aplikasi yang membutuhkan (reliable & connection oriented conversation)
  • Menerapkan error-handling mechanism
  • Encapsulasi/Decapsulasi (segment/de-segment) data…membuat data rekonstruksi/dekonstruksi
  • Mengawasi komunikasi individual antar setiap aplikasi di host sumber dan di host
  • Mengidintifikasi data aplikasi yang berbeda…which is Port Number
  • Flow Control

*bayangkan kita pake video steaming….yang kita terima adalah data e-mail, kita lagi e-mail…yang kita terima adalah data dari aplikasi lain…disini lah transport layer bekerja…ensure the right data delivers to the right application that needed

————————————————————————————————————————————————————————————

————————————————————————————————————————————————————————————

————————————————————————————————————————————————————————————

————————————————————————————————————————————————————————————

Supporting Reliable Communication

3 hal dasar dari reliabilitas transport layer :

  1. Tracking transmitted data
  2. Acknowledging received data
  3. Retransmitting an unacknowledged data

Aplikasi apa aja sih yang butuh reliabilitas dalam transfer data ??

  • Email (lo bayangin klo data email yg lo terima ngaco alias error)
  • Web Page (lo lagi baca manga online, gambarnya ga keluar ato setengah2 *angry*)
  • Database
  • Etc…

Yang ga terlalu butuh reliabilitas apa aja ??

  • VoIP
  • Video Streaming (VoIP dan Streaming…kalau data segment ada yang hilang…akibatnya Cuma delay alias buffering)
  • DNS (Domain Name System)
  • Etc…

*ya tetep aja kalau ilangnya banyak bufferingnya lama doooonk ?!?!? ya itu si DL (derita loe) *kidding*

————————————————————————————————————————————————————————————

UDP and TCP

  • User Datagram Protocol (UDP)
    • UDP is a simple, connectionless protocol, described in RFC 768. It has the advantage of providing for low *overhead data delivery. The pieces of communication in UDP are called datagrams. These datagrams are sent as “best effort” by this Transport layer protocol.
      • Applications that use UDP : VoIP, DNS, Streaming Media
  • Transfer Control Protocol (TCP)
    • TCP is a connection-oriented protocol, described in RFC 793. TCP incurs additional overhead to gain functions. Additional functions specified by TCP are the same order delivery, reliable delivery, and flow control. Each TCP segment has 20 bytes of overhead in the header encapsulating the Application layer data, whereas each UDP segment only has 8 bytes of overhead.
      • Applications that use TCP : E-mail, Web Browser, File Transfer

*overhead maksud gampangnya bisa kita liat gambar diatas, lebih banyak data yang dikirim…lebih besar juga makan bandwidth

Dilihat dari gambar diatas…gw akan jelasin beberapa (dari TCP nya aja)

Sequence Number : nomor urut paket (kan klo dipecah2 gimana cara nyambungnya klo ga ada nomor urutnya??)

Ack Number : its say “okay..your packet is delivered…thanks”

Checksum : flow control…error engga ?? data yang di terima komplit engga ?

Option : gw kurang tau ini…tapi mungkin..ya opsi2 tambahannya kali yah J

The combination of the Transport layer port number and the Network layer IP address assigned to the host uniquely identifies a particular process running on a specific host device. This combination is called a socket

For example, an HTTP web page request being sent to a web server (port 80) running on a host with a Layer 3 IPv4 address of 192.168.1.20 would be destined to 192.168.1.20:80. ß THIS CALLED SOCKET !!

“Petugas” yang mengatur Port Number adalah organisasi yang dinamakan Internet Assigned Numbers Authority (IANA).

Ada 3 tipe port number :

  1. Well Known Port (port 0 sampai 1023), yaitu port2 yang biasa dipakai dalam transfer data sehari2 seperti e-mail port, chat port, web browser port, dll
  2. Registered Port (port 1024 sampai 49151), These port numbers are assigned to user processes or applications. These processes are primarily individual applications that a user has chosen to install rather than common applications that would receive a Well Known Port. When not used for a server resource, these ports may also be used dynamically selected by a client as its source port.
  3. Dynamic and/or Private Port : (port 49152 sampai 65535), Also known as Ephemeral Ports, these are usually assigned dynamically to client applications when initiating a connection. It is not very common for a client to connect to a service using a Dynamic or Private Port (although some peer-to-peer file sharing programs do).

A current list of port numbers can be found at IANA Website

————————————————————————————————————————————————————————————

Sekarang kita coba untuk melihat port number dan tipe koneksinya (UDP atau TCP ? ) melalui fitur Netstat di command prompt

  1. Tipe koneksi : TCP
  2. Source Port Number : 3126…diliat dari tipe port diatas, berarti ini adalah registered port
  3. Address host
  4. Destionation Port Number : HTTP
  5. Connection State
  6. Dan satu lagi 207.138.126.152:http ßSocket

————————————————————————————————————————————————————————————

Perbedaan TCP dan UDP

Penjelasan :

  • TCP terdiri dari 32 bit (lihat paling atas…bit 0-15-31)
  • Source Port Number : port tempat data asal di kirimkan (kata Cisco biasanya port random dari angka 1023 keatas)
  • Destination Port Number : port tempat aplikasi tujuan
  • Sequence Number : nomor paket…biar pas sampai ke tempat tujuan, ngurutinnya gampang, kan multiplexing (liat lagi Network Basic Theory 2), alias di pecah2 pas mo dikirim, biar beban jaringan ga berat
  • Ack Number : specified next octet “expected” by receiver…alias klo packet pertama sudah, packet kedua yang akan di tunggu, disinilah “ack” fungsinya…”ok…paket pertama sudah diterima…paket kedua nya gw tunggu ya..”
  • H. Length : Header Length…seberapa besar length alias byte yang dipakai untuk segment header
  • Reserved : reserved for future use…I guess 😀
  • Flags : menandakan session management…penjelasan nanti dibawa
  • Window Size : seberapa banyak oktet yang akan dikirim sebelum menunggu tanda “ack”… baca lebih lanjut penjelasannya dibawah tentang window size(berikut gambar)
  • TCP Checksum : used for error-checking
  • Urgent Pointer : URG…same…don’t know very much
  • Option : jika ada data2 tambahan
  • Data : data segment nya…data aplikasi nya tentu saja

One way to improve security on a server is to restrict server access to only those ports associated with the services and applications that should be accessible to authorized requestors.

————————————————————————————————————————————————————————————

Membangun Komunikasi antar device : The Three Way Handshake

  • Establishes that the destination device is present on the network
  • Verifies that the destination device has an active service and is accepting requests on the destination port number that the initiating client intends to use for the session
  • Informs the destination device that the source client intends to establish a communication session on that port number

Dalam koneksi TCP, host yang berfungsi sebagai client meng-inisialisasi session ke server. The three steps in TCP connection establishment are:

  1. Client yang meng-inisialisasi mengirimkan sebuah segment yang berisi initial sequence value (nilai sequence awal), yang mana berfungsi untuk merequest ke server untuk memulai sesi komunikasi…“bos…hallo…bisa ngobrol sebentar ga ?!?!”
  2. Server merespon dengan mengirimkan segment yang berisi ack value yang nilainya sama dengan received sequence value ditambah 1, dan juga ditambah dengan synchronizing sequence value dari server itu sendiri. Kenapa ditambah 1 ??? karena pas dikirim balik, ga ada segment yang perlu di acknowledged. Acknowledgement sepeti ini memungkinkan client untuk mengikat respon balik yang berasal dari original segment yang dikirim ke server…“iya…kenapa..gw merespon ni…mo ngapain ente ??”
  3. Client yang meng-inisialisasi merespond dengan acknowledgement value yang setara dengan sequence value yang di terima dari server ditambah 1. Selesai deh process meng-establish connection

To understand the three-way handshake process, it is important to look at the various values that the two hosts exchange. Within the TCP segment header, there are six 1-bit fields that contain control information used to manage the TCP processes. Those fields are:

  • URG – Urgent pointer field significant
  • ACK – Acknowledgement field significant
  • PSH – Push function
  • RST – Reset the connection
  • SYN – Synchronize sequence numbers
  • FIN – No more data from sender

Field2 bit ini lah yang disebut FLAGS… the value of one of these fields is only 1 bit and, therefore, has only two values: 1 or 0. When a bit value is set to 1, it indicates what control information is contained in the segment.

Gambar diatas adalah process terminasi session.

Untuk lebih jelas tentang three way handshake….

pakailah wireshark J

————————————————————————————————————————————————————————————

The initial window size is determined during the session startup via the three-way handshake.

Taken from Tcpipguide.com, What is Window Size…In a connection between a client and a server, the client tells the server the number of bytes it is willing to receive at one time from the server; this is the client’s receive window, which becomes the server’s send window. Likewise, the server tells the client how many bytes of data it is willing to take from the client at one time; this is the server’s receive window and the client’s send window.


—————————————————————————————————————————————————————————

UDP…User Datagram Protocol

Seperti yang sudah dijelaskan yang sudah2…UDP tidak menyediakan fungsi reliability, *jadi ga penting donk pake ini??

Well, TCP memakan banyak overhead….klo orang awam bilang…terlalu banyak makan bandwidth…kita perlu yang simple2 aja…contoh nya :

  • Domain Name System (DNS)
  • Simple Network Management Protocol (SNMP)
  • Dynamic Host Configuration Protocol (DHCP)
  • Routing Information Protocol (RIP)
  • Trivial File Transfer Protocol (TFTP)
  • Online games…yes..ONLINE GAME…klo pake TCP…rasain aja sendiri LAG nya (ga pake TCP aja kadang suka lag hahaha)

Oke ?? sudah mengerti ?? untuk2 contoh2 aplikasi diatas…memakai UDP sangat efisien dan juga efektif (aplikasi2 tersebut ga butuh acknowledgement dalam transfer data…GA PENTING katanya J )

Note : Trivia…istilah segment kadang2 bisa di artikan sebagai datagram juga loh dalam UDP

*wokeh..selesai untuk Transport layer

Next…Network Layer…its gonnna be a looong day (baca: long read…hahaha)

Network Basic Theory 3 (Protocol)

2 Comments

PROTOCOL BASIC THEORY

Dalam jaringan computer, sebuah pesan dapat dikirim dan terkirim dari source ke destination melalui sebuah “aturan”, aturan inilah yang dinamakan protocol. Dalam level manusia, beberapa aturan komunikasi bisa berupa formal atau bisa juga “yang penting simple dan mudah dipahami”, tergantung dari prakteknya atau daerah asal bahasa komunikasi tersebut.

Nah, untuk alat2 jaringan bisa berkomunikasi satu sama lain pun juga begitu, dibentuklah namanya suatu aturan dalam jaringan (network protocol suite) yang mendeskripsikan fungsi, aturan main, persyaratan2 dalam melakukan hubungan intim satu sama lain *ehem* maksudnya dalam melakukan komunikasi satu dengan yang lain dapat terjalin dengan berhasil.

Lemme remind You before You got confused….Protocol are set of rules…not hardware…not software…only rules

Example : Web Server interaction with with Client (Web Client) is defined in PROTOCOLS, but these protocols does not define which software to use(AJAX, PHP, .NET, ETC) or which Hardware (Server ?? PC ?? Laptop ??)

Network protocol suite alias aturan2 dalam jaringan ada beberapa hal yaitu :

  • Format atau struktur dari packet data alias pesan

  • Proses dari tiap alat2 jaringan dalam men-share informasi tentang pathways (route tempuh packet) dengan jaringan lain

  • Kapan dan dimana error dan pesan system di kirim antar alat2 jaringan

  • Penyambungan dan pemutusan dari sesi transfer data

Protocol2 dalam protocol suite biasanya berupa “open use” atau “open standard” alias bisa di gunakan secara umum (agar supaya alat2 jaringan bisa berkomunikasi satu dengan yang lain), tapi bisa juga berupa vendor-specific dan propiertary (definisi dan fungsi dari protocol tersebut ditentukan oleh sang vendor pemegang hak cipta dari protocol tersebut, vendor lain bisa memakai protocol propiertary dari vendor pemilik protocol tersebut, asalkan mendapat ijin dari sang vendor pemiliknya) …

*biasa la….perang standarisasi…cisco ada CCNA nya, Juniper ada sertifikasinya, Java ada sertifikasinya, Oracle ada sertifikasinya, Microsoft dan Linux ada sertifikasinya…it’s all about standardization war (ga punya sertifikasi ini itu, gaji kecil….UUD…ujung2nya duit lagi..duit lagi…dunia oh dunia…ahahaha…let’s back to topic please..maap
m(_._)m )

Untuk protocol2 umum, IEEE dan IETF adalah 2 badan yang mengurusi protocol2 ini, walaupun tidak terbatas pada jaringan saja, segala sesuatu yang berkaitan dengan listrik biasanya ke mereka

Just in case…

IEEE : Institute of Electrical and Electronics Engineers

IETF : the Internet Engineering Task Force

Ga usa pikir macem2 dengan gambar diatas, just read the words….we’ll explain them later (sukur2 uda langsung ngerti)

————————————————————————————————————————————————————————-

————————————————————————————————————————————————————————-

Protocol Interaction

Contoh interaksi dari protocol2 yang ada yaitu Web Browser dan Web Server. saat request , saat sending data, saat proses, dan selanjutnya adalah contoh bagaimana protocol berinteraksi satu sama lain

*now maybe You ask…satu sama lain?? What protocol are these ?? explain THESE protocol…

THIS IS SPARTA…*ehem* maksudnya THIS IS THE MODELS of PROTOCOLS….TA DA…..

Keknya sama yaks ??…emang

Ini persamaannya

Let’s start with TCP/IP Model first…since it got fewer “BLOCK” than OSI… 😀

Application Layer

Protocol untuk merepresentasikan data kepada user

Contoh : format file ( .exe, .jpeg, .gif), HTTP, Software (yes…Software itself…IS app layer)

Transport Layer

Protocol yang bertugas meng-handle komunikasi data dalam jaringan dan alat2nya (yang mana salah satunya adalah menentukan besarnya jumlah data yang akan dikirimkan), disinilah tempat dimana pesan yang akan disampaikan di pecah2 menjadi segments

Contoh : TCP (Transfer Control Protocol)

Internet Layer Protocol yang bertugas mengatur lalu lintas data (yang mana sudah dipecah jadi Segments , lalu di Encapsulation jadi Packet)

*encapsulation itu bahasa “mudah”nya dibungkus (nasi uduk dibungkus….1 buat gw ya…wkwkwk)

Contoh : find alternate ways, best path across network, the infamous IP (Internet Protocol)

Network Access Layer

Protocol yang mempunyai 2 fungsi, yang pertama adalah data link management dan yang kedua adalah transmisi fisik data ke media

Contoh : MAC (Media Access Control…dulu gw kira Machine Address Code, haha), LLC (Logical Link Control), Ethernet

so if everybody called TCP/IP…You know where the F*** is TCP and where is IP (just because TCP/IP word is often joined…is not the SAME !! )

Urutannya jadi gini pas transfer data

Source Host : Data (App Layer) à trus dipecah2 jadi Segment (Transport Layer) à trus di Encapsulation jadi Packet (Internet Layer) à packet di pecah2 jadi Frame (Network, Frame tergantung media penghantarnya) à Trus di kirim deh

Destination Host : Frame di terima dari jaringan à bungkusnya dibuka (baca: encapsulationnya) trus digabung2in pecahannya jadi Packet
à packet digabung jadi segment à jadi data deh setelah semua selesai

Kira2 beginilah proses yang ada di Source Host (Destination Host tinggal kebalikannya)

Klo liat dari gambar diatas, tau kan sekarang maksudnya dibungkus?…dibungkus dengan informasi2 agar packet di terima dengan baik dan benar intinya

OSI Layer Protocol

OSI Layer Model protocol pada dasarnya di ciptakan oleh International Standard Organization (ISO) untuk system komunikasi jaringan “open standard” , tapi TCP/IP model (Internet Model) berkembang sangat pesat, jadi mulai agak di tinggalin model ini (but its worth studying…trust me)

From bottom to top…

  1. Physical Layer

    Layer yang bertugas mengatur mekanisme dari electrical, fungsional, dan procedural untuk membuat, menjaga, dan memutuskan koneksi fisik (transmisi bit) dari dan ke network device

    Who’s working on here : YOUR MAH CHINEEE !!…it’s your machine…,  Kabel, HUB, CSU/DSU, DCE, DTE (all kinds of ISP Stuff…explain it later shall we ? )

  2. Data Link Layer

    Bertugas untuk mengatur pertukaran data frames antar devices dalam media yang sama (contoh : mengatur pertukaran frame data dalam media Ethernet)

    Who’s working on here: Switch !! , LLC (logical link control..later explained), MAC Address

    special mention in this section si WAN (PPP & Frame Relay in example…)..works in Layer 1& 2 (they define interface encapsulation and data-link encapsulation)

  3. Network Layer

    Bertugas menyediakan service untuk pertukaran data dalam jaringan antara end devices

    Who’s working on here :the great infamous IP, Router !!

  4. Transport Layer

    Bertugas menyediakan service untuk segmentasi, transfer, dan re-assembly packet data untuk individual communication antar end devices

    Who’s working on here : IP’s brothers…Port Number (TCP, UDP), even three-way handshake, windows size and flow control mechanism is here too

    Three-way Handshake = versi lebih secure untuk create network session antar device
    windows size = berapa banyak segment yang bisa dikirim ke destination dalam satu waktu (window size = 3, artinya source device akan kirim 3 segment)
    flow control = mekanisme untuk buffer control (biar ga penuh bandwidth)

  5. Session Layer

    Bertugas menyediakan service ke presentation layer untuk mengorganisasikan manajemen pertukaran data

    Who’s working on here : RPC (Remote Procedure Call, utiliti untuk sistem client-server, dia ada di sisi client, tp jalaninnya disisi server, I don’t know very much about this), SQL (yes…for databases), connection mode such as Duplex, Half-Duplex, Full Duplex

  6. Presentation Layer

    Bertugas untuk merepresentasikan data…what else ???

    Who’s working on here : it’s the file Extention !! .gif, .jpeg, .exe, etc.

  7. Application layer

    Yaitu layer tempat data2 yang sudah di olah di presentation layer di tampilkan ke MUKA ANDA !! (sory offence..haha)

    Who’s working on here : WWW (yes… even HTML and HTTP works here), SMTP, POP, DNS, Face “motherf***in” book !!

    Note…FTP and Telnet are both working on Application-to-Session Layer

With this….its time to delete “fungsi layer pada network” that I created before…it’s too messy and not well reading at all

Enough with my creepy engrish…kembali ke lapppptopppp !! *ehem* kembali ke bahasa Indonesia maksudnya

Gambar diatas adalah bagaimana OSI Layer merepresentasikan bagaimana data di encapsulasi

PDU : Protocol Data Unit

Apa nih ? unit2 data seperti Bit, Frame, Packet, Segment, Data…disebut PDU

Koq Network Alamat Tujuan 209.165 sedangkan Network Sumber 209.165.202 ??

Itu namanya pembagian blok alamat network, nanti akan di jelaskan lebih lanjut

Klo mau liat visualisasinya…

Silahkan liat di http://www.warriorsofthe.net/

trus kalu mau tools buat liat bagaimana packet2 data dipecah digabung trus layer mana saja yang sedang bekerja pada satu waktu

download aja Wireshark

tool Software Network Protocol Analyzer yang berguna banget buat “sniffing” packet2 data

ada juga tutorial nya

Just cekibrot…