content


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) Funkcjonowanie protokołu TCP document.write(abs_rio_pos); Okienkowanie i rozmiar okna Na tej stronie wyjaśniono, w jaki sposób protokół TCP używa okien do kontrolowania przepływu danych. Ilość danych, jakie mają zostać przesłane, często przekracza rozmiar pojedynczego segmentu. W takiej sytuacji konieczne jest podzielenie ich na mniejsze kawałki, aby umożliwić prawidłową transmisję. Protokół TCP jest odpowiedzialny za dzielenie danych na segmenty. Można to porównać do karmienia małego dziecka. Aby pożywienie zmieściło się w jego ustach, należy je pokroić na mniejsze kawałki. Ponadto urządzenie może nie być w stanie odebrać danych tak szybko, jak nadawca je wysyła. Może ono być zajęte innymi czynnościami lub też urządzenie nadawcy może mieć większą wydajność. Po przeprowadzeniu segmentacji danych konieczne jest ich przesłanie do urządzenia docelowego. Jedną z możliwości protokołu TCP jest kontrola przepływu, która służy do regulowania ilości informacji wysyłanych w danym okresie transmisji. Kontrola przepływu jest także znana jako okienkowanie. Rozmiar okna określa ilość danych, jaka może być wysłana przed otrzymaniem potwierdzenia ze strony odbiorcy. Po wysłaniu ilości bajtów określonej przez rozmiar okna, host musi otrzymać potwierdzenie, że dane zostały otrzymane, zanim wyśle następne dane. Na przykład, jeśli rozmiar okna wynosi 1, każdy bajt musi być potwierdzony zanim następny bajt zostanie wysłany. TCP stosuje technikę okna o zmiennym rozmiarze. Urządzenia negocjują rozmiar okna określając ilość bajtów, które można wysłać przed otrzymaniem potwierdzenia.  Proces dynamicznej zmiany rozmiaru okna zwiększa niezawodność. Rozmiar okna może być zmieniany na podstawie otrzymywanych potwierdzeń. Ćwiczenie interaktywne umożliwi uczestnikom kursu zrozumienie idei okienkowania. Na następnej stronie opisano pojęcie numerów sekwencyjnych w protokole TCP. Ćwiczenie interaktywne Dopasowanie: Okienkowanie W trakcie tego ćwiczenia uczestnik kursu pozna pojęcie okienkowania.

Wyszukiwarka

Podobne podstrony:
content
content
content
content
content
content
content
content
content
function domnode get content
content
content
content
content
content
content

więcej podobnych podstron