Isa sa mga important topics na kailangan nating maintindihan with regards to networking ay ang TCP/IP network architecture.
Pero para mas maintindihan natin yung TCP/IP architecture, kailangan muna nating pag-usapan yung predecessor nyang si OSI (Open Systems Interconnection) Model.
Konting review lang, ano nga ulit yung definition ko ng networking?
Pag sinabing networking, eto ay interconnection ng mga devices to enable network sharing between them regardless kung ang mga devices na yan ay malayo (must be connected via a WAN connection) or malapit (connected via a LAN connection).
Take note, na kung magi-interconnect ang mga computers - kailangan nila ng tinatawag na protocols.
A Protocol is a set of rules and instructions that computers needs to follow to enable them to communicate with each other.
Bakit kailangan natin nyan?
Kasi ang mga computers and network devices natin by default, medyo shunga-shunga yan. Hindi nila alam ang gagawin nila unless bigyan mo sila ng set of procedures na kailangan nilang sundin if ever may kailangan silang i-accomplish na task.
Kaya lang kasi, nung unang panahon, wala pang standards in place na nagdi-dictate kung anong mga protocols ang kailangan nilang sundin.
So, ang ginawa ng mga computer vendors nuon - since kailangan ng mga computers and network devices ng protocols para makapag-communicate, gumawa sila ng mga sarili nilang protocols.
Pero since yung protocol na yun ay developed by a certain vendor, that protocol would only run on the said vendor's devices only. At ang tawag sa mga ganung klaseng protocols ay Proprietary Protocols.
Kaya lang nagkakaroon tayo ng problema sa mga proprietary protocols na yan pag pinagko-konekta natin ang magkaibang vendor na devices. Tignan mo yung diagram ko dito:
Kung gusto mong magkaintindihan ang dalawang computers/devices - they need to speak the same language, meaning, they need to run the same protocol.
Since yung dalawang device dyan sa diagram ko ay IBM, ibig sabihin, nagra-run sila ng same protocol.
Pero ang problema, since yung Decnet na device ay galing sa ibang vendor - hindi nya pwedeng i-run yung same protocol na meron sa IBM kasi proprietary yun ng IBM.
Dahil dyan, nagkaroon ng limitation for interconnecting network devices from different network vendors. Lugi yung ibang mga network vendors dahil in a way, namo-monopolize ng isang vendor yung computer industry dahil once na makabili sila ng isang device, dapat lahat na ng mga succeeding devices should be from that vendor or else, hindi magkakaroon ng interconnectivity dahil nga sa mga proprietary protocols na yan.
So, the solution was to standardize yung mga protocols na ginagamit for network connectivity. And so the OSI networking model was developed.
Ano ba ang ibig sabihin ng OSI?
OSI stands for Open Systems Interconnection.
Sa OSI Networking model, yung mga networking process is categorized into different layers. Each layer has its own functionality, and has its own sets of standards and protocols that ALL network
device vendors needs to follow.
Eto yung mga OSI Layers:
With the introduction of the OSI model, yung mga networking devices can now be classified as devices that run on a specific OSI layer. Kaya meron kang maririnig na mga Layer 2, or Layer 3 devices.
If a device operates on Layer 3, ibig sabihin, yung device na yan needs to follow the sets of standards and protocols for that layer.
Pwede nang mag-interconnect ang mga devices kahit na hindi pa sila galing sa parehas na vendor dahil yung mga protocols na ginagamit nila to interconnect ay standardized at parehas na. Nawala na yung issue galing sa mga proprietary protocols.
Pwede nating ma-identify at ma-isolate ang mga network issues per layer. Pwede rin tayong
mag-create ng process and procedure para magkaroon ng sistema kung paano iha-handle ang mga network issues systematically.
Pwede nating i-dissect ang mga networking concepts per layer for better understanding.
Sa Application Layer covered lahat ng mga softwares and applications na ginagamit ng mga users para makapag-interact sa network.
This layer provides an interface between the user and the computer where the application resides. So pag sinabi kong interface, ibig sabihin, sya yung way para makapag-interact tayo sa mga devices natin.
Isipin mo na lang na nasa restaurant ka at gusto mong umorder ng steak - hindi ka naman pwedeng dumiretso sa kitchen at manghingi dun diba. So ang ginagawa natin, tinatawag natin yung waiter at sa kanya natin sinasabi yung order natin, yung waiter naman ngayon yung pupunta sa kitchen para sabihin kung ano ang gusto natin. Pag luto na, yung waiter din yung kukuha sa kitchen at magdadala sa atin ng food.
Yung waiter ang nagsisilbing interface natin sa kitchen. Sya kasi yung nage-enable sa atin na makapag-interact sa kitchen para malaman nila kung ano ang kailangan mo at maibigay nila papunta sa atin kung ano man yung kailangang ibigay.
Ganun ang ginagawa ng Application Layer Sya ang nagpo-provide ng mga applications na pwede nating iclick-click para makuha natin ang mga gusto nating makuha sa network - like a web browser.
Under ng application layer ang web browser. Sya ang ginagamit natin para makapag-download tayo ng mga data and information from a remote web server.
Under din ng application layer ang isang ftp client. Sya naman ang ginagamit natin para makapag-upload tayo ng mga data and information papunta sa isang remote location.
The Presentation Layer is in-charge of making sure na yung mga information exchanged between applications ay nasa isang readable format na naiintidihan ng isa't isa.
For example, nagbukas tayo ng isang web application kagaya ng google chrome. Dun sa chrome, nagbukas tayo ng isang web page.
Take note na pag tayo ay nagba-browse ng isang website, basically, dina-download natin yung mga files associated sa webpage na tinitignan natin kagaya ng mga jpegs para sa mga pictures, ASCII characters para sa words na nakikita natin, and yung mga html and css files para maiformat ng maayos sa web browser natin yung mga files na yun.
Take note na lahat ng mga web page files na yan ay hosted or naka-store sa isang remote web server.
Pag kinclick natin ang isang website link, nagse-send ng request yung browser application natin para sa mga files associated dun specific webpage na gusto mong i-access.
Ngayon, take note na naka-store yung mga files na yan as jpegs, ASCII text, html, css, etc. file formats. Pero pag sinend yan ng web server, kailangan nyang i-convert yang mga file format na yan into a
transportable format.
Ibig kong sabihin dun sa transportable is - it needs to change yung mga files natin into a binary data stream na pwede nyang ibato sa network para makarating ng tama dun sa requesting application
yung mga files.
Once makarating sa requesting application yung data stream na yan, it needs to convert the data back dun sa format na kayang basahin nung browser.
So, from a binary data stream, iko-convert yan para maging jpeg, ASCII, html, css, etc. ulit para mabuo yung webpage na hinihingi mo dun sa browser.
In short, yung trabaho ng Presentation Layer is to make sure na yung mga information exchanged between different applications ay properly formatted into a data format/type para mai-send at madeliver sya ng tama from the sender application, and in turn, maibalik at mai-convert back sya
into an understandable format sa receiving application.
Bukod sa data formatting, isa pa sa mga function ng Presentation Layer yung data encryption.
Kapag encrypted kasi ang communication ng dalawang applications, nagbibigayan sila ng mga keys sa isa't isa to make sure na yung sender application can encrypt the data in such a way na yung receiver application would be able to decrypt it back into a readable format.
Basta tatandaan mo lang with regards sa Presentation Layer is - sya yung in-charge sa pagpapalit ng format o itsura ng data para mai-transport sya ng tama, at pagdating naman sa destination nya ay
maibalik sya sa isang format na kayang basahin ng receiving application.
Para mas maintindihan natin kung ano ang ginagawa ng Session Layer, ihalintulad muna natin yung process of connecting ng mga network applications natin sa isang tawag sa telepono.
Kung gusto nating tumawag kunwari sa Pizza Hut para magpa-deliver ng pizza, syempre kailangan muna nating i-dial yung 911-1111.
Kapag duma-dial tayo sa telepono, we are actually initiating a session.
Kapag sumagot na yung agent sa kabilang linya, duon nabubuo yung circuit connection between us and the pizza hut agent.
Yung connection na yan must be maintained sa entirety nung usapan natin.
Once tapos na yung usapan, syempre magha-hangup na tayo - and the connection would be terminated.
Balik tayo sa Session Layer.
Trabaho ng Session Layer yung management ng connection between network applications.
At yung management responsibility nya na yan includes the initiation, maintenance, and termination of network conversations or sessions.
So yung initiation responsibility nya is yung setting up ng connection between 2 network applications.
Yung maintenance responsibility nya naman is to make sure na yung data transfer or conversation between network applications ay hindi maputol hanggat hindi pa tapos yung conversation.
And yung termination responsibility nya naman is to tear down the connection once tapos na yung data transfer or conversation between network applications.
Si Transport Layer ang in-charge sa end-to-end or host-to-host transport of data.
Pag sinabing transport, yan yung byahe ng data natin from source to destination.
Sinisigurado ng Transport Layer na yung data na binato galing sa source ay makarating sa tamang destination.
Si Transport Layer din ang in-charge sa reliable transport ng data. Pag sinabing reliable, ibig sabihin, kung anuman yung data na sinend ng source ay makarating ng tama at kumpleto sa destination.
Naa-accomplish ng transport layer yung reliable transport na yan by means of error detection and recovery. Kayang ma-detect ng Transport Layer kung may mga pieces of data lost or corrupted during transport, at humingi ng kapalit ng mga nawawala at corrupted na data na yan galing sa source.
Ang mga main protocols used under sa transport layer are TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).
Mayroon akong separate section para sa transport layer dito sa book to further explain yung functions ng TCP and UDP.
Bago natin pag-usapan yung mga susunod na OSI layers, discuss ko muna yung mga types of addresses na naka-set sa isang host device.
Para maka-connect sa network ang isang end-device,kailangan meron syang NIC (Network Interface Card).
Kung makikita mo sa image ko dyan sa taas, meron tayong Wired NIC and Wireless NIC.
Gumagamit tayo ng Wired NIC if kakablehan natin yung end-device natin para i-connect sa switch para maka-connect sya sa network.
Yung Wireless NIC naman is used to wirelessly connect sa network thru wi-fi.
An end-device can have multiple NICs installed. Common yan na makikita mo sa mga servers.
Take note na yung NIC or Network Interface Card ay isang physical card na kinakabit sa isa sa mga expansion slots ng motherboard. Pero meron din tayong mga integrated network component na kasama na sa motherboard ng mga computers/laptops ngayon called network adapters.
Yung NIC and network adapter are sometimes used synonymously kasi parehas lang sila ng function- which is to be a connection point of an end-device to the network.
A NIC can also be considered a network adapter. Pero hindi network adapter ang NIC.. Kasi nga, additional physical card ang NIC, while ang network adapter is an onboard network component na kasama na sa mga interfaces na meron yung mga motherboards natin.
Kaparehas ng NIC, meron din tayong wired network adapter and meron din tayong wireless network adapters.
Take note na yung NIC/network adapter na yan is what connects a device to the network. Sa kanya kasi dumadaan lahat ng mga data that is sent and received from the network.
Ngayon, para ma-contact ng ibang network devices yung end-device it needs to know where your NIC is located. Dyan pumapasok yung addressing.
Ang mga Network Interface Cards (NIC) natin has 2 Addresses:
Para mas ma-imagine mo yung mga addresses na sinasabi ko na yan, check natin yung IP settings nung wireless network adapater installed dito sa laptop ko.
Kung gusto kong makita yung network settings ng isang host device, for example, itong windows computer na ginagamit ko ngayon - buksan ko lang yung command line, then type ipconfig /all
Eto yung results na meron ako:
Kung makikita mo dyan, hinighlight ko na yung dalawang addresses na naka-set sa wi-fi adapter ko.
Pag-usapan muna natin yung Physical Address.
Yang Physical Address is also known as the MAC Address (Media Access Control) of the device.
Yan ay isang fixed and burned-in unique address nung NIC/network adapters natin. Ibig kong sabihin dun sa burned-in is when the device was manufactured, yung device vendor itself assigned the MAC address on that adapter. May naming convention yang mga MAC addresses na yan to make sure that all MAC addresses is unique at walang kaparehas regardless kung sino man yung vendor nya. The MAC address is a fixed address dahil hindi na natin yan pwedeng palitan.
May separate na mas detailed lecture ako regarding MAC addresses pag nasa Physical layer na tayo. Sa ngayon, gusto ko lang i-stress sayo na yung physical/MAC address ng isang device ay fixed,
burned-in, and unique.
Pag-usapan naman natin yung IPv4 Address na nakalagay dun sa adapter settings ko sa taas.
Yung IPv4 Address dyan is also known as the Logical Address of the device.
Take note na dito sa CCNA natin, meron tayong dalawang IP addresses - IPv4 and IPv6 addresses - silang dalawa ay mga logical addresses.
Ang mga Logical Addresses are variable and assigned addresses.
Yung mga logical addresses na yan are assigned dahil tayo mismo ang naglalagay ng mga addresses na yan. Well actually, pwedeng malagyan ng IP address automatically yung device natin by a DHCP server (which I will explain later) or pwede ring manually configured yung IP address - ibig sabihin tayo mismo yung magta-type at maglalagay nung IP address sa device.
Since tayo (or dhcp server) ang naga-assign ng IP address sa isang device, ibig sabihin, pwede nating palit-palitan yung mga addresses na yan which makes them variable - ibig sabihin nababago-bago yung value unlike physical addresses which are unchangeable and fixed.
Bakit kailangan ko munang i-discuss yang dalawang yan? May kinalaman kasi yan sa Network and Data Link Layers natin sa OSI.
Balik ko na ulit yung discussion dun sa mga OSI Layers natin.
Kung mapapansin mo dyan, kasama sa trabaho ng layer 3 natin yung logical addressing na kaka-discuss-discuss ko pa lang sayo.
Yung mga IP Addresses (IPv4 and IPv6) are actually layer 3 addresses.
Yang mga IP addresses kasi ang ginagamit na basehan ng mga routers (which are also Layer 3 devices) sa decision making process nila when routing or forwarding data packets across the network para makarating dun sa final destination nila.
Sa path determination naman : take note na ang mga routers are actually connected to different networks, yung mga networks na yan ay may sari-sarili nilang logical network addresses.
Si router (which as I've said is a layer 3 device), sya yung in-charge sa pagde-determine which is the best path among all possible paths para mas makarating ng mabilis yung packet sa destination nya. At kung ano man ang mapili nyang best path , dun nya ifo-forward out yung packet.
Kung medyo nakukulangan ka sa discussion ko dyan sa logical addressing, routing/forwarding, and path determination function ng network layer - wag ka masyadong mag-alala kasi yan yung ididiscuss natin sa halos entirety ng CCNA natin. Sa ngayon, paki-take note na lang muna yung
function ng network layer.
Kung si Network Layer ang in-charge sa logical addressing, si Data Link Layer naman ang in-charge sa physical addressing.
Yung mga physical address or MAC addresses kasi ang ginagamit ng data link layer to determine kung ano ang gagawin at saan ifo-forward yung data once received.
Ang mga data link protocols din ang nagde-define ng format ng mga headers and trailers na dinidikit sa data para makarating sila destination.
Kasama din sa data link trailers yung FCS (Frame Check Sequence) - yan yung ginagamit ng isang receiving device to detect kung yung data ba na dumarating sa kanya ay nakaranas ng errors during transit.
Ang mga data na tinatransmit at nare-receive ng mga devices natin are sent out as binary data 1s and 0s.
At yung 1s and 0s na yan are actually sent out as electrical pulses sa mga transmission medium natin like copper, light pulses naman pag fiber cables, at radio signals naman pag wireless.
Yung mga pulses na yan ay actually meron-o-wala (or malapit sa wala).
Anong ibig kong sabihin?
Pag electrical pulses, its either merong kuryente or walang kuryente na dumadaan sa kable at a certain period.
Pag merong kuryente ibig sabihin binary 1, pag walang kuryente (or malapit sa walang kuryente, depende sa threshold for example if yung kuryente is less than or below 0.8v) ibig sabihin binary 0.
Pag light pulses naman, it's either merong ilaw or walang ilaw na dumadaan sa fiber cable at a certain period.
Pag may ilaw, ibig sabihin binary 1. Pag walang ilaw ibig sabihin binary 0.
Gets?
The Physical Layer defines the standards na may kinalaman sa physical transmission medium kagaya ng mga copper and fiber optic cables kung saan padadaanin yung mga pulses na yan.
Kasama dyan yung mga physical at electrical properties nung transmission medium - for example, yung kapal ng mga copper and fiber optic cables, at yung mga ginagamit na shielding ng mga kable para maiwasan yung mga tinatawag na signal interference.
Kasama din sa Physical Layer yung mga standards para sa mga mechanical properties ng mga connectors na ginagamit natin sa mga transmission medium. Kasama dyan yung mga materials na ginagamit at pinouts.
At kasama din sa physical layer yung mga standards na ginagamit para sa encoding at modulation ng data. Eto naman yung ginagamit ng mga wireless standards natin para makapagpadala ng data wirelessly at magamit ang air bilang isang transmission medium.
Next Topic Suggestion:
Category Suggestion