TCP/IP详解 笔记十三
TCP協(xié)議(一) 概述
?
特點(diǎn)
1,? 面向連接可靠的字節(jié)流服務(wù)
2,? 只有兩方通信,不能用于廣播或多播
3,? 應(yīng)用數(shù)據(jù)被TCP分隔為最合適發(fā)送的數(shù)據(jù)段,傳給IP協(xié)議棧
4,? 發(fā)送端并啟動(dòng)定時(shí)器,超時(shí)重傳
5,? 接收端需要發(fā)送確認(rèn)
6,? 檢驗(yàn)和錯(cuò)誤的數(shù)據(jù)包將被丟棄,并不確認(rèn)收到此數(shù)據(jù)包(希望超時(shí)重傳)
7,? 重新排序,因?yàn)門CP數(shù)據(jù)包是IP報(bào)文的數(shù)據(jù),而ip協(xié)議不保證數(shù)據(jù)按順序到達(dá),所以需要重新排序。
8,? 同理,ip包會(huì)發(fā)生重復(fù),所以TCP需要排重。
9,? 流控制,TCP的每一方有固定大小的緩沖空間,接收端只允許發(fā)送端發(fā)送能容納的數(shù)據(jù)。
10, 提供全雙工服務(wù)。
?
字節(jié)流服務(wù)
?
TCP報(bào)文結(jié)構(gòu)
?
字段解釋:
插口對(duì):IP頭部的ip+tcp頭部的端口唯一確定一個(gè)應(yīng)用程序,而相對(duì)的插口稱為插口對(duì)唯一確定tcp雙方。
序號(hào):標(biāo)識(shí)發(fā)端向收端發(fā)送的數(shù)據(jù)字節(jié)流,表示這個(gè)報(bào)文中的第一個(gè)數(shù)據(jù)字節(jié)。序號(hào)對(duì)每個(gè)字節(jié)計(jì)數(shù),序號(hào)為32bit無符號(hào)數(shù)據(jù),到達(dá)232-1 回到0
SYN:當(dāng)建立一個(gè)新的連接的時(shí)候SYN變?yōu)?,此時(shí)序號(hào)字段包含主機(jī)選擇的初始序號(hào)ISN(Initial Squence Number),該主機(jī)發(fā)送的第一個(gè)字節(jié)序號(hào)為ISN+1。
確認(rèn)序號(hào):等于上次已經(jīng)成功收到的字節(jié)序號(hào)加1,只有ACK標(biāo)識(shí)為1時(shí)確認(rèn)序號(hào)才有效。連接一旦建立確認(rèn)序號(hào)總是被設(shè)置。
因?yàn)門CP提供全雙工的服務(wù),所以連接的每一方必須保存?zhèn)鬏敂?shù)據(jù)序號(hào)。
TCP可以表述為一個(gè)沒有選擇確認(rèn)和否認(rèn)的滑動(dòng)窗口協(xié)議,收到數(shù)據(jù)包后不能確定或否定該數(shù)據(jù)包的對(duì)與錯(cuò),而只是回復(fù)相應(yīng)的確認(rèn)序號(hào)。
首部長度:給出首部32bit字的數(shù)目,為4bit所以,首部長度最長為60字節(jié),不加選項(xiàng)為20字節(jié)。存在這個(gè)字段的原因是選項(xiàng)長度是可變的。
標(biāo)識(shí)位:
?
滑動(dòng)窗口大小:TCP的流量控制由連接雙方聲明窗口大小提供,窗口大小的單位為字節(jié),起始于確認(rèn)序號(hào)指定的值,窗口大小字段為16bit,所以窗口最大為65535字節(jié)。
校驗(yàn)和:覆蓋首部和數(shù)據(jù),強(qiáng)制性字段,由發(fā)端計(jì)算和存儲(chǔ),由接收端校驗(yàn)。
緊急指針:當(dāng)URG為1時(shí)才有效,是一個(gè)正的偏移量,和序號(hào)相加表示緊急數(shù)據(jù)最后一個(gè)字節(jié)的序號(hào)。
選項(xiàng):最常見的選項(xiàng)是最大報(bào)文大小MSS(Maximum Segment Size).
?
轉(zhuǎn)載于:https://www.cnblogs.com/manziluo/p/5862882.html
總結(jié)
以上是生活随笔為你收集整理的TCP/IP详解 笔记十三的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 团建(四)
- 下一篇: sql server 调用webserv
