Bu məqaləni lazımdır. |
Bu məqalədə heç bir məlumatın mənbəsi . |
TCP (Transmissiya İdarəetmə Protokolu) - etibarsız bir şəbəkə üzərində, etibarlı end-to-end bayt axınını təmin etmək üçün nəzərdə tutulmuşdur. Bir internet şəbəkəsi başqa bir şəbəkədən fərqlənir, çünki müxtəlif hissələr müxtəlif növ topologiyalara, bant genişliklərinə, gecikmələrə, paket ölçülərinə və digər parametrlərə malik ola bilər. TCP, şəbəkənin xüsusiyyətlərinə dinamik şəkildə uyğundur və bir çox növ uğursuzluq qarşısında sağlam olmaq üçün nəzərdə tutulmuşdur.
UDP sadə bir protokoldur və müştərilərin qarşılıqlı təsirləri və multimediya kimi çox əhəmiyyətli istifadələrə malikdir, lakin əksər internet proqramları üçün etibarlı, ardıcıl çatdırılma tələb olunur. UDP bunu təmin edə bilməz, buna başqa bir protokol tələb olunur. Bu TCP adlanır və internetin əsas işçi protokollarndandır. İndi buna ətraflı nəzər yetirək.
TCP ilə tanışlıq
TCP 1981-ci ilin sentyabrında RFC 793-də rəsmən müəyyənləşdirilmişdir. Bu müddət ərzində bir çox səhvlər aşkarlanmış və düzəlişlər edilmişdir.
TCP'yi dəstəkləyən hər bir maşın bir TCP nəqliyyat obyektinə, ya kitabxana prosedurasına, istifadəçi prosesinə və ya ən çox qismən kernelin bir hissəsinə malikdir. Bütün hallarda, TCP axınlarını və IP qatının interfeysləri idarə edir. TCP bir istifadəçi kimi, yerli proseslərdən istifadəçilərin məlumat axını qəbul edir, onları 64 KB'yi (praktikada, IP və TCP başlıqları ilə bir Ethernet kadrına uyğun olmaq üçün tez-tez 1460 məlumat baytını) aşmayan parçaları ayırır və hər bir parçanı ayrı IP datagramı kimi göndərir. TCP məlumatlarını ehtiva edən datagramlar bir maşına çatdıqda, orijinal bayt axınlarını yenidən quran TCP obyektinə verilir. Sadəlik üçün, bəzən TCP nəqliyyat vahidini (proqram parçası) və ya TCP protokolunu (bir sıra qaydalar) nəzərdə tutmaq üçün yalnız 'TCP'dən istifadə edirik.
IP qatı, nə datagramların düzgün təslim ediləcəyinə və nə də ki, bunların nə qədər sürətli göndəriləcəyinə heç bir zəmanət vermir. TCP, imkanlardan tam olaraq istifadə etmək üçün kifayət qədər sürətli datagramları göndərə bilir, lakin yığılmalara səbəb olmur və çatdırılmayan hər hansı bir datagramı vaxtında həyata keçirmək və yenidən ötürmək üçündür. Qısacası, TCP ən çox tətbiqin istədiyi və İP təmin etmədiyi etibarlılığı ilə yaxşı performans göstərməli olan protokoldur.
TCP servis modeli
TCP xidməti həm göndəriciyə, həm də alıcıya xidmətini müəyyən edən servisi soket adlanır. Hər bir yuvada ev sahibinin IP ünvanından ibarət olan bir yuva sayı (ünvanı) və bu portun adına verilən 16 bitlik bir nömrə vardır. Bir liman TSAP üçün TCP adıdır. TCP xidmətinin alınması üçün, bir maşın bir yuva və başqa bir maşın üzərində bir yuva arasında bir əlaqə müəyyən edilməlidir. Soket adlandırmaları sağdakı şəkildə verilmişdir.
Bir soket birdən çox əlaqəyə eyni zamanda istifadə edilə bilər. Başqa sözlə, iki və ya daha çox əlaqənin eyni soketdə fasilə verə bilər. Bağlantılar hər iki ucunda socket identifikatorları tərəfindən müəyyən edilir, yəni (socket1, socket2). Virtual qurğu nömrələri və ya digər identifikatorlar istifadə edilmir.
1024-dən aşağı olan port nömrələri, adətən yalnız imtiyazlı istifadəçilər (məsələn, UNIX sistemlərində root) tərəfindən başlana bilən standart xidmətlər üçün qorunur. Bunlara tanınmış portlar deyilir. Misal üçün, bir hostdan uzaqdan poçt ala bilən hər hansı bir əməliyyat, IMAP daemonuna müraciət etmək üçün təyinatçının 143 nöqtəsinə bağlana bilər. Tanınmış portlarım siyahısı www.iana.org saytında verilmişdir. 700-dən çox adam təyin edilib. Daha yaxşı bilinənlərdən bir neçəsi cədvəldə verilmişdir.
20, 21 | FTP | Fayl transferi |
22 | SSH | Uzaqdan giriş, Telnet üçün əvəzedici |
25 | SMTP | E-poçt |
80 | HTTP | World Wide Web |
110 | POP-3 | Uzaqdan elektron poçtla giriş |
143 | IMAP | Uzaq e-poçt giriş |
443 | HTTPS | Secure Web (SSL / TLS üzərindən HTTP) |
543 | RTSP | Media player idarəsi |
631 | IPP | Printer paylaşımı |
1024-dən 49151-dək olan digər portlar IANA-nın qeydiyyatdan keçməmiş istifadəçilər tərəfindən istifadəsi oluna bilər, lakin proqramlar öz portlarını seçə və istifadə edə bilərlər. Məsələn, BitTorrent peer-to-peer fayl paylaşma proqramı (qeyri-rəsmi) 6881-6887 nöqtələrini istifadə edir, lakin digər portlarda da işləyə bilər.
Əlbəttə, FTP daemonunu 21 nöqtəsinə boot yerinin özünə yerləşdirmək mümkün olardı, SSH daemonu özünü yükləmə zamanında 22 nöqtəsinə yerləşdirdi və s. Bununla belə, bu, yaddaşın əksəriyyətində boş olan daemonlarla yadda qaldı. Bunun əvəzində, UNIX-də inetd (Internet daemon) adlanan tək bir daemonun olması, özünü birdən çox porta yerləşdirmək və ilk gələn əlaqəni gözləməkdir. Bu meydana gəldikdə, inetd yeni bir prosesdən götürülür və daemonun istəklərini həll etməyə imkan verən müvafiq işləmə yerinə yetirir. Bu yolla, inetd xaricindəki daemonlar yalnız işləmək üçün iş olduqda aktiv olurlar. Inetd bir konfiqurasiya faylından istifadə etmək üçün olan portları öyrənir. Nəticədə, sistem administratoru işləməyən portlarda (məs., port 80) daimi daemonlara malik olmaq üçün sistemin qurulmasını və qalan hissəsini inetd edə bilər.
Bütün TCP əlaqələri tam dubleks və ya nöqtədən-nöqtəyə formasıdadır. Tam dubleks, trafikin eyni zamanda hər iki istiqamətdə gedə biləcəyini bildirir. Point-to-point deməkdir ki, hər bir əlaqənin dəqiq iki sonu var. TCP, multicasting və ya genişyayımı dəstəkləmir.
TCP bağlantısı bir mesaj axını deyil, bayt axınıdır. Mesaj sərhədləri əvvəldən sona qorunmayacaqdır. Məsələn, göndərmə prosesi dörd 512 bayt TCP axına yazırsa, bu məlumatların alınması prosesini dörd 512 baytlıq fraqment, iki 1024 baytlık bir parça, bir 2048 bayt yığın kimi və ya başqa bir şəkildə edə bilər. Qəbul edənin məlumatların necə yazıldığını aşkar etməsi üçün heç bir yol yoxdur.
UNIX-də fayllar da bu imkana malikdir. Faylın oxucusu faylının bir anda bir blok, bir anda bir bayt və ya bir zərbədə göndərilmiş olub-olmadığını bilmir. Bir UNIX faylında olduğu kimi, TCP proqramı, baytların nə demək olduğunu bilməyəcəkdir və heç bunu bilməyə marağı da yoxdur. Bir bayt yalnız bir baytdır.
İnternet arxeoloqları üçün TCP xidmətinin nadir hallarda istifadə edildiyi bir maraqlı xüsusiyyəti də qeyd edəcəyik: təcili məlumatlar. Bir tətbiq dərhal emal edilməli olan yüksək prioritet məlumatlara malik olduqda, məsələn, interaktiv istifadəçi artıq başlayan bir uzaq hesablamanı qırmaq üçün CTRL-C düyməsinə çarpdıqda, göndərmə tətbiqi məlumat axınındakı bəzi nəzarət məlumatlarını və TCP-yə URGENT bayrağı ilə birlikdə verilir. Bu hadisə TCP-yə məlumatların yığılmasını dayandırmağa və dərhal bu bayrağa malik olan hər şeyi ötürməyə səbəb olur.
TCP Protokolu
Bu bölmədə TCP protokoluna ümumi bir baxış verəcəyik.
TCP'nin əsas xüsusiyyətlərindən biri hansıkı protokol dizaynına hakimdir, bir TCP bağlantısının hər baytının öz 32-bitlik sıra nömrəsi olmasıdır. İnternet ilk başladıqda, marşrutlaşdırıcılar arasında xəttlər əsasən 56 kbit/s həcmində icarəyə verilmiş xətt idi, beləliklə, tam sürətldə host partlayırdı, bir ev sahibi ardıcıl nömrələrə keçmək üçün 1 həftə vaxt lazım idi. Müasir şəbəkə sürətində, ardıcıl nömrələr daha sonra görəcəksiniz ki, həyəcan verici dərəcədə istehlak edilə bilər. Ayrı 32 bitlik sıra nömrələri sürüşmə pəncərəsi mövqeyi üçün bir istiqamətdə və aşağıda müzakirə edilən tərs istiqamətdə bildirişlər üçün paketlərdə aparılır.
Göndərən və qəbul edən TCP şəxsləri məlumatları seqmentlər şəklində mübadilə edir. TCP seqmenti sabit 20 byte başlıqlı (plus optional hissəsi) və əlavə olaraq sıfır və ya daha çox məlumat baytından ibarətdir. TCP proqramı, böyük seqmentlərin necə olacağına qərar verir. Bir neçə yazıdan məlumatları bir seqmentə toplaya bilər və ya birdən çox seqment üzərində bir yazıdan məlumatları bölüşə bilər. İki limit seqment ölçüsünü məhdudlaşdırır. Birincisi, TCP başlığı daxil olmaqla, hər seqment 65,515 baytlıq IP yüklənməsinə uyğun olmalıdır. İkincisi, hər bir linkdə bir MTU (Maksimum Transfer Vahidi) var. Hər bir seqment göndərici və qəbuledən MTU-yə uyğun olmalıdır, belə ki, vahid, asudə bir paketdə göndərilə və qəbul edilə bilər. Praktikada, MTU ümumiyyətlə 1500 bayt (Ethernet Payload ölçüsü) olur və beləliklə, seqment ölçüsü üzərində üst sərhəd müəyyən edir.
TCP şəxsləri tərəfindən istifadə edilən əsas protokolu dinamik pəncərə ölçüsü olan sürüşməli pəncərə protokudur. Bir göndərən bir seqmenti ötürdükdə, bu taymeri başladır. Segment təyinat yerinə gəldikdə, qəbul edən TCP şəxsiyyəti qəbul edilən növbəti sıra nömrəsinə və qalan pəncərənin ölçüsünə bərabər bir təsdiqi nömrəsini daşıyaraq bir seqmenti (mövcud olduqda və ya olmadan) geri göndərir. Təqdimat qəbul edilməzdən əvvəl göndərilən şəxsin timeri sönürsə, göndərən seqmenti yenidən ötürür.
Bu protokol biraz sadə səslənir, baxmayaraq ki, bəzən incə girişlər və çıxışlar var, hansı ki, biz aşağıda göstərəcəyik. Segments sıradan çıxa bilər, buna görə baytlar 3072-4095 gəlib çatacaq, lakin 2048-3071 baytları hələ açılmamışdır. Seqmentlər də tranzitdə göndəricinin vaxtını uzatdıqları üçün, reallaşdırdığı müddətdə gecikdirilə bilər. Yenidən ötürülmələr müxtəlif bayt aralıqlarını orijinal ötürülmələrdən əlavə ola bilər, hansı baytların bu günə qədər düzgün qəbul edildiyini izləmək üçün ehtiyatlı bir idarəetməni tələb edir. Lakin, axındakı hər bir baytın özünəməxsus offset olması səbəbindən, bunları etmək mümkündür.
TCP bu problemlərlə məşğul olmaq və onları effektiv həll etmək üçün hazır olmalıdır. Hətta şəbəkə problemləri qarşısında olsa da, TCP öz axınlarının performansını optimallaşdırmaq üçün böyük miqdarda səy göstərmişdir.
TCP Seqment başlığı
Şəkildə bir TCP seqmentinin sxemi göstərilir. Hər seqment sabit formatda, 20 baytlıq başlıqla başlayır. Sabit başlıq üstbilgi seçimləri ilə izlənilə bilər. Seçimlərdən sonra, əgər varsa, 65.535 - 20 - 20 = 65.495 məlumat baytı, ilk 20 IP başlığına və ikincisi isə TCP başlığına müraciət edə bilər. Hər hansı bir məlumatsız seqmentlər qanuni və ümumi olaraq etiraf və nəzarət mesajları üçün istifadə olunur.Gəlin TCP başlığı alanını sahələrə ayıraq. Mənbə portu və Hədəf port sahələri əlaqənin yerli və son nöqtələrini müəyyən edir. Bir TCP portu və hostun IP ünvanı 48 bitlik unikal bitmə nöqtəsini təşkil edir. Mənbə və təyinat nöqtəsi birlikdə göndərən və qəbul edən arasında əlaqəni müəyyənləşdirir. Bu əlaqə identifikatoruna beş ədəd məlumat daxildir: protokol (TCP), mənbə IP, mənbə portu və təyinatlı IP, təyinat portu.
Sequence sayı və Təsdiq sayı sahələri öz adi funksiyalarını yerinə yetirir. Qeyd edək ki, sonuncu byte düzgün qəbul olunmayan deyil, gözlənilən növbəti sıraya aiddir. Alınan məlumatları bir nömrə ilə yekunlaşdırdığından, bu bir məcmu etirafdır. Bu itirilmiş məlumatlardan kənara çıxmır. Hər bir 32 bit bir TCP axınında saylıdır, çünki hər ikisi 32 bitdir.
TCP başlıq uzunluğu, TCP başlığında neçə 32 bit sözlərin olduğunu bildirir. Seçimlər sahəsi dəyişən uzunluq olduğundan bu məlumat tələb olunur, buna görə bu başlıq da var. Texniki cəhətdən, bu sahə həqiqətən 32 bit sözlərlə ölçülən seqment daxilində məlumatların başlanmasını göstərir, lakin bu rəqəm yalnız sözlərin başlıq uzunluğudur, buna görə də təsir eynidır.
Bundan sonra istifadə edilməyən 4-bitlik bir sahə gəlir. Bu bitlərin 30 il ərzində istifadəyə verilməməsi (yalnız orijinal qorunan 6 bitin yalnız 2-si) TCP-nin necə yaxşı düşünülmüş olduğuna dair şəhadətdir. Kiçik protokollar bu bitləri orijinal dizayndakı xətaları düzəltmək üçün lazım ola bilərdi.
İndi səkkiz ədəd 1-bit bayraqları gəlin aydınlaşdıraq. CWR və ECE, RFC 3168-də göstərildiyi kimi ECN (Aşkar Tıxanma Bildirimi) istifadə edildikdə sıxışdırmaq üçün istifadə edilir. ECE, TCP qəbuledicisi bir tıxanıqlığ aldıqda yavaşlamaq üçün bir TCP göndərənə, şəbəkə göstəricisi bir ECN-Echo'yu siqnalı təyin edir. CWR, TCP göndərəndən TCP alıcısına qədər azaldıqda, göndəricinin yavaşladığını bilir və ECN-Echo göndərilməsini dayandıra bilər.
Təcili göstərici istifadə edildikdə URG bayrağı 1-ə bərabərdir. Təcili göstərici, təcili məlumatların tapılacağı cari sıra nömrəsindən bir baytın ofsetini göstərmək üçün istifadə olunur. Bu tezis kəsilmə mesajlarının əvəzinədir. Yuxarıda qeyd etdiyimiz kimi, bu qurğu TCP-nin özünü kəsilməyə səbəb olmadan, qəbul etmədən qəbulediciyə siqnal verməsinə imkan verən açıq üsuludur, lakin nadir hallarda istifadə olunur.
ACK biti Təsdiq(Acknowledgement) nömrəsi düzgün olduğunu göstərmək üçün 1 olaraq təyin edilir. Bu demək olar ki, bütün paketlər üçündür. ACK 0 olduqda, seqmentdə bir etiraf yoxdur, belə ki, Acknowledgement sayı sahəsi nəzərə alınmır.
PSH biti PUSHed məlumatları göstərir. Alıcı, məlumatı girişə çatdıqdan sonra təqdim etməyi xahiş edir və tam bir tampon qəbul edildikdən sonra (bu səmərəliliyi təmin etmək üçün başqa bir şey edə bilməyincə) tamponlaşdırmır.
RST biti, ev sahibi qəzası və ya başqa bir səbəbdən qarışdıran bir əlaqəni ani şəkildə sıfırlamaq üçün istifadə olunur. Bu, yanlış seqmenti rədd etmək və ya əlaqə yaratmaq cəhdindən imtina etmək üçün istifadə olunur. Ümumiyyətlə, RST bit ilə seqmenti əldə etsəniz, demək ki, əlinizdə problem var.
SYN biti əlaqələri yaratmaq üçün istifadə olunur. Bağlantı sorğusu SYN = 1 və ACK = 0, piggyback bildiriş sahəsinin istifadə edilmədiyini göstərmək üçün var. Bağlantıya cavab verilir, lakin bununla da SYN = 1 və ACK = 1 olur. Əslində, SYN biti həm də bu iki imkanı arasında ayırmaq üçün istifadə edilən ACK biti ilə qəbul edilən ƏLAQƏ MÜRACİƏTİ və ƏLAQƏ BAĞLANMAĞI-nı göstərmək üçün istifadə olunur.
FIN biti əlaqəni azad etmək üçün istifadə olunur. Göndərənin ötürmənin daha çox məlumatı olmadığını bildirir. Lakin, əlaqəni bağladıqdan sonra bağlanma prosesi müddətsiz məlumatları davam etdirə bilər. Həm SYN, həm də FIN seqmentləri ardıcıl nömrələrə malikdir və beləliklə düzgün qaydada emal edilməsinə zəmanət verilir.
TCP əlaqəsinin qurulması
Əlaqələr TCP-də üç tərəfdən müzakirə edilir. Bir əlaqə yaratmaq üçün, bir tərəfdən, server, LISTEN və ACCEPT primitivləri bu qaydada icra etməklə, ya xüsusi bir qayda və ya xüsusilə heç kimin göstərilməməsi ilə daxil olan bir əlaqə üçün passiv olaraq gözləyir.
Digər tərəfdən, müştəri, bağlamaq istədiyi IP ünvanını və portunu, qəbul etmək istəyən maksimum TCP seqmentinin ölçüsünü və istəyə bağlı olaraq bəzi istifadəçi məlumatlarını (məsələn, bir parol) müəyyənləşdirən CONNECT primitivini icra edir. CONNECT primitivi SYN bit və ACK biti ilə bir TCP seqmenti göndərir və bir cavab gözləyir.
Bu seqment hədəfinə çatdıqda, orada olan TCP varlığı, Hədəf port sahəsindəki portda LİSTEN yapan bir prosesin olmadığını yoxlayır. Əgər yoxsa, bu əlaqəni rədd etmək üçün RST bit ilə cavab göndərir.
Proseslər porta qulaq asırsa, bu proses gələn TCP seqmentinə verilir. Bu əlaqəni qəbul edə və ya rədd edə bilər. Qəbul edərsə, bir təsdiq seqmenti geri göndərilir. Normal vəziyyətdə göndərilən TCP seqmentlərinin ardıcıllığı sağda şəkildə göstərilir. Bir SYN seqmentinin 1 baytlıq ardıcıllıq sahəsini istehlak etməsi üçün birmənalı olaraq qəbul edilə bilər.
Eyni iki soket arasında eyni zamanda iki hostun eyni vaxtda əlaqəsi qurulmağa çalışması halında hadisələrin ardıcıllığı şəkil (b) -də göstərilmişdir. Bu hadisələrin nəticəsi ondan ibarətdir ki, əlaqələr son nöqtələrlə müəyyən edilir. Birinci qurma (x, y) və ikincisi ilə müəyyənləşdirilmiş əlaqələ nəticələnirsə, yalnız (x, y) üçün yalnız bir cədvəl girişi edilir.
Bununla birlikdə, üç yol ilə bağlanmanın zəifliyi, dinləmə prosesinin öz SYN seqmenti ilə tezliklə cavab verəcəyi sırada sıralanma nömrəsini yadda saxlamaqdır. Yəni, zərərli bir göndərən, bir SYN seqmentinin bir axını göndərərək və birləşməni tamamlamamaqla heç bir zaman keçmədən bir ana tərəfdə resursları bağlaya bilər. Bu hücum SYN daşqını adlanır və 1990-cı illərdə bir çox web serverinə zərər vermişdir.
wikipedia, oxu, kitab, kitabxana, axtar, tap, meqaleler, kitablar, oyrenmek, wiki, bilgi, tarix, tarixi, endir, indir, yukle, izlə, izle, mobil, telefon ucun, azeri, azəri, azerbaycanca, azərbaycanca, sayt, yüklə, pulsuz, pulsuz yüklə, haqqında, haqqinda, məlumat, melumat, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, şəkil, muisiqi, mahnı, kino, film, kitab, oyun, oyunlar, android, ios, apple, samsung, iphone, pc, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, web, computer, komputer
Bu meqaleni vikilesdirmek lazimdir Lutfen meqaleni umumvikipediya ve redakte qaydalarina uygun sekilde tertib edin Bu meqalede hec bir melumatin menbesi gosterilmemisdir Lutfen etibarli menbeler elave etmekle meqaleni tekmillesdirmeye komek edin Qerez yaradan menbesiz hisseler muzakiresiz siline biler TCP Transmissiya Idareetme Protokolu etibarsiz bir sebeke uzerinde etibarli end to end bayt axinini temin etmek ucun nezerde tutulmusdur Bir internet sebekesi basqa bir sebekeden ferqlenir cunki muxtelif hisseler muxtelif nov topologiyalara bant genisliklerine gecikmelere paket olculerine ve diger parametrlere malik ola biler TCP sebekenin xususiyyetlerine dinamik sekilde uygundur ve bir cox nov ugursuzluq qarsisinda saglam olmaq ucun nezerde tutulmusdur UDP sade bir protokoldur ve musterilerin qarsiliqli tesirleri ve multimediya kimi cox ehemiyyetli istifadelere malikdir lakin ekser internet proqramlari ucun etibarli ardicil catdirilma teleb olunur UDP bunu temin ede bilmez buna basqa bir protokol teleb olunur Bu TCP adlanir ve internetin esas isci protokollarndandir Indi buna etrafli nezer yetirek TCP ile tanisliqTCP 1981 ci ilin sentyabrinda RFC 793 de resmen mueyyenlesdirilmisdir Bu muddet erzinde bir cox sehvler askarlanmis ve duzelisler edilmisdir TCP yi destekleyen her bir masin bir TCP neqliyyat obyektine ya kitabxana prosedurasina istifadeci prosesine ve ya en cox qismen kernelin bir hissesine malikdir Butun hallarda TCP axinlarini ve IP qatinin interfeysleri idare edir TCP bir istifadeci kimi yerli proseslerden istifadecilerin melumat axini qebul edir onlari 64 KB yi praktikada IP ve TCP basliqlari ile bir Ethernet kadrina uygun olmaq ucun tez tez 1460 melumat baytini asmayan parcalari ayirir ve her bir parcani ayri IP datagrami kimi gonderir TCP melumatlarini ehtiva eden datagramlar bir masina catdiqda orijinal bayt axinlarini yeniden quran TCP obyektine verilir Sadelik ucun bezen TCP neqliyyat vahidini proqram parcasi ve ya TCP protokolunu bir sira qaydalar nezerde tutmaq ucun yalniz TCP den istifade edirik IP qati ne datagramlarin duzgun teslim edileceyine ve ne de ki bunlarin ne qeder suretli gonderileceyine hec bir zemanet vermir TCP imkanlardan tam olaraq istifade etmek ucun kifayet qeder suretli datagramlari gondere bilir lakin yigilmalara sebeb olmur ve catdirilmayan her hansi bir datagrami vaxtinda heyata kecirmek ve yeniden oturmek ucundur Qisacasi TCP en cox tetbiqin istediyi ve IP temin etmediyi etibarliligi ile yaxsi performans gostermeli olan protokoldur TCP servis modeliTCP xidmeti hem gondericiye hem de aliciya xidmetini mueyyen eden servisi soket adlanir Her bir yuvada ev sahibinin IP unvanindan ibaret olan bir yuva sayi unvani ve bu portun adina verilen 16 bitlik bir nomre vardir Bir liman TSAP ucun TCP adidir TCP xidmetinin alinmasi ucun bir masin bir yuva ve basqa bir masin uzerinde bir yuva arasinda bir elaqe mueyyen edilmelidir Soket adlandirmalari sagdaki sekilde verilmisdir Bir soket birden cox elaqeye eyni zamanda istifade edile biler Basqa sozle iki ve ya daha cox elaqenin eyni soketde fasile vere biler Baglantilar her iki ucunda socket identifikatorlari terefinden mueyyen edilir yeni socket1 socket2 Virtual qurgu nomreleri ve ya diger identifikatorlar istifade edilmir 1024 den asagi olan port nomreleri adeten yalniz imtiyazli istifadeciler meselen UNIX sistemlerinde root terefinden baslana bilen standart xidmetler ucun qorunur Bunlara taninmis portlar deyilir Misal ucun bir hostdan uzaqdan poct ala bilen her hansi bir emeliyyat IMAP daemonuna muraciet etmek ucun teyinatcinin 143 noqtesine baglana biler Taninmis portlarim siyahisi www iana org saytinda verilmisdir 700 den cox adam teyin edilib Daha yaxsi bilinenlerden bir necesi cedvelde verilmisdir 20 21 FTP Fayl transferi22 SSH Uzaqdan giris Telnet ucun evezedici25 SMTP E poct80 HTTP World Wide Web110 POP 3 Uzaqdan elektron poctla giris143 IMAP Uzaq e poct giris443 HTTPS Secure Web SSL TLS uzerinden HTTP 543 RTSP Media player idaresi631 IPP Printer paylasimi 1024 den 49151 dek olan diger portlar IANA nin qeydiyyatdan kecmemis istifadeciler terefinden istifadesi oluna biler lakin proqramlar oz portlarini sece ve istifade ede bilerler Meselen BitTorrent peer to peer fayl paylasma proqrami qeyri resmi 6881 6887 noqtelerini istifade edir lakin diger portlarda da isleye biler Elbette FTP daemonunu 21 noqtesine boot yerinin ozune yerlesdirmek mumkun olardi SSH daemonu ozunu yukleme zamaninda 22 noqtesine yerlesdirdi ve s Bununla bele bu yaddasin ekseriyyetinde bos olan daemonlarla yadda qaldi Bunun evezinde UNIX de inetd Internet daemon adlanan tek bir daemonun olmasi ozunu birden cox porta yerlesdirmek ve ilk gelen elaqeni gozlemekdir Bu meydana geldikde inetd yeni bir prosesden goturulur ve daemonun isteklerini hell etmeye imkan veren muvafiq isleme yerine yetirir Bu yolla inetd xaricindeki daemonlar yalniz islemek ucun is olduqda aktiv olurlar Inetd bir konfiqurasiya faylindan istifade etmek ucun olan portlari oyrenir Neticede sistem administratoru islemeyen portlarda mes port 80 daimi daemonlara malik olmaq ucun sistemin qurulmasini ve qalan hissesini inetd ede biler Butun TCP elaqeleri tam dubleks ve ya noqteden noqteye formasidadir Tam dubleks trafikin eyni zamanda her iki istiqametde gede bileceyini bildirir Point to point demekdir ki her bir elaqenin deqiq iki sonu var TCP multicasting ve ya genisyayimi desteklemir TCP baglantisi bir mesaj axini deyil bayt axinidir Mesaj serhedleri evvelden sona qorunmayacaqdir Meselen gonderme prosesi dord 512 bayt TCP axina yazirsa bu melumatlarin alinmasi prosesini dord 512 baytliq fraqment iki 1024 baytlik bir parca bir 2048 bayt yigin kimi ve ya basqa bir sekilde ede biler Qebul edenin melumatlarin nece yazildigini askar etmesi ucun hec bir yol yoxdur UNIX de fayllar da bu imkana malikdir Faylin oxucusu faylinin bir anda bir blok bir anda bir bayt ve ya bir zerbede gonderilmis olub olmadigini bilmir Bir UNIX faylinda oldugu kimi TCP proqrami baytlarin ne demek oldugunu bilmeyecekdir ve hec bunu bilmeye maragi da yoxdur Bir bayt yalniz bir baytdir Internet arxeoloqlari ucun TCP xidmetinin nadir hallarda istifade edildiyi bir maraqli xususiyyeti de qeyd edeceyik tecili melumatlar Bir tetbiq derhal emal edilmeli olan yuksek prioritet melumatlara malik olduqda meselen interaktiv istifadeci artiq baslayan bir uzaq hesablamani qirmaq ucun CTRL C duymesine carpdiqda gonderme tetbiqi melumat axinindaki bezi nezaret melumatlarini ve TCP ye URGENT bayragi ile birlikde verilir Bu hadise TCP ye melumatlarin yigilmasini dayandirmaga ve derhal bu bayraga malik olan her seyi oturmeye sebeb olur TCP ProtokoluBu bolmede TCP protokoluna umumi bir baxis vereceyik TCP nin esas xususiyyetlerinden biri hansiki protokol dizaynina hakimdir bir TCP baglantisinin her baytinin oz 32 bitlik sira nomresi olmasidir Internet ilk basladiqda marsrutlasdiricilar arasinda xettler esasen 56 kbit s hecminde icareye verilmis xett idi belelikle tam suretlde host partlayirdi bir ev sahibi ardicil nomrelere kecmek ucun 1 hefte vaxt lazim idi Muasir sebeke suretinde ardicil nomreler daha sonra goreceksiniz ki heyecan verici derecede istehlak edile biler Ayri 32 bitlik sira nomreleri surusme penceresi movqeyi ucun bir istiqametde ve asagida muzakire edilen ters istiqametde bildirisler ucun paketlerde aparilir Gonderen ve qebul eden TCP sexsleri melumatlari seqmentler seklinde mubadile edir TCP seqmenti sabit 20 byte basliqli plus optional hissesi ve elave olaraq sifir ve ya daha cox melumat baytindan ibaretdir TCP proqrami boyuk seqmentlerin nece olacagina qerar verir Bir nece yazidan melumatlari bir seqmente toplaya biler ve ya birden cox seqment uzerinde bir yazidan melumatlari boluse biler Iki limit seqment olcusunu mehdudlasdirir Birincisi TCP basligi daxil olmaqla her seqment 65 515 baytliq IP yuklenmesine uygun olmalidir Ikincisi her bir linkde bir MTU Maksimum Transfer Vahidi var Her bir seqment gonderici ve qebuleden MTU ye uygun olmalidir bele ki vahid asude bir paketde gonderile ve qebul edile biler Praktikada MTU umumiyyetle 1500 bayt Ethernet Payload olcusu olur ve belelikle seqment olcusu uzerinde ust serhed mueyyen edir TCP sexsleri terefinden istifade edilen esas protokolu dinamik pencere olcusu olan surusmeli pencere protokudur Bir gonderen bir seqmenti oturdukde bu taymeri basladir Segment teyinat yerine geldikde qebul eden TCP sexsiyyeti qebul edilen novbeti sira nomresine ve qalan pencerenin olcusune beraber bir tesdiqi nomresini dasiyaraq bir seqmenti movcud olduqda ve ya olmadan geri gonderir Teqdimat qebul edilmezden evvel gonderilen sexsin timeri sonurse gonderen seqmenti yeniden oturur Bu protokol biraz sade seslenir baxmayaraq ki bezen ince girisler ve cixislar var hansi ki biz asagida gostereceyik Segments siradan cixa biler buna gore baytlar 3072 4095 gelib catacaq lakin 2048 3071 baytlari hele acilmamisdir Seqmentler de tranzitde gondericinin vaxtini uzatdiqlari ucun reallasdirdigi muddetde gecikdirile biler Yeniden oturulmeler muxtelif bayt araliqlarini orijinal oturulmelerden elave ola biler hansi baytlarin bu gune qeder duzgun qebul edildiyini izlemek ucun ehtiyatli bir idareetmeni teleb edir Lakin axindaki her bir baytin ozunemexsus offset olmasi sebebinden bunlari etmek mumkundur TCP bu problemlerle mesgul olmaq ve onlari effektiv hell etmek ucun hazir olmalidir Hetta sebeke problemleri qarsisinda olsa da TCP oz axinlarinin performansini optimallasdirmaq ucun boyuk miqdarda sey gostermisdir TCP Seqment basligiSekilde bir TCP seqmentinin sxemi gosterilir Her seqment sabit formatda 20 baytliq basliqla baslayir Sabit basliq ustbilgi secimleri ile izlenile biler Secimlerden sonra eger varsa 65 535 20 20 65 495 melumat bayti ilk 20 IP basligina ve ikincisi ise TCP basligina muraciet ede biler Her hansi bir melumatsiz seqmentler qanuni ve umumi olaraq etiraf ve nezaret mesajlari ucun istifade olunur Gelin TCP basligi alanini sahelere ayiraq Menbe portu ve Hedef port saheleri elaqenin yerli ve son noqtelerini mueyyen edir Bir TCP portu ve hostun IP unvani 48 bitlik unikal bitme noqtesini teskil edir Menbe ve teyinat noqtesi birlikde gonderen ve qebul eden arasinda elaqeni mueyyenlesdirir Bu elaqe identifikatoruna bes eded melumat daxildir protokol TCP menbe IP menbe portu ve teyinatli IP teyinat portu TCP Seqment basliginin qurulusu Sequence sayi ve Tesdiq sayi saheleri oz adi funksiyalarini yerine yetirir Qeyd edek ki sonuncu byte duzgun qebul olunmayan deyil gozlenilen novbeti siraya aiddir Alinan melumatlari bir nomre ile yekunlasdirdigindan bu bir mecmu etirafdir Bu itirilmis melumatlardan kenara cixmir Her bir 32 bit bir TCP axininda saylidir cunki her ikisi 32 bitdir TCP basliq uzunlugu TCP basliginda nece 32 bit sozlerin oldugunu bildirir Secimler sahesi deyisen uzunluq oldugundan bu melumat teleb olunur buna gore bu basliq da var Texniki cehetden bu sahe heqiqeten 32 bit sozlerle olculen seqment daxilinde melumatlarin baslanmasini gosterir lakin bu reqem yalniz sozlerin basliq uzunlugudur buna gore de tesir eynidir Bundan sonra istifade edilmeyen 4 bitlik bir sahe gelir Bu bitlerin 30 il erzinde istifadeye verilmemesi yalniz orijinal qorunan 6 bitin yalniz 2 si TCP nin nece yaxsi dusunulmus olduguna dair sehadetdir Kicik protokollar bu bitleri orijinal dizayndaki xetalari duzeltmek ucun lazim ola bilerdi Indi sekkiz eded 1 bit bayraqlari gelin aydinlasdiraq CWR ve ECE RFC 3168 de gosterildiyi kimi ECN Askar Tixanma Bildirimi istifade edildikde sixisdirmaq ucun istifade edilir ECE TCP qebuledicisi bir tixaniqlig aldiqda yavaslamaq ucun bir TCP gonderene sebeke gostericisi bir ECN Echo yu siqnali teyin edir CWR TCP gonderenden TCP alicisina qeder azaldiqda gondericinin yavasladigini bilir ve ECN Echo gonderilmesini dayandira biler Tecili gosterici istifade edildikde URG bayragi 1 e beraberdir Tecili gosterici tecili melumatlarin tapilacagi cari sira nomresinden bir baytin ofsetini gostermek ucun istifade olunur Bu tezis kesilme mesajlarinin evezinedir Yuxarida qeyd etdiyimiz kimi bu qurgu TCP nin ozunu kesilmeye sebeb olmadan qebul etmeden qebulediciye siqnal vermesine imkan veren aciq usuludur lakin nadir hallarda istifade olunur ACK biti Tesdiq Acknowledgement nomresi duzgun oldugunu gostermek ucun 1 olaraq teyin edilir Bu demek olar ki butun paketler ucundur ACK 0 olduqda seqmentde bir etiraf yoxdur bele ki Acknowledgement sayi sahesi nezere alinmir PSH biti PUSHed melumatlari gosterir Alici melumati girise catdiqdan sonra teqdim etmeyi xahis edir ve tam bir tampon qebul edildikden sonra bu semereliliyi temin etmek ucun basqa bir sey ede bilmeyince tamponlasdirmir RST biti ev sahibi qezasi ve ya basqa bir sebebden qarisdiran bir elaqeni ani sekilde sifirlamaq ucun istifade olunur Bu yanlis seqmenti redd etmek ve ya elaqe yaratmaq cehdinden imtina etmek ucun istifade olunur Umumiyyetle RST bit ile seqmenti elde etseniz demek ki elinizde problem var SYN biti elaqeleri yaratmaq ucun istifade olunur Baglanti sorgusu SYN 1 ve ACK 0 piggyback bildiris sahesinin istifade edilmediyini gostermek ucun var Baglantiya cavab verilir lakin bununla da SYN 1 ve ACK 1 olur Eslinde SYN biti hem de bu iki imkani arasinda ayirmaq ucun istifade edilen ACK biti ile qebul edilen ELAQE MURACIETI ve ELAQE BAGLANMAGI ni gostermek ucun istifade olunur FIN biti elaqeni azad etmek ucun istifade olunur Gonderenin oturmenin daha cox melumati olmadigini bildirir Lakin elaqeni bagladiqdan sonra baglanma prosesi muddetsiz melumatlari davam etdire biler Hem SYN hem de FIN seqmentleri ardicil nomrelere malikdir ve belelikle duzgun qaydada emal edilmesine zemanet verilir TCP elaqesinin qurulmasiElaqeler TCP de uc terefden muzakire edilir Bir elaqe yaratmaq ucun bir terefden server LISTEN ve ACCEPT primitivleri bu qaydada icra etmekle ya xususi bir qayda ve ya xususile hec kimin gosterilmemesi ile daxil olan bir elaqe ucun passiv olaraq gozleyir Diger terefden musteri baglamaq istediyi IP unvanini ve portunu qebul etmek isteyen maksimum TCP seqmentinin olcusunu ve isteye bagli olaraq bezi istifadeci melumatlarini meselen bir parol mueyyenlesdiren CONNECT primitivini icra edir CONNECT primitivi SYN bit ve ACK biti ile bir TCP seqmenti gonderir ve bir cavab gozleyir Bu seqment hedefine catdiqda orada olan TCP varligi Hedef port sahesindeki portda LISTEN yapan bir prosesin olmadigini yoxlayir Eger yoxsa bu elaqeni redd etmek ucun RST bit ile cavab gonderir Prosesler porta qulaq asirsa bu proses gelen TCP seqmentine verilir Bu elaqeni qebul ede ve ya redd ede biler Qebul ederse bir tesdiq seqmenti geri gonderilir Normal veziyyetde gonderilen TCP seqmentlerinin ardicilligi sagda sekilde gosterilir Bir SYN seqmentinin 1 baytliq ardicilliq sahesini istehlak etmesi ucun birmenali olaraq qebul edile biler a TCP elaqesi normal formada qurulur b Simulyasyali elaqe her iki terefden qurulur Eyni iki soket arasinda eyni zamanda iki hostun eyni vaxtda elaqesi qurulmaga calismasi halinda hadiselerin ardicilligi sekil b de gosterilmisdir Bu hadiselerin neticesi ondan ibaretdir ki elaqeler son noqtelerle mueyyen edilir Birinci qurma x y ve ikincisi ile mueyyenlesdirilmis elaqele neticelenirse yalniz x y ucun yalniz bir cedvel girisi edilir Bununla birlikde uc yol ile baglanmanin zeifliyi dinleme prosesinin oz SYN seqmenti ile tezlikle cavab vereceyi sirada siralanma nomresini yadda saxlamaqdir Yeni zererli bir gonderen bir SYN seqmentinin bir axini gondererek ve birlesmeni tamamlamamaqla hec bir zaman kecmeden bir ana terefde resurslari baglaya biler Bu hucum SYN dasqini adlanir ve 1990 ci illerde bir cox web serverine zerer vermisdir