v3是什么意思| 阑尾炎吃什么药效果好| 喜气洋洋是什么意思| 琉璃是什么材料| 什么是阻生智齿| 喉咙疼痛吃什么药效果最好| 克服是什么意思| 画蛇添足的寓意是什么| 补充微量元素吃什么| 胸闷是什么原因| 毛囊是什么样子图片| 身份证是什么字体| 暗语是什么意思| 吃什么对脾胃好| 一个小时尿一次是什么原因| 什么药治失眠最有效| 02年属马的是什么命| 小儿磨牙是什么原因引起的| 火耗归公是什么意思| 关羽的马叫什么名字| 初潮是什么意思| 乌玛王是什么牌子| 备注是什么意思| 喝酒前喝什么不容易醉| 焱加木念什么| 故事梗概是什么意思| 右眼跳是什么预兆| 任达华属什么生肖| 安宫牛黄丸主治什么病| 大人退烧吃什么药| 牛马是什么意思| 肝不好吃什么| 减肥什么时候喝牛奶| 春雨绵绵是什么生肖| 阑尾炎挂号挂什么科| 无话不谈是什么意思| 做腋臭手术挂什么科室| 异什么同什么| 胎盘低置需要注意什么| 肝火旺吃什么水果| 私生子是什么意思| 什么是福报| 有缘无分什么意思| 骟是什么意思| 但求无愧于心上句是什么| 脸上长痣是什么原因造成的| 急性肠胃炎吃什么消炎药| 妹妹是什么意思| 九出十三归指什么生肖| 乳腺增生是什么| 区长什么级别| 什么病会导致不来月经| 六六大顺是什么生肖| 桂圆什么时候成熟| 舌头上有溃疡是什么原因| 子宫肌瘤什么不能吃| 81年属什么生肖| espresso是什么咖啡| 什么叫飞机杯| 肠镜检查挂什么科室| 小孩口臭吃什么药效果最好| 2月10号是什么星座| edo是什么意思| h是什么牌子的皮带| 儒家思想是什么意思| 肝炎有什么症状| 吃炒黑豆有什么好处和坏处| 胃窦在胃的什么位置| 什么病不能吃松花粉| 忧郁症挂什么科| 梦见刷牙是什么预兆| 血糖高要忌口什么| 走之旁与什么有关| 鳊鱼吃什么食物| 冲锋陷阵是什么生肖| 转氨酶高吃什么食物好| 西瓜对人体有什么好处| 肌张力障碍是什么病| 市委讲师团是什么级别| 不割包皮有什么影响吗| 脱俗是什么意思| 左肺结节是什么意思| 红色爱心是什么牌子| 意象是什么意思| 尿酸高是什么意思| 黄体可能是什么意思啊| 盆腔积液用什么药| 贫血严重会导致什么后果| 小受是什么意思| 吃李子有什么好处和坏处| 交警中队长是什么级别| 导弹是什么意思| 京东快递是什么快递| 磨豆腐是什么意思| 腹泻拉水是什么原因| 最好的红酒是什么牌子| 回民不能吃什么| 01年属什么| 夏天脸上皮肤痒是什么原因| 肠炎有什么症状表现| 老巫婆是什么意思| 金项链断了有什么预兆| 中国梦是什么意思| 热血病是什么病| 聊胜于无什么意思| 手脚发胀是什么前兆| 胃肠功能紊乱是什么意思| 月经不调去医院挂什么科| 早晨起来口干舌燥是什么原因| 些几是什么意思| 脐炎用什么药| baby是什么意思| 国防部是干什么的| 肠子疼是什么原因| 意大利用的什么货币| 眼花是什么原因引起的| 犇是什么意思| 缺少雌激素吃什么可以补充| 阴道瘙痒是什么原因| 脚痒脱皮是什么原因| 排卵试纸强阳说明什么| 梦见吵架是什么预兆| 无蔗糖是什么意思| 十月一日是什么日子| 老死不相往来什么意思| 梦见长大水是什么意思| 财神位放什么最旺财| 重阳节吃什么好| 胎位lop是什么意思| 冷喷机喷脸有什么好处| 玉字是什么结构| 一毛不拔指什么生肖| 农历六月十七是什么日子| 为什么晚上睡觉老是做梦| 路亚什么意思| 吃软不吃硬是什么生肖| 女性肛门瘙痒用什么药| 梦见死去的亲人又活了是什么意思| 荠菜是什么菜| 鸡是什么类| 为什么会缺钙| 智字五行属什么| 海马体是什么| 大便发黑是什么情况| 抑郁挂什么科| 海关是什么| 什么立什么群| 92年的猴是什么命| 叶赫那拉氏是什么旗| 婴儿泡奶粉用什么水好| 普萘洛尔是什么药| 风湿三项检查是什么| 健身吃什么长肌肉最快| 鄂尔多斯为什么叫鬼城| 明天是什么| 田七配什么煲汤最好| 尿白细胞十一是什么意思| prl是什么意思| 杜甫被人们称为什么| 手发抖是什么原因引起的年轻人| 京酱肉丝是什么菜系| 放疗是什么意思| 深度睡眠是什么状态| 肠溶片是什么意思| 肺部有空洞是什么病症| 奶水不足是什么原因造成的| 诺贝尔为什么没有数学奖| 方案是什么意思| 耳朵疼痛是什么原因| 新生儿什么时候上户口| 孩子总爱哭是什么原因| 五经指什么| 妇科炎症是什么原因引起的| 什么情况下做喉镜| 跌跌撞撞什么意思| 绿色加什么颜色是蓝色| 刚怀孕有什么症状| 健康证照片用什么底色| 商务专员是做什么的| 白蛋白下降是什么原因| 儿童用什么洗发水好| 白茶是什么茶| 什么水果含糖量低| 今天属什么生肖日历| 鸡头上长痘痘用什么药| 什么是功| 什么护肤产品补水最好| 首鼠两端是什么意思| 下午两点是什么时辰| 福寿螺有什么寄生虫| 什么叫肺大泡| 舌边有齿痕是什么原因| 众矢之的是什么意思| 预警是什么意思| 低聚异麦芽糖是什么| 胃泌素瘤是什么意思| 喉咙疼吃什么水果好| 什么都不怕| 搞破鞋什么意思| 牛拉稀用什么药最快| 梦到涨大水预示着什么| 怀孕不到一个月有什么症状| 梦见已故的老人是什么意思| 胎停有什么症状| 怀孕什么时候能测出来| 月经有血块是什么原因| naoh是什么| 吗丁啉是什么药| 安宫牛黄丸适合什么人群吃| legacy什么意思| 审美疲劳是什么意思| 天天想睡觉没精神是什么原因| 萎缩性胃炎什么意思| 混合性皮肤用什么护肤品比较好| Fine什么意思中文| 黄皮不能和什么一起吃| 吃中药不能吃什么东西| 什么惊什么怪| 人生百味下一句是什么| 尿路感染吃什么药最快| 严惩不贷是什么意思| ppm是什么| 女人怀孕的最佳时间是什么时间| 为什么今年有两个6月| 梦见自己死了预示什么| hm是什么品牌| 婴儿放屁臭是什么原因| 放疗起什么作用| 虎虎生风是什么意思| 令羽读什么| 斑驳是什么意思| jw是什么意思| 感染艾滋病有什么症状| 茄子有什么营养| 恐龙蛋是什么水果| 清宫和刮宫有什么区别| 全身无力是什么原因| 内参是什么意思| 武当山求什么最灵| 筷子在古代叫什么| 瑄五行属什么| 收入是什么意思| 近亲为什么不能结婚| 什么是辛辣食物| 补铁的水果有什么| 空气净化器什么牌子好| 8月31号是什么星座| 1950年属什么生肖| 勃起不硬吃什么药| 脓是什么| 猪狗不如是什么生肖| 农历六月十九是什么星座| 太容易出汗是什么原因| 主动脉夹层是什么意思| 急性胃炎吃什么药好| 做肺部ct挂什么科| 生长激素是什么| 辣条是什么意思| 文曲星下凡是什么意思| 68年属猴是什么命| 寻常疣是什么| 晨尿有泡沫是什么原因| 月经病是什么意思啊| 邓超什么星座的| 百度Перейти до вм?сту

延迟退休方案今年推出 不同岗位绝不“一刀切”

Матер?ал з В?к?пед?? — в?льно? енциклопед??.
百度   “社会主义制度是中华人民共和国的根本制度。

Transmission Control Protocol, TCP (укр. Протокол управл?ння передачею) — разом ?з протоколом IP ? стрижневим протоколом ?нтернету, який дав назву модел? TCP/IP. Протокол призначений для керування передаванням даних у комп'ютерних мережах, працю? на транспортному р?вн? модел? OSI.[1]

На в?дм?ну в?д ?ншого поширеного протоколу транспортного р?вня UDP, TCP забезпечу? над?йне доправляння даних в?д хоста-в?дправника до хоста-отримувача, для цього встановлю?ться лог?чний зв'язок м?ж хостами.[2] Таким чином TCP належить до класу протокол?в з? встановленим з'?днанням[en].

?нкапсуляц?я TCP в мережев?й модел? OSI

TCP отриму? потоки даних в?д протокол?в верхн?х р?вн?в OSI-модел?, початковим джерелом яких ? протоколи прикладного р?вня, так? як HTTP, FTP та ?нш?. Кожний протокол верхнього р?вня ма? св?й визначений TCP-порт.

TCP розбива? конкретний пот?к даних на порц??, та дода? до кожно? з них заголовок з номером посл?довност?. Отриман? таким чином порц?? даних традиц?йно називаються TCP-сегментами.[3] Дал? кожний сегмент ?нкапсулю?ться в IP-пакет ? переда?ться через IP-протокол до хоста-отримувача.

П?сля надходження IP-пакету до хоста-отримувача перев?ря?ться коректн?сть отриманих даних у TCP-сегмент?, методом перерахування контрольно? суми, та перекону?ться, що попередн? сегменти даних також були усп?шно отриман?. П?сля чого хост-отримувач надсила? запит до хоста-в?дправника про нову, або повторне передавання порц?? даних, що одночасно ? п?дтвердженням того, що вс? сегменти з номерами посл?довност?, меншими н?ж номер нового запиту, були усп?шно отриман?.

У свою чергу TCP-сегменти де?нкапсулюються з IP-пакет?в, розм?щуються в правильному порядку та з них вилучаються TCP-заголовки. Отриманий таким чином пот?к даних переда?ться до того протоколу верхнього р?вня, з якого перв?сно над?йшли дан? на сторон? хоста-в?дправника.

?стор?я створення

[ред. | ред. код]

П?онером у розробц? сучасних комп'ютерних мереж вважа?ться Агентство передових оборонних досл?дницьких проект?в США, (DARPA, Defense Advanced Research Projects Agency) з? сво?ю розробкою - мережею ARPANET запущеною у 1969 роц?.[4]

Появою протоколу вважають 1974 р?к, коли ?нститут ?нженер?в з електротехн?ки та електрон?ки опубл?кував роботу ?Протокол для пакетно? мережево? комун?кац?? (A Protocol for Packet Network Intercommunication)?, авторами яко? були В?нтон Серф та Роберт Елл?от Кан.[5] У ц?й прац? TCP було абрев?атурою в?д Transmission Control Program (програма керування передаванням).

TCP-сегмент

[ред. | ред. код]

Блок даних (PDU[en], Protocol data unit) TCP назива?ться сегментом,[6] хоча часто також використовують слово пакет, але таке вживання може вносити плутанину з IP-пакетом.

TCP-сегмент склада?ться ?з TCP-заголовка ? поля Дан? (Data), яке називають сегментом даних або пейлодом[7] або SDU[en][8].

Стандартний розм?р TCP-заголовка — 20 байт, але з використанням опц?й розм?р може зростати до 60 байт. Як правило, опц?ями хости обм?нюються на етап? встановлення з'?днання.

Розм?р сегменту даних (поля даних) визнача?ться опц??ю MSS (Максимальний розм?р сегменту, Maximum segment size) на етап? встановлення з'?днання. Якщо обм?ну опц?ями не в?дбулося, то розм?р сегменту даних встановлю?ться за замовчуванням 536 байт.[9] Розм?р сегменту даних т?сно пов'язаний з MTU (Максимальний розм?р блоку пересилання). Фактично MSS дор?вню? MTU з в?дн?манням розм?ру IP- ? TCP-заголовк?в. Наприклад у сучасн?й мереж? Ethernet MTU дор?вню? 1500 байт; тод? оптимальний розм?р MSS буде 1460 байт?в (1500 м?нус 20 байт заголовка IP ? 20 байт заголовка TCP).

Формат TCP сегменту
Октет (Байт) 0 1 2 3
Б?т  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Порт джерела (Source port) Порт призначення (Destination port)
4 32 Номер посл?довност? (Sequence number)
8 64 Номер п?дтвердження (Acknowledgment number)
12 96 Зм?щення даних (Data offset) Зарезервовано (Reserved)
0 0 0
N
S
C
W
R
E
C
E
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Розм?р в?кна (Window Size)
16 128 Контрольна сума (Checksum) Показник важливост? (Urgent pointer)
20

56
160
...
448
Опц?? (Options) необов'язкове, розм?р залежно в?д значення поля ?Зм?щення даних?
20+
160+
Дан? (Data)

Поля заголовка

[ред. | ред. код]

Порт джерела

[ред. | ред. код]
  • 0 — 15 б?ти. Порт джерела (Source port) ?дентиф?ку? номер TCP-порту, з якого в?дправля?ться сегмент.

Порт призначення

[ред. | ред. код]
  • 16 — 31 б?ти. Порт призначення (Destination port) ?дентиф?ку? номер TCP-порту, на який в?дправля?ться сегмент.

Див. також список номер?в TCP- та UDP-порт?в.

Номер посл?довност?

[ред. | ред. код]
  • 32 — 63 б?ти. Номер посл?довност? (Sequence number) ? числом, що в?добража? номер першого байту в сегмент? над?сланих даних в?д хоста-в?дправника до хоста-отримувача. Це число ? акумулювальним, тобто поточний номер посл?довност? ? сумою номера посл?довност? попереднього сегменту ? к?лькост? даних (в байтах) в?дправлених у ньому. Використову?ться для в?дстежування к?лькост? та правильно? посл?довност? отриманих сегмент?в даних.[10]

Номер п?дтвердження

[ред. | ред. код]
  • 64 — 95 б?ти. Номер п?дтвердження (Acknowledgment number) фактично ? запитом в?д хоста отримувача на над?слання нового сегменту даних починаючи з? вказаного номера. З ?ншого боку, коли хост в?дправник отриму? це пов?домлення, в?н перекону?ться, що вс? сегменти даних з номерами посл?довност? меншими за номер п?дтвердження були усп?шно прийнят? отримувачем.

Зм?щення даних

[ред. | ред. код]
  • 96 — 99 б?ти. Зм?щення даних[2] (Data offset) 4-б?тний номер, який визнача? розм?р TCP-заголовка в 32-б?тових словах. М?н?мальний розм?р становить 5 (0101) сл?в, а максимальний — 15 (1111), що ? в?дпов?дно 20 ? 60 байт. Фактично визнача? розм?р поля Опц?? (Options) в?д 0 до 40 байт.

Зарезервовано

[ред. | ред. код]
  • 100—102 б?ти, зарезервован? для майбутнього використання ? повинн? м?стити нул? (000).

Прапорц? (керуюч? б?ти)

[ред. | ред. код]

Це поле м?стить б?тов? прапорц?, з яких ш?сть основних описан? в RFC 793[11] з 106 по 111 б?т, два прапорц? додан? до заголовка в RFC 3168, розм?щуються в 104 ? 105 б?тах заголовка, в 103 б?т? знаходиться експериментальний прапорець зг?дно з RFC 3540. Прапорц? вважа?ться встановленими, якщо ?х б?тове значення ? 1.

  • 103 NS — Одноразова сума (Nonce Sum), використову?ться з метою покращення роботи механ?зму явного пов?домлення про перевантаження (Explicit Congestion Notification, ECN).
  • 104 CWR — В?кно перевантаження зменшено (Congestion Window Reduced), прапорець встановлю?ться, щоб показати що TCP-сегмент був отриманий з? встановленим полем ECE, ?ншими словами це ? п?дтвердженням отримання сегменту даних з прапорцем ECE в?д хоста партнера.
  • 105 ECE — ECN-Ехо (ECN-Echo), поле показу?, що в?дправник п?дтриму? ECN.

Основн?:

  • 106 URG — Важлив?сть (Urgent), вказу?, що TCP-сегмент м?стить важлив? дан?. Коли до хоста-отримувача надходить сегмент з? встановленим прапорцем URG, TCP в?дправля? важлив? дан? з цього сегменту, як? знаходяться завдяки полю покажчик важливост? до в?дпов?дного протоколу верхнього р?вня минаючи чергу ? без перев?рки усп?шност? надходження попередн?х сегмент?в.[12]
  • 107 ACK — П?дтвердження (Acknowledge) усп?шност? отримання TCP-сегменту
  • 108 PSH — Просування (Push), також як ? прапорець URG, вказу?, на пр?оритетн?сть TCP-сегменту. Хост-в?дправник позачергово надсила? цей сегмент даних через IP-мережу. За аналог??ю з прапорцем URG, PSH ?нструкту? хост-отримувач, що сегмент даних ма? бути негайно переданий до прикладного р?вня (к?нцевого споживача даних).
  • 109 RST — Обривання (Reset) вказу?, хосту-отримувачу негайно скинути з'?днання без подальшо? вза?мод??. Така ситуац?я наступа? у раз?, якщо сервер (хост-в?дправник) не нада? послуги визначеного серв?су. Наприклад кл??нт (хост-отримувач) запросив у вебсерверa послуги у формат? протоколу HTTPS (TCP-порт 443), але вебсервер нада? послуги лише у формат? HTTP (TCP-порт 80). Ця властив?сть TCP часто використову?ться хакерами для сканування порт?в мереж? жертви.
  • 110 SYN — Синхрон?зац?я (Synchronize) використову?ться для встановлення з'?днання м?ж хостами при так званому триходовому рукостисканн?[en]
  • 111 FIN — Ф?н?ш (Finish) вказу? на завершення з'?днання.

Розм?р в?кна

[ред. | ред. код]
  • 112—127 б?ти. Розм?р в?кна (англ. Window Size) визнача? к?льк?сть байт?в даних, як? в?дправник може над?слати до того, як отрима? п?дтвердження (запит на новий сегмент) в?д хоста-отримувача[13] На практиц? це означа?, що хост-в?дправник може надсилати певну к?льк?сть сегмент?в даних без отримання п?дтвердження в?д хоста-отримувача. Розм?р в?кна TCP вирахову? на основ? максимально? пропускно? здатност? (англ. bandwidth) л?н?? зв'язку м?ж хостами (фактично це ? пропускна здатн?сть в?др?зка шляху з ?? найг?ршим значенням) та загальн?й затримц? (часу потр?бному на доставку сегмента) на всьому шляху.

Контрольна сума

[ред. | ред. код]

Показник важливост?

[ред. | ред. код]
  • 144—159 б?ти. Покажчик важливост?[2] (Urgent pointer). Поле береться до уваги т?льки в раз? встановленого прапорця URG, та м?стить значення зм?щення в?дносно номера посл?довност? сегменту. Фактично це число вказу? на позиц?ю в TCP-сегмент? де зак?нчуються важлив? дан?.[14] Тобто важлив? дан? знаходяться одразу п?сля TCP-заголовка ? зак?нчуються перед м?сцем на яке вказу? покажчик важливост?.
  • 160—479 б?ти. Опц?? (Options) необов'язкове поле, розм?р якого визнача?ться в залежност? в?д значення поля зм?щення даних та ? кратним 8 (одному байту). Кожна опц?я в свою чергу склада?ться з 3-х пол?в: Номер (kind)[15] — 1 байт, Довжина (length, вказу? на загальний розм?р опц?? в байтах) — 1 байт, Дан? (data) в залежност? в?д поля довжина. Опц?? використову?ться для обм?ну додаткових параметр?в м?ж хостами з метою покращення функц?онування протоколу TCP. Част?ше за все це поле включа? наступн? опц??[16]:
  • MSS (Максимальний розм?р сегменту, Maximum segment size), RFC 793, номер — 2, довжина — 4.[17] Опц?я максимальний розм?р сегменту визнача? максимальний розм?р поля Дан? в TCP-сегмент? тобто к?льк?сть даних як? можуть бути пом?щен? в один сегмент при ?х передаванн? м?ж хостами.
  • Масштабування в?кна (Window scale), RFC 7323, номер — 3, довжина — 3,[18] слугу? для зб?льшення значення TCP-в?кна, максимальне значення ц??? опц?? ? 14. Новий розм?р TCP-в?кна вирахову?ться по формул?: розм?р в?кна * 2n, де n ? значення опц?? масштабування в?кна. Стандартний максимальний розм?р в?кна в?добража?ться 16-ти б?товим числом, тобто може мати максимальне значення — 65535 (64 Кб), використовуючи опц?ю масштабування в?кна з максимально допустимим значенням 14, отриму?мо 65535 * 214 = 65535 * 16384 = 1073725440 (1 Гб). Велик? значення TCP-в?кна використовуються коли на шляху пакет?в ?з TCP-сегментами зустр?чаються WAN-л?нки з? значними максимальними пропускними здатностями (bandwidth) та великими затримками (latency).
  • Виб?рков? п?дтвердження (Selective Acknowledgments, SACK), RFC 2018, номер — 2, довжина — в?д 4 байт — верхня межа вар?ю?ться,[19] як правило м?стить у соб? два 2-х байтних поля даних. Мета ?? введення ? покращення ефективност? роботи TCP, як в?домо TCP для передавання сегмент?в даних використову? протокол IP, який ? протоколом без встановлення з'?днання[en], тобто доправлення пакет?в з TCP-сегментами не ? гарантованим, допуска?ться, що частина IP-пакет?в може бути втрачена. В свою чергу TCP забезпечу? над?йне доправляння даних, що базу?ться на механ?зм? надсилання номер?в п?дтвердження (acknowledgment number). Якщо якийсь сегмент в?д в?дправника до отримувача не над?йшов у встановлений час то ?н?ц?ю?ться повторне передавання починаючи з? втраченого сегменту, нав?ть якщо TCP-сегменти з номерами посл?довност? б?льшими за номер втраченого сегменту були усп?шно отриман?. Механ?зм виб?ркового п?дтвердження дозволя? ретранслювати лише втрачен? сегменти даних, чим сутт?во покращу? ефективн?сть роботи TCP.
  • М?тки часу (Timestamps), RFC 7323, номер — 8, довжина — 10,[20] м?стить у соб? два 4-х байтних поля Значення м?тки часу (Timestamp Value) та Ехо-в?дпов?дь м?тки часу (Timestamp Echo Reply).[21] Як правило хости обм?нюються значеннями м?ток часу на етап? встановлення з'?днання. За допомогою м?ток часу TCP визнача? ск?льки потр?бно часу на доправлення сегмент?в м?ж хостами. На основ? цих значень встановлюються TCP-таймери в?дпов?дальн? на сторон? хоста-в?дправника за повторне передавання даних, якщо п?дтвердження отримання не над?йшло у встановлений час, а у раз? використання опц?? виб?ркового п?дтвердження хост-отримувач самост?йно ?н?ц?ю? запит на повторне пересилання конкретного сегменту даних.

Якщо деякий прост?р поля Опц?? лиша?ться незаповненим то в?н заповню?ться спец?альною опц??ю NOP (No-Operation, н?чого не робити), RFC 793, номер — 1, довжина — в?дсутня.[22]

TCP-порти

[ред. | ред. код]

Поняття порт (port) ? ключовим у протокол? TCP. Порт з точки зору операц?йних систем назива?ться сокетом (socket) процесу. ?ншими словами це програмний ?нтерфейс для забезпечення обм?ну даними м?ж процесами.

Для розум?ння поняття порту з точки зору комп'ютерних мереж легко провести аналог?ю з роботою звичайно? пошти. Коли ви в?дправля?те листа, то заповню?те поля Куди: адреса будинку ? Кому: людина, яка прожива? у цьому будинку. У мереж? ?нтернет на питання Куди: в?дпов?да? IP-протокол, тобто це ? IP-адреса хоста, а на питання Кому: в?дпов?да? TCP-протокол (або ?нший протокол транспортного р?вня), тобто це номер протоколу прикладного р?вня (процес, що в?дпов?да? за цей протокол з точки зору операц?йно? системи), який ?мешка?? за вказаною IP-адресою хоста. За аналог??ю з? звичайною поштою ви можете направити 2-а листа 2-м р?зним людям, як? живуть в одному будинку, в ?нтернет? ви можете направити TCP-сегменти 2-м р?зним протоколам прикладного р?вня за одн??ю ? т??ю ж самою IP-адресою. Звичайно треба заповнити ? зворотню адресу.

В ?нтернет? широко вжива?ться форма запису : ip-адреса: порт.

Команда netstat -n може показати наступне:

192.168.1.31:54132     198.35.26.96:443
192.168.1.31:54138     198.35.26.96:22

Тобто якийсь хост з локально? мереж? (використову? приватну IP-адресу) ма? одночасно з'?днання з сервером в глобальн?й мереж? ?нтернет з ip-адресою 198.35.26.96 [Арх?вовано 18 вересня 2016 у Wayback Machine.] по портам 443 (протокол HTTPS) та 22 (протокол SSH).

За надання ? використання порт?в в?дпов?дальна IANA[23], хоча на практиц? на в?дм?ну в?д використання IP-адрес це правило не завжди дотриму?ться. Наприклад н?чого не заважа? адм?н?страторам 2-х хост?в домовитися передавати, якийсь тип IP-траф?ку по порту 80, який ? закр?плений за протоколом http ? ? в?дкритим на б?льшост? файрвол?в.

TCP-заголовок ма? 16-б?тов? поля порт джерела та порт призначення, як? можуть приймати значення в?д 0 до 65535.

Порти под?ляються на категор??:

  • Загальнов?дом? (well-known), д?апазон номер?в 0 — 1023.[24] Як правило це порти, як? використовують протоколи прикладного р?вня TCP/IP стеку затверджен? IETF, зг?дно з принципами в?дкритого стандарту. Наприклад: HTTP порт ?80, HTTPS — 443, SMTP — 25, Telnet — 23, SSH — 22.
  • Заре?строван? (registered), д?апазон номер?в 1024 — 49151. За задумом, ц? порти призначаються для протокол?в р?зних виробник?в програмного забезпечення, як? мають ?х заре?струвати в IANA. Наприклад ?гровий серв?с Xbox Live використову? заре?стрований порт 3074.[25] На практиц? багато порт?в у цьому д?апазон? використовуються без оф?ц?йно? ре?страц??.
  • Динам?чн? (приватн?, ефемерн?, dynamic, private, ephemeral), д?апазон номер?в 49152-65535. IANA не ре?стру? ц? порти. Використовуються, як правило хостами-кл??нтами, для встановлення TCP-з'?днань з хостами-серверами. Як у приклад? вище, коли кл??нт з IP-адресою 192.168.1.31 встановив 2 з'?днання з? сервером 198.35.26.96, на сторон? кл??нта використовуються динам?чн? порти 54132 та 54138, а на сторон? сервера загальнов?дом? порти 443 (протокол HTTPS) та 22 (протокол SSH).

TCP-сес?я

[ред. | ред. код]
Д?аграма стан?в TCP-сес??

Завданням протоколу, як виплива? з його назви (?протокол керування пересиланням?), ? контроль над?йного передавання даних м?ж хостами, для забезпечення цього м?ж хостами встановлю?ться лог?чне з'?днання[en], яке зветься TCP-сес??ю.[26] Протокол TCP працю? у формат? арх?тектури кл??нт-сервер. Хост який надсила? запит на отримання серв?су ? кл??нтом, той хто в?дпов?да? на запит зветься сервером. Хости зв'язуються один з одним за TCP-портами, на сторон? кл??нта це, як правило, динам?чний порт, а на сторон? сервера це загальнов?домий або заре?стрований порт, номер якого в?дпов?да? протоколу прикладного р?вня. Номери порт?в та значення ?нших параметр?в заносяться до заголовка TCP-сегменту.

Тут п?д терм?ном сервер (server) розум?ють комп'ютер п?д управл?нням операц?йно? системи, який ма? доступ до IP-мереж? та нада? послуги одного чи дек?лькох серв?с?в прикладного р?вня. В свою чергу на сервер?-комп'ютер? встановлен? спец?альн? сервер-програми, як? забезпечують роботу протокол?в прикладного р?вня. Таким чином, якщо це вебсервер, то на ньому мусить бути встановлена одна ?з таких програм, як наприклад: Apache HTTP Server. На практиц? сервер-комп'ютер нада? послуги в?дзразу дек?лькох серв?с?в, тобто на ньому може бути встановлено б?льше одн??? сервер-програми, що забезпечують роботу дек?лькох протокол?в прикладного р?вня. Наприклад сервер-комп'ютер може бути одночасно вебсервером ? FTP-сервером та забезпечувати роботу протокол?в HTTP, HTTPS та FTP.

Важливо розум?ти, що протягом TCP-сес?? дан? надсилаються в обох напрямках, як в?д сервера до кл??нта так ? в?д кл??нта до сервера, тобто створюються два потоки даних. Причому не завжди б?льший пот?к даних пряму? в?д сервера до кл??нта.

Кожна окрема сес?я роботи протоколу ТСР може бути под?лена на три фази:

  1. Встановлення з'?днання
  2. Передавання даних
  3. Зак?нчення з'?днання

Встановлення з'?днання

[ред. | ред. код]
Триходове рукостискання

Необх?дною умовою для встановлення ТСР-сес?? ? в?дкритий доступ до програмного сокету процесу на сервер?, що в?дпов?да? за роботу протоколу прикладного р?вня, який мовою ТСР зветься портом. За тако? умови стан ТСР-сес?? на сторон? сервера ? LISTEN (слухати).[27] Тобто сервер слуха?, якийсь конкретний TCP-порт ? оч?ку? отримати запит в?д кл??нта на надання послуг, що в?дпов?дають номеру цього порту. Початковий стан ТСР-сес?? на сторон? кл??нта ? CLOSED.

Для встановлення з'?днання протокол TCP використову? триходове (рукостискання[en]), назване так за к?льк?стю пов?домлень м?ж хостами:

  1. Кл??нт форму? TCP-заголовок: у поле порт джерела заносить св?й номер TCP-порта, як правило динам?чний, у поле порт призначення номер порту протоколу прикладного р?вня, послуги якого хоче отримати, в поле номер посл?довност? сегменту дов?льне значення та встановлю? прапорець SYN. Сформований таким чином TCP-сегмент в?дправля?ться серверу. ТСР-сес?я на сторон? кл??нта переходить у стан SYN-SENT.
  2. Сервер отриму? ТСР-сегмент в?д кл??нта з? встановленим прапорцем SYN та у в?дпов?дь форму? TCP-заголовок: у поле порт джерела заносить св?й номер TCP-порта, у поле порт призначення номер порту кл??нта. Дода? до отриманого в?д кл??нта номера посл?довност? сегменту 1 ? пом?ща? отримане число до номеру п?дтвердження, вносить св?й власний початковий номер посл?довност? сегменту та в?дправля? сегмент до кл??нта з прапорцями SYN та ACK. ТСР-сес?я на сторон? сервера переходить у стан SYN-RECEIVED.
  3. П?сля отримання ТСР-сегмента з? встановленими прапорцями ACK та SYN кл??нт переходить у стан ESTABLISHED та в?дпов?да? на запит сервера про синхрон?зац?ю шляхом додавання 1 до номера отримано? посл?довност? сегменту та пом?ща? це число до номера п?дтвердження. Дал? кл??нт надсила? таким чином сформований сегмент до сервера з прапорцем ACK

П?сля отримання сервером ТСР-сегмента з прапорцем ACK стан ТСР-сес?? на його сторон? ста? також ESTABLISHED, разом з чим розпочина?ться передавання даних.

Також на етап? встановлення з'?днання м?ж хостами, як правило в?дбува?ться обм?н опц?ями, тобто TCP-параметрами, як? впливають на ефективн?сть передавання даних.

Зак?нчення з'?днання

[ред. | ред. код]
Зак?нчення TCP сес??

?н?ц?атором зак?нчення з'?днання може бути, як кл??нт так ? сервер.[28] Для зак?нчення TCP-сес?? використову?ться так зване чотириходове рукостискання (four-way handshake).

  1. ?н?ц?атор роз?рвання з'?днання направля? сво?му партнеру TCP-сегмент з? встановленим прапорцем FIN. TCP-сес?я ?н?ц?атора переходить з? стану ESTABLISHED у стан FIN-WAIT-1
  2. Хост-отримувач прийма? FIN в?д ?н?ц?атора та посила? у в?дпов?дь TCP-сегмент з? встановленим прапорцем АСК. TCP-сес?я отримувача переходить з? стану ESTABLISHED у стан CLOSE-WAIT. З набуттям хостом цього стану TCP припиня? отримувати нов? запити, на передавання даних, в?д в?дпов?дного протоколу верхнього р?вня та встановлю? таймер на завершення попередн?х запит?в. ?н?ц?атор отриму? АСК та переходить у стан FIN-WAIT-2.
  3. П?сля зак?нчення оброблення вс?х запит?в протокол?в верхнього р?вня хост-отримувач переходить у стан LAST-ACK та в?дправля? ?н?ц?атору TCP-сегмент з? встановленим прапорцем FIN.
  4. ?н?ц?атор прийма? FIN в?д отримувача та посила? у в?дпов?дь TCP-сегмент з? встановленим прапорцем АСК. Отримувач прийма? АСК та переходить у стан CLOSED.

?н?ц?атор роз?рвання з'?днання чека? протягом подв?йного часу в?д MSL[en] (максимального життя сегмента, maximum segment lifetime), щоб переконатися, що посланий ACK був отриманий та також переходить у стан CLOSED.

Посилання

[ред. | ред. код]

Л?тература

[ред. | ред. код]
  • Douglas E. Comer. Internetworking with TCP/IP, Vol. 1: Principles, Protocols and Architecture
  • Дуглас Камер. Сети TCP/IP, том 1. Принципы, протоколы и структура. М. ?Вильямс? 2003, ISBN 0-13-018380-6,

Прим?тки

[ред. | ред. код]
  1. TCP/IP Overview — Cisco. Арх?в ориг?налу за 23 жовтня 2015. Процитовано 30 жовтня 2015.
  2. а б в Лекц?я № 10. Протокол транспортного р?вня. Арх?в ориг?налу за 11 вересня 2016. Процитовано 30 жовтня 2015.
  3. IP Application Services Configuration Guide, Cisco IOS XE Release 3S — Configuring TCP [Cisco IOS XE 3S] — Cisco. Арх?в ориг?налу за 29 жовтня 2015. Процитовано 23 жовтня 2015.
  4. What is ARPANET? The First Internet. Арх?в ориг?налу за 27 жовтня 2018. Процитовано 26 лютого 2016.
  5. apf — Vinton G. Cerf, Robert E. Kahn, (May 1974). ?A Protocol for Packet Network Intercommunication? (PDF). IEEE Transactions on Communications 22 (5): 637—648. doi:10.1109/tcom.1974.1092259 (PDF). Арх?в ориг?налу (PDF) за 23 липня 2015. Процитовано 23 липня 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  6. CCENT: Cisco Certified Entry Networking Technician Study Guide: ICND1 (Exam … — Todd Lammle — Google Books. Арх?в ориг?налу за 23 листопада 2015. Процитовано 22 листопада 2015.
  7. Checking your TCP Packets are pulling their weight (TCP Max Segment Size or MSS) — On The Wire — Site Home — TechNet Blogs. Арх?в ориг?налу за 22 грудня 2015. Процитовано 18 грудня 2015.
  8. F2R001A TCP. Арх?в ориг?налу за 22 грудня 2015. Процитовано 18 грудня 2015.
  9. The TCP/IP Guide — TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size. Арх?в ориг?налу за 20 жовтня 2020. Процитовано 17 грудня 2015.
  10. Understanding TCP Sequence and Acknowledgment Numbers — PacketLife.net. Арх?в ориг?налу за 26 жовтня 2015. Процитовано 19 жовтня 2015.
  11. Security Configuration Guide: Access Control Lists, Cisco IOS Release 15E — Creating an IP Access List to Filter TCP Flags [Cisco IOS 15.2E] — Cisco. Арх?в ориг?налу за 16 жовтня 2015. Процитовано 21 жовтня 2015.
  12. TCP Flag Options — Section 4. Арх?в ориг?налу за 8 листопада 2015. Процитовано 7 листопада 2015.
  13. TCP, Transmission Control Protocol. Арх?в ориг?налу за 14 листопада 2015. Процитовано 5 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  14. TCP Window Size, Checksum & Urgent Pointer — Section 5. Арх?в ориг?налу за 10 листопада 2015. Процитовано 7 листопада 2015.
  15. Transmission Control Protocol (TCP) Parameters. Арх?в ориг?налу за 9 листопада 2015. Процитовано 17 листопада 2015.
  16. Analysing TCP Header Options — Section 6. Арх?в ориг?налу за 17 листопада 2015. Процитовано 12 листопада 2015.
  17. TCP option 2, Maximum Segment Size. Арх?в ориг?налу за 24 березня 2016. Процитовано 17 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  18. TCP option 3, Window Scale. Арх?в ориг?налу за 27 листопада 2015. Процитовано 17 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  19. TCP option 5, Selective Acknowledgment. Арх?в ориг?налу за 4 березня 2016. Процитовано 17 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  20. TCP option 8, Timestamp. Арх?в ориг?налу за 9 листопада 2015. Процитовано 16 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  21. TCP option 8, Timestamp. Арх?в ориг?налу за 9 листопада 2015. Процитовано 16 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  22. TCP option 1, No operation. Арх?в ориг?налу за 4 березня 2016. Процитовано 18 листопада 2015. [Арх?вовано 2025-08-06 у Wayback Machine.]
  23. Service Name and Transport Protocol Port Number Registry. The Internet Assigned Numbers Authority (IANA). Арх?в ориг?налу за 28 грудня 2017. Процитовано 9 листопада 2015.
  24. RFC 6335 — Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Transport Protocol Port Number and Service Name Registry. Арх?в ориг?налу за 7 кв?тня 2019. Процитовано 10 листопада 2015.
  25. Xbox 360 Network Ports and Router Configurations for Xbox Live. Арх?в ориг?налу за 12 листопада 2015. Процитовано 10 листопада 2015.
  26. IP Application Services Configuration Guide, Cisco IOS XE Release 3S — Configuring TCP [Cisco IOS XE 3S] — Cisco. Арх?в ориг?налу за 29 жовтня 2015. Процитовано 23 жовтня 2015.
  27. The TCP/IP Guide — TCP Connection Establishment Process: The ?Three-Way Handshake?. Арх?в ориг?налу за 20 листопада 2015. Процитовано 19 листопада 2015.
  28. The TCP/IP Guide — TCP Connection Termination. Арх?в ориг?налу за 6 грудня 2015. Процитовано 22 грудня 2015.


催丹香是什么意思 人为什么做梦 十月是什么星座 儿童口臭什么原因引起的 什么水果可以美白
生日可以送什么礼物 体检挂什么科 人体乳头瘤病毒是什么 人得猫癣用什么药 子宫脱垂什么症状
为什么汤泡饭对胃不好 生僻字是什么意思 呼吸衰竭是什么意思 早搏什么意思 小雪时节吃什么
农历7月20日是什么星座 春捂秋冻指的是什么意思 扪是什么意思 pac是什么 桑葚酒有什么功效
tf口红属于什么档次hcv9jop4ns0r.cn 小叶增生吃什么药好hcv8jop9ns4r.cn 咩是什么意思hcv7jop5ns6r.cn 宝宝囟门什么时候闭合hcv8jop5ns9r.cn 飞行模式是什么意思hcv7jop7ns2r.cn
奶奶的妹妹叫什么beikeqingting.com 被跳蚤咬了涂什么药膏hcv8jop3ns6r.cn 一条什么hcv8jop4ns1r.cn 硬发质适合什么发型hcv9jop5ns5r.cn 6月20是什么星座hebeidezhi.com
尿妊娠试验是检查什么hcv7jop4ns7r.cn 肚子疼吃什么hcv7jop9ns7r.cn cop是什么luyiluode.com 4月29号是什么星座hkuteam.com 放电是什么意思hcv9jop3ns0r.cn
脸上发痒是什么原因hcv8jop1ns1r.cn 皮肤黑适合穿什么颜色的衣服hcv8jop9ns1r.cn 自身免疫性肝病是什么意思hcv8jop2ns6r.cn 盗墓笔记讲的是什么故事hcv7jop5ns3r.cn 正月初二是什么星座的hcv9jop1ns9r.cn
百度