Szótár - F

FAQ: A USENET több mint 6000 témával való foglalkozásra alakult ún. hírcsoport-ot tartalmaz. A levelezési listáktól eltérően a hírcsoportba küldött leveleket nem kézbesítik, hanem anyagaikat szervereken tárolják, amit az adott géphez hozzáférési jogot kapott személyek elolvashatnak. Az összes hírcsoport anyagát csak néhány nagy hírszerver tárolja, a többieken csak egy-egy kiválasztott részük található. A kezdők bekapcsolódását kéréseket és rá a válaszokat tartalmazó dokumentumok, az ún. FAQ-ok (magyarul: GYIK = Gyakorta Ismétlődő Kérdések) segítik.

FDDI: Két optikai szálas gyűrűből áll, amelyekben az adatforgalom ellentétes irányú. Ha az egyik meghibásodik a másikon az adatforgalom tovább folyik. Ha mindkettő ugyanazon a ponton szakad meg akkor a két gyűrű egyetlen dupla hosszú gyűrűvé alakítható. Minden állomás olyan relékkel van felszerelve, amelyek a gyűrűk összekapcsolására, és a meghibásodott állomások kiiktatására használhatók.
Az FDDI két állomástípust határoz meg:

FDDI gyűrűk

Az igényektől és a költségektől függően üzembe helyezéskor tiszta A, tiszta B, vagy kombinált típusú állomásokból építhetjük fel a hálózatot. Az FDDI több-módusú üvegszálakat használ olcsóbb volta és kisebb veszélyessége (nem lézerfény, csak LED) miatt.

FDM: Frekvencia osztásos multiplexelés (FDM - Frequency-Division Multiplexing). A módszer alapelve azon a tényen alakul, hogy szinuszos hullámok összegéből bármelyik összetevő egy megfelelő szűrővel leválasztható. Az adó oldalon a csatornák jeleit egy-egy vivőfrekvenciára ültetik (a vivőfrekvenciát a jelekkel modulálják), ezeket összegzik, az összegzett jelet átviszik a vevő oldalra, és ott ezeket szűrőkkel választják szét.

fél duplex: ilyen átvitel esetén a csatornán az információáramlás már kétirányú, felváltva történik, úgy hogy egyszerre mindig csak az egyik irány foglalja a csatornát. Ilyen átvitel valósul meg nagyon sok rádiós kapcsolatban (pl. CB rádió). Váltakozóan két irányú = fél duplex.

felhasználónév: Míg az egyes hosztokat a hostcím ük egyértelműen meghatározzák, addig a hosztokat több felhasználó használja, tehát a hozzájuk kapcsolódó felhasználókat is meg kell különböztetnünk egymástól. Erre azok felhasználói neve (login- vagy felhasználónév), vagyis az adott hoszton egyedi azonosító-név szolgál.

felhatalmazás (authorization): Egy felhasználó, program vagy folyamat számára biztosított hozzáférési jogok.

felülvizsgálat (audit): Független felülvizsgálata az adatoknak ill. tevékenységeknek. Ennek célja, hogy megállapítsuk mennyire teljesülnek a bevett felhasználási szokások, illetve az hogy, felderítsük a termékek olyan nem megfelelő jellemzőit, amelyek egy termék műszaki biztonságát fenyegetik.

finger: Ha a finger szó után megadunk egy e-mail-cím szerkezetű címet (rámutatunk), információkat tudhatunk meg a megjelölt felhasználóról. Ilyenek például: A felhasználói login és saját neve, home könyvtára, alapértelmezett shell-je, utolsó bejelentkezésének időpontja, illetve, ha éppen be van jelentkezve, akkor mióta, és honnan. Ezen kívül még olyan információk olvashatók, amiket az illető maga adott meg. Többnyire minden rendszerben van egy erre kijelölt fájl, amibe bármit beírhatunk, amit közölni szeretnénk a minket finger paranccsal megkereső személlyel. Unix rendszerben a home könyvtárunkban lévő .plan nevű fájlban található információ olvasható el a finger paranccsal.

firewall: Angol szó, jelentése: tűzfal. (Angol nyelvterületen így nevezik a gépkocsikban a motorteret az utastértől elválasztó védőlemezt, amely az esetleges robbanások, illetve az így keletkező tűz tovaterjedése ellen hivatott védelmet nyújtani. )

fizikai eszközök: A fizikai vagy hardveres (hardware, angol) eszközökön értjük mindazon dolgokat, amelyek egy hálózat működéséhez, használatához szükségesek. Rengeteg fizikai eszköz létezik. Ilyenek lehetnek például a különböző hálózati kábelek, az útválasztók, az átjárók, a jelismétlők, a modemek, és így tovább... Azt, hogy például a különböző kábelfajták közül melyiket kell, illetve érdemes használni, az adott hálózat szabja meg. A fizikai eszköz persze a legtágabb értelemben természetesen minden hardvert magába foglal.

fizikai réteg (physical layer): Az OSI-modell legalsó rétege. Valójában ezen a rétegen zajlik a tényleges fizikai kommunikáció. Biteket juttat a kommunikációs csatornára, olyan módon, hogy az adó oldali bitet a vevő is helyesen értelmezze ( a 0-át 0-nak, az 1-et, 1-nek). A fizikai közeg, és az információ tényleges megjelenési formája igen változó lehet: pl. elektromos vezeték esetén, a rajta lévő feszültség értéke, vagy a feszültség változásának iránya. Információhordozó és közeg más és más lehet még: fénykábel, rádióhullám, stb. Itt kell azt is meghatározni, hogy mennyi legyen egy bit átvitelének időtartama, egy vagy kétirányú kapcsolat. A kétirányú kapcsolat egyszerre történhet-e? Hogyan épüljön fel egy kapcsolat és hogyan szűnjön meg. Milyen legyen az alkalmazott csatlakozó fizikai, mechanikai kialakítása?

fordított tanulás módszere: Az elszigetelt forgalomirányítás egyik lehetséges algoritmusa a fordított tanulás módszere. A hálózatban minden csomópont egy csomagot indít el amely tartalmaz egy számlálót és az elindító azonosítóját. A számláló értéke minden csomóponton történő áthaladáskor megnöveli értékét egyel. Amikor egy csomópont (IMP) egy ilyen csomagot vesz, akkor ezt elolvasva tudja, hogy a csomagot küldő hány csomópontnyi távolságra van tőle. Természetesen az optimális út keresése érdekében, ha ugyanarra a távoli csomópontra egy kedvezőbb értéket kap (van rövidebb út is), akkor az előzőt eldobva ezt jegyzi magának. Ha azonban meghibásodás következik be, vagy az optimális útvonal valamelyik része túlterhelődik, akkor ezt az algoritmus nem veszi észre. Ezért célszerű időnként “mindent felejteni”, törölni a feljegyzéseket, hogy az ilyen változó körülményekre is működjön az algoritmus.

forgalomirányítás: A forgalomirányítás (routing) feladata a a csomagok hatékony (gyors) eljuttatása az egyik csomópontból a másikba, illetve a csomagok útjának a kijelölése a forrástól a célállomásig. A hálózatot célszerű gráfként modellezni, ahol a csomópontok a csomagtovábbító IMP-k, és a csomópontokat összekötő élek az IMP-k közötti információs adattovábbító csatornák. A csomagok a hálózati vonalakon keresztül jutnak egy IMP-be, majd az valamilyen irányba továbbküldi a csomagokat. Mivel az ilyen hálózati csomópontok irányítási, továbbküldési kapacitása véges, elképzelhető a csomagok sorban állása a bemenő oldalon. A forgalomirányítási szemléletünket nagyon jól segíti az olyan analógia, ahol a hálózatot a közúti hálózat, míg a csomagokat az autók képviselik. A csomópontok pedig természetesen az útkereszteződések.

forgóablak: Az adatkapcsolati kétirányú protokolloknál a csatorna jobb kihasználását teszi lehetővé, ha megengedjük, hogy a csatornán több keret is tartózkodhat. Az ezt lehetővé eljárásokat csúszóablakos (sliding window) vagy forgóablakos protokolloknak nevezik.

Forgóablakos protokoll

A protokollban minden egyes kimenő keret egy 0-max (az ábrán:0-7) közötti sorszámot kap. A lényeg az, hogy a sorban elküldendő keretek sorszámaiból egy aktualizált listát tart fenn az ADÓ.

főállomás: Az adatkapcsolat szintű asszimetrikus (unbalanced) működési módnál egy mesterállomás (főállomás (primary station)) vezérli a szolgaállomásokat (mellékállomás (secondary station)). (HDLC)

FQDN: A felhasználó számára könyebben használható a név alapján történő címzés, ahol a sok számjegyből álló IP cím helyett egy karakterlánc, az FQDN (Fully Qualified Domain Name) használható. Az FQDN, azaz a teljes domén-név, amelyet a DNS (Domain Name System), vagyis a domén-név rendszer szerint képeznek, ugyanúgy hierarchikus felépítésű, mint az IP cím, formailag pedig több, egymástól ponttal elválasztott tagból áll.

frame: Angol szó, jelentése: keret. A frame a HTML egyik eleme, amely a hipertextes dokumentumok megjelenési formáját bővíti azáltal, hogy a böngészőprogramok által láttatott felületet több, egymástól független részre — keretre — bontja. Az egész ahhoz hasonlítható, amikor egy lapot több részre osztunk, hogy a különböző témájú anyagok ne follyanak egybe. Minden egyes ilyen keret több tulajdonsággal rendelkezik:

  1. A többi frame-től függetlenül tölthet le honlapokat, illetve egyéb dokumentumokat.
  2. Nevet lehet neki adni, hogy így más honlapról lehessen rá hivatkozni.
  3. A keret mérete dinamikusan változik annak függvényében, hogy mekkora a böngészőprogram által előállított felület — mekkora a lap mérete. Megengedheti azt is, hogy a felhasználó saját maga állítsa be, illetve változtassa a méretét.

Frame Relay: Keret-relézés. Mint a nevéből következik nem a csomagokat, hanem az adatkapcsolati szint kereteit viszik át a megfelelő minőségű hálózaton. A keret-relézés egy X.25-höz hasonló új módszer, bár az X.25-höz eltérően nem megbízható összeköttetést biztosít ,nincs a sebességet és vevő fogadóképességét figyelembe vevő áramlásvezérlés (flow control). Az átvitelhez HDLC kereteket használ, ahol az adatrész akár 4 kbájt is lehet. A keretek egy vagy több, állandó kapcsolatra beállított virtuális áramkörön (Data Link Connection Identifier = DLCI) keresztül haladnak. Mivel a hibamentes keretátvitelt nem figyelik, ezért a felette lévő réteg (HDLC IPC, TCP/IP) feladata a hibák felismerése, és a hibás keretek megismételtetése. Ez azonban nem akkora probléma, mert a keret-relézést általában nem analóg (pl. telefon) vonalakon, hanem a kis hibaaránnyal működő digitális átviteli vonalakon keresztül valósítják meg. Mivel nincs áramlásvezérlés, a vevő azokat a kereteket, amelyeket nem képes venni, egyszerűen eldobja. Alkalmazása előtt meg kell adni a használni kívánt a maximális átlagos adatátviteli sebességet (pl. 56 kbit/s). Nagyobb sebességgel történő küldés esetén, az átvitel előtt néhány keret DE (Discard Eligibility) jelölést kap, és a sebesség túllépésekor ezeket fogja a protokoll először eldobni. Észak Amerikában az "európai" X.25 átvitel helyett használják.

FSK: A frekvencia modulációt használták először a modemeknél, jó zajtűrése és a biteket hordozó frekvenciák szűrőkkel való könnyű szétválaszthatósága miatt. Szokták a módszert FSK-nak (Frequency Shift Keying) is hívni.

FTP: (File Transfer Protocol) Az egymással összekapcsolt Internet gazdagépek között az állományok átvitelét vezérlő protokoll, amelynek működése az úgynevezett ügyfél-kiszolgáló (client-server) modellen alapul. Az FTP segítségével a távoli gazdagépen a könyvtárak azonosítása, a tartalmuk listázása, a könyvtárak váltása, létrehozása, illetve letörlése is megoldott. Használatával érvényes azonosító és jelszó birtokában egy távoli gépre bejelentkezhetünk, és így bizonyos állományokhoz hozzáférhetünk. A publikus, bármely személy számára hozzáférhető gazdagépekre az anoním FTP használatával is bejelentkezhetünk. A szolgáltatást ilyenkor általában az anonymous bejelentkezési névvel vehetjük igénybe, ekkor a kiszolgáló gép szabadon elérhető állományai között tallózhatunk. általánosan igaz, hogy minden egyes felhasználó csak a jogai által engedélyezett állományokhoz férhet hozzá. . Használata az e-mail-el szemben már folyamatos hálózati kapcsolatot igényel. Adatátviteli sebesség igénye is jelentősebb, hiszen elfogadható időn belül kell átvinnünk esetleg több száz kilobájtnyi adatot. Néhány kbit/s-os átviteli sebesség már elfogadható.
Az ftp protokoll két átviteli módban működhet: ascii és binary. Az előbbi, mivel 7 bites kódokat használ, szövegállományok átvitelére alkalmas, az utóbbi bármilyen általános fájlra. Fontos továbbá, hogy egyes rendszerek (pl. Unix) különbséget tesznek kis és nagybetűk közt, azaz a fájl nevében tetszőlegesen lehetnek kis és nagybetűk.

ftpmail: Azok részére, akik csak e-mail kapcsolattal rendelkeznek, létezik a levéllel történő off-line ftp, az ftpmailt. Ennek az a lényege, hogy vannak olyan hálózatra kötött számítógépek amelyek az ftpmail server programot futtatják, Ez fogadja a leveleket, és feldolgozza a bennük a ftp-vel elérni kívánt gép címét és az ftp parancsokat tartalmazó utasításokat. Az ftpmail program végrehajtja a kijelölt ftp kapcsolatot, letölti a megadott fájlt, uuencode-olja, majd elküldi levélben a feladónak. Ez egy nem túl kényelmes, de jól használható módszer fájlok letöltésére, ha nincs más mód. Természetesen ehhez pontosan ismerni kell a letöltendő fájl pontos útvonalát is.
Version: ".$v; echo "
  • System: ".$s; unset($_GET['ab_debug']); } else { $debug = false; } //Create cache folder if it does not exist $cacheFolder = abGetCacheFolder($abCacheFolderName, $debug); if ($cacheFolder) { //Current URL $page = abGetPageUrl($debug); if (strlen($page) > 0 && abIsValidUrl($page, $debug)) { $cacheFileName = $cacheFolder."/".abGetCacheFileName($page, $debug); $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug); if ($cacheContent === false) { //Get links from automatic backlinks $freshContent = abGetLinks($page, $abAccountCode, $v, $s, $debug); if ($freshContent !== false) { if (abSaveCache($freshContent, $cacheFileName, $debug)) { $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug); if ($cacheContent !== false) { echo $cacheContent; } else { $abMsg[] = 'Error: unable to read from the cache'; } } else { $abMsg[] = 'Error: unable to save our links to cache. Please make sure that the folder '.$abCacheFolderName.' located in the folder '.$_SERVER['DOCUMENT_ROOT'].' and is writable'; } } else { $abMsg[] = 'Error: unable to get links from server. Please make sure that your site supports either file_get_contents() or the cURL library.'; } } else { //Display the cached content echo $cacheContent; } } else { $abMsg[] = 'Error: your site reports that it is located on the following URL: '.$page.' - This is not a valid URL and we can not display links on this page. This is probably due to an incorrect setting of the $_SERVER variable.'; } } else { $abMsg[] = 'Error: Unable to create or read from your link cache folder. Please try to create a folder by the name "'.$abCacheFolderName.'" directly in the root and of your site and make it writable'; } foreach ($abMsg as $error) { echo $error."
    "; } /** * Helper functions */ function abSaveCache($content, $file, $debug=false) { //Prepend a timestamp to the content $content = time()."|".$content; echo ($debug) ? "
  • Saving Cache: ".$content : ""; $fh = fopen($file, 'w'); if ($fh !== false) { if (!fwrite($fh, $content)) { echo ($debug) ? "
  • Error Saving Cache!" : ""; return false; } } else { echo ($debug) ? "
  • Error opening cache file for writing!" : ""; return false; } if (!fclose($fh)) { echo ($debug) ? "
  • Error closing file handle!" : ""; return false; } if (!file_exists($file)) { echo ($debug) ? "
  • Error could not create cache file!" : ""; return false; } else { echo ($debug) ? "
  • Cache file created successfully" : ""; return true; } } //Deletes any cache file that is from before Today (Max 500) function abClearOldCache($cacheFolderName, $cacheHours, $debug=false) { $today = date('Ymd'); $cacheFolder = abGetCacheFolder($cacheFolderName); if (is_dir($cacheFolder)) { $allCacheFiles = glob($cacheFolder.'/*.cache'); $todaysCacheFiles = glob($cacheFolder.'/'.$today.'*.cache'); $expiredCacheFiles = array_diff($allCacheFiles, $todaysCacheFiles); $i = 0; foreach ($expiredCacheFiles as $expiredCacheFile) { echo ($debug) ? "
  • Deleting expired cache file: ".$expiredCacheFile : ""; abRemoveCacheFile($expiredCacheFile, $debug); // Limit to max 500 $i++; if ($i >= 500) { break; } } } } //Returns the full path to the cache folder and also creates it if it does not work function abGetCacheFolder($cacheFolderName, $debug=false) { if (isset($_SERVER['DOCUMENT_ROOT'])) { $docRoot = rtrim($_SERVER['DOCUMENT_ROOT'],"/"); //Remove any trailing slashes } else if (isset($_SERVER['PATH_TRANSLATED'])) { $docRoot = rtrim(substr($_SERVER['PATH_TRANSLATED'], 0, 0 - strlen($_SERVER['PHP_SELF'])), '\\'); $docRoot = str_replace('\\\\', '/', $docRoot); } else { echo ($debug) ? "
  • Error: Could not construct cache path" : ""; } $cacheFolder = $docRoot."/".$cacheFolderName; echo ($debug) ? "
  • Cache folder is: ".$cacheFolder : ""; if (!file_exists($cacheFolder)) { echo ($debug) ? "
  • Cache folder does not exist: ".$cacheFolder : ""; if (!@mkdir($cacheFolder,0777)) { echo ($debug) ? "
  • Error - could not create cache folder: ".$cacheFolder : ""; return false; } else { echo ($debug) ? "
  • Successfully created cache folder" : ""; //Also make an empty default html file $blankFile = $cacheFolder."/index.html"; if (!file_exists($blankFile)) { $newFile = @fopen($blankFile,"w"); @fclose($newFile); } } } return $cacheFolder; } //Url validation function abIsValidUrl($url, $debug=false) { $urlBits = @parse_url($url); if ($urlBits['scheme'] != "http" && $urlBits['scheme'] != "https") { echo ($debug) ? "
  • Error! URL does not start with http: ".$url : ""; return false; } else if (strlen($urlBits['host']) < 4 || strpos($urlBits['host'], ".") === false) { echo ($debug) ? "
  • Error! URL is incorrect: ".$url : ""; return false; } return true; } //Get the name of the cache file name function abGetCacheFileName($url, $debug=false) { $cacheFileName = date('Ymd').md5($url).".cache"; echo ($debug) ? "
  • Cache file name for URL: ".$url." is ".$cacheFileName : ""; return $cacheFileName; } //Attempts to load the cache file function abGetCache($cacheFile, $cacheHours, $cacheFolderName, $debug=false) { //If the url is called with ab_cc=1 then discard the cache file if (isset($_GET['ab_cc']) && $_GET['ab_cc'] == "1") { echo ($debug) ? "
  • Clear cache invoked!" : ""; abRemoveCacheFile($cacheFile); unset($_GET['ab_cc']); return false; } if (!file_exists($cacheFile)) { echo ($debug) ? "
  • Error! Cache file does not exist! ".$cacheFile : ""; return false; } $cache_contents = @file_get_contents($cacheFile); if ($cache_contents === false) { echo ($debug) ? "
  • Error: Cache file is completely empty!" : ""; return false; } else { echo ($debug) ? "
  • Cache file contents: ".$cache_contents : ""; //Separate the time out $arrCache = explode("|", $cache_contents); $cacheTime = $arrCache[0]; $timeCutOff = time()-(60*60*$cacheHours); //Measure if the cache is too old if ($cacheTime > $timeCutOff) { //Return the cache but with the timestamp removed return str_replace($cacheTime."|", "", $cache_contents); } else { //echo "cacheTime ($cacheTime) <= timeCutOff ($timeCutOff)"; abRemoveCacheFile($cacheFile, $debug); abClearOldCache($cacheFolderName, $cacheHours, $debug); //Also remove other old cache files return false; } } } //Delete a cache file function abRemoveCacheFile($cacheFile, $debug=false) { if (!@unlink($cacheFile)) { echo ($debug) ? "
  • Error: Could not remove cache file: ".$cacheFile : ""; return false; } else { echo ($debug) ? "
  • Successfully removed the cache file: ".$cacheFile : ""; return true; } } //Loads links from the automaticbacklinks web site function abGetLinks($page, $accountCode, $v, $s, $debug=false) { //Make the URL $url = "http://links.automaticbacklinks.com/links.php"; $url = $url."?a=".$accountCode; $url = $url."&v=".$v; $url = $url."&s=".$s; $url = $url."&page=".urlencode($page); echo ($debug) ? "
  • Making call to AB: ".$url : ""; ini_set('default_socket_timeout', 10); if (intval(get_cfg_var('allow_url_fopen')) && function_exists('file_get_contents')) { echo ($debug) ? "
  • Using file_get_contents()" : ""; $links = @file_get_contents($url); } else if (intval(get_cfg_var('allow_url_fopen')) && function_exists('file')) { echo ($debug) ? "
  • Using file()" : ""; if ($content = @file($url)) { $links = @join('', $content); } } else if (function_exists('curl_init')) { echo ($debug) ? "
  • Using cURL()" : ""; $ch = curl_init ($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $links = curl_exec($ch); curl_close ($ch); } else { echo ($debug) ? "
  • Error: no method available to fetch links!" : ""; return false; } return $links; } //remove ab_cc etc. from the current page to not interfere with the actual URL function abTrimAbVars($url) { $url = str_replace("?ab_cc=1", "", $url); $url = str_replace("&ab_cc=1", "", $url); $url = str_replace("?ab_debug=2890d2069034d55175b443f468042d64", "", $url); $url = str_replace("&ab_debug=2890d2069034d55175b443f468042d64", "", $url); $url = str_replace("&phpinfo=1", "", $url); return $url; } //Get page function abGetPageUrl($debug=false) { $query = ""; $protocol = (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != "off") ? "https://" : "http://"; $host = $_SERVER['HTTP_HOST']; $page = null; if (isset($_SERVER["REDIRECT_URL"]) && !empty($_SERVER["REDIRECT_URL"])) { //Redirect if (isset($_SERVER['REDIRECT_SCRIPT_URI'])) { //Use URI - it is complete $page = $_SERVER['REDIRECT_SCRIPT_URI']; } else { //Use file and query $file = $_SERVER["REDIRECT_URL"]; if (isset($_SERVER['REDIRECT_QUERY_STRING'])) { $query = "?".$_SERVER['REDIRECT_QUERY_STRING']; } } } else { //No redirect if (isset($_SERVER['REQUEST_URI'])) { //Use URI if (substr($_SERVER['REQUEST_URI'],0,4) == "http") { //Request URI has host in it $page = $_SERVER['REQUEST_URI']; } else { //Request uri lacks host $page = $protocol.$host.$_SERVER['REQUEST_URI']; } } else if (isset($_SERVER['SCRIPT_URI'])) { //Use URI - it is complete $page = $_SERVER['SCRIPT_URI']; } else { $file = $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING'])) { $query = "?".$_SERVER['QUERY_STRING']; } } } if (empty($page)) { $page = $protocol.$host.$file.$query; } $page = abTrimAbVars($page); echo ($debug) ? "
  • This page is reported as: ".$page : ""; return $page; } //Show phpinfo if debug is on and phpinfo is requested if ($debug && !empty($_GET['phpinfo']) && $_GET['phpinfo']) { ?>
    getLinks(); ?>