top.tipText = new Array();
var isLayers = 0;
var isAll = 0;
var isID = 0;
function init()
{
if (document.getElementById)
{
isID = 1;
}
else if (document.all)
{
isAll = 1;
}
else
{
isLayers = 1;
}
if (isLayers == 1)
{
var tipArray;
}
else
{
top.frames['tip_frame'].document.open();
top.frames['tip_frame'].document.write("");
top.frames['tip_frame'].document.close();
}
}
function findDOM(objectID,withStyle)
{
if (withStyle == 1)
{
if (isID)
{
return (document.getElementById(objectID).style);
}
else if (isAll)
{
return (document.all[objectID].style);
}
else
{
return (document.layers[objectID]);
}
}
else
{
if (isID)
{
return (document.getElementById(objectID));
}
else if (isAll)
{
return (document.all[objectID]);
}
else
{
return (document.layers[objectID]);
}
}
}
function getWidth()
{
if (window.innerWidth != null)
{
return window.innerWidth;
}
else if (document.body.clientWidth != null)
{
return document.body.clientWidth;
}
return (null);
}
function showTip(evt,framename,objectID)
{
dm = findDOM(objectID,0);
ds = findDOM(objectID,1);
setText(dm, framename);
var width = getWidth();
if (dm.offsetWidth)
{
objWidth = dm.offsetWidth;
}
else if (dm.clip.width)
{
objWidth = dm.clip.width;
}
if (evt.y || evt.pageY)
{
if (evt.pageY)
{
topVisibility = evt.pageY + 20;
leftVisibility = evt.pageX - (objWidth/4);
}
else
{
topVisibility = evt.y + 20 + document.body.scrollTop;
leftVisibility = evt.x - (objWidth/4) + document.body.scrollLeft;
}
if (leftVisibility < 2)
{
leftVisibility = 2;
}
else if (leftVisibility + objWidth > width)
{
leftVisibility -= objWidth/2;
}
ds.left = leftVisibility;
ds.top = topVisibility;
}
ds.visibility = "visible";
}
function hideTip(objectID)
{
ds = findDOM(objectID,1);
visibility = ds.visibility;
ds.visibility = "hidden";
}
function setText(dm,framename)
{
var tmpArray;
var frameFound = false;
for (var i=0; i=4)
this.ns4 = (this.b=="ns" && this.v==4)
this.ns5 = (this.b=="ns" && this.v==5)
this.ie = (this.b=="ie" && this.v>=4)
this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0)
this.ie5 = (navigator.appVersion.indexOf('MSIE 5.0')>0)
this.ie55 = (navigator.appVersion.indexOf('MSIE 5.5')>0)
if (this.ie5) this.v = 5
this.min = (this.ns||this.ie)
}
// automatically create the "is" object
is = new BrowserCheck()
if (document.getElementById || document.all)
{
document.write("");
}
else
{
document.write("");
}
document.write(abs_rlo_pos)
Przegląd portów warstwy transportowej
document.write(abs_rio_pos);
Porty przeznaczone dla klientów
Na tej stronie omówiono porty źródłowe ustawiane przez klientów.
Za
każdym razem, gdy klient łączy się z usługą na serwerze, musi podać port
źródłowy lub docelowy. Segmenty TCP i UDP zawierają pola, w których określa się
te parametry.
Porty docelowe, czyli porty przeznaczone dla usług, definiuje się w
oparciu o dobrze znane porty. Porty źródłowe ustawiane przez klientów są
określane dynamicznie.
Ogólnie rzecz biorąc, klient określa port
źródłowy, wybierając losowo liczbę większą od 1023. Na przykład klient, który
próbuje skomunikować się z serwerem WWW, użyje protokołu TCP i przypisze port
docelowy 80 i port źródłowy 1045. Kiedy pakiet dotrze do serwera, przechodzi
przez warstwę transportową aż do usługi HTTP, która działa na porcie 80. Serwer
odpowie na żądanie klienta segmentem, w którym jako port źródłowy podana będzie
wartość 80, a jako port docelowy " 1045. Klienci i serwery używają portów do
rozróżnienia, do których procesów jest przypisany dany segment.
Na
następnej stronie opisano trzy kategorie numerów portów.
Łącza WWW
Wyszukiwarka
Podobne podstrony:
contentcontentcontentcontentcontentcontentcontentcontentcontentfunction domnode get contentcontentcontentcontentcontentcontentcontentwięcej podobnych podstron