日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP/IP这本书讲TCP是从哪些方面保证可靠性的?

發(fā)布時(shí)間:2025/7/25 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP/IP这本书讲TCP是从哪些方面保证可靠性的? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

把書讀薄(TCP/IP詳解 卷一 第十七章)

TCP協(xié)議長什么樣?

  • 1位表示1bit,除去任選字段(選項(xiàng)和數(shù)據(jù))共160bit也就是20字節(jié)
  • 源端口號和目的端口號用于尋找發(fā)端和接收端【源端口+源IP地址+目的端口+目的IP地址唯一確定一個(gè)TCP連接】
  • 序號用來標(biāo)識從TCP發(fā)送端向接收端發(fā)送的數(shù)據(jù)字節(jié)流,他是32bit的無符號數(shù),到達(dá)2的32次方-1后又從0開始
  • 確認(rèn)序號是上次已成功收到數(shù)據(jù)字節(jié)序號加1【只有ack標(biāo)識是1時(shí),他才有效】
  • 首部長度標(biāo)識TCP包首部實(shí)際長度,它的單位是32bit【假如數(shù)字是6,那么表示頭部實(shí)際長度是 4字節(jié)6=24字節(jié),由于首部長度只有4bit,最大數(shù)為15,因而最多有1532bit=480bit=60字節(jié)】
  • URG置為1表示緊急指針有效
  • ACK置為1表示確認(rèn)序號有效
  • PSH置為1表示接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層
  • RST置1表示重建連接
  • SYN置1用來發(fā)起連接
  • FIN置1表示發(fā)端完成發(fā)送任務(wù)
  • 窗口大小是TCP用來做流量控制
  • 校驗(yàn)和覆蓋TCP的首部和TCP數(shù)據(jù),它一定由發(fā)端計(jì)算存儲,收端驗(yàn)證
  • 緊急指針是一個(gè)正偏移量,和序號字段中的值相加表示緊急數(shù)據(jù)最后一個(gè)字段的序號
  • 常見可選字段如MSS(Maximim Segment Size 最長報(bào)文大小),用來標(biāo)識本端能接收的最大長度的報(bào)文段

真實(shí)tcp報(bào)文怎么看?

以下報(bào)文為TCP建立和終止的報(bào)文示例

完整格式如下:

報(bào)文序號 報(bào)文產(chǎn)生時(shí)間(與上次報(bào)文的時(shí)間間隔) 源地址.端口號 > 目的地址 : 標(biāo)識 分組序號:確認(rèn)序號(報(bào)文段中字節(jié)數(shù)) 窗口大小 接收的最大報(bào)文長度
  • svr4.1037 > bsdi.discard 表示源地址的某個(gè)端口到目的地址
  • S是SYN標(biāo)志,表示發(fā)起連接 ;F是FIN標(biāo)志,表示發(fā)送端發(fā)送完數(shù)據(jù);. 表示(SIN,FIN,RST,PSH)這四個(gè)標(biāo)識都是0
  • 1415531521:1415531521(0) 表示分組的序號是1415531521,報(bào)文段中的數(shù)據(jù)字節(jié)數(shù)為0
  • ack后跟著的數(shù)字串是確認(rèn)序號,它只有首部標(biāo)識置為1才有用
  • win 4096表示窗口大小
  • <mss 1024>表示發(fā)送端能接收的最大報(bào)文長度

默認(rèn)情況下tcpdump輸出只顯示SYN報(bào)文段的完整序號,其它位置顯示偏移量

tcpdump怎么用?

常用參數(shù)解析

-X :用16進(jìn)制顯示具體內(nèi)容 -n:顯示IP,不轉(zhuǎn)換域名 -s 0:盡可能多的展示內(nèi)容 -vvv: 展示詳細(xì)內(nèi)容 -i eth1:監(jiān)聽eth1網(wǎng)絡(luò) tcp :監(jiān)聽協(xié)議類型 dst port 8500:8500端口接收的數(shù)據(jù) -A:acsii顯示內(nèi)容</pre>

抓取當(dāng)前機(jī)器上的post請求

sudo tcpdump -i eth1 -X -vvv -n -s 0 'tcp dst port 8080 and tcp[(tcp[12]>>2):4] = 0x504f5354'

比如我想獲取post請求的原始IP可以用

sudo tcpdump -i eth1 -A -vvv -n -s 0 'tcp dst port 8080 and tcp[(tcp[12]>>2):4] = 0x504f5354' | grep 'X-Forwarded-For'

抓取當(dāng)前機(jī)器上的get請求

sudo tcpdump -i eth1 -X -vvv -n -s 0 'tcp dst port 8080 and tcp[(tcp[12]>>2):4] = 0x47455420' 上面用到的tcp中括號相關(guān)內(nèi)容是指tcp過濾,字節(jié)范圍表達(dá): proto [ expr : size ] photo表示協(xié)議 expr 表示與指定協(xié)議開頭相關(guān)的字節(jié)偏移量;如只查看fin包 tcpdump -i < interface > “tcp[tcpflags] & (tcp-fin) !=0”

TCP協(xié)議從那些方面保證可靠性的?

  • 應(yīng)用數(shù)據(jù)被分割成TCP認(rèn)為最適合發(fā)送的數(shù)據(jù)塊
  • 發(fā)送一個(gè)報(bào)文段(TCP傳遞給IP信息的單位)后啟動(dòng)定時(shí)器,如果無法及時(shí)收到確認(rèn),重發(fā)報(bào)文
  • 收到報(bào)文后,推遲幾分之一秒發(fā)送確認(rèn)
  • 提供首部和校驗(yàn)和,校驗(yàn)和出錯(cuò)不確認(rèn)收到此報(bào)文,引發(fā)重發(fā)
  • 必要情況TCP會(huì)對收到的數(shù)據(jù)重排序,將正確的順序交給應(yīng)用層
  • 接收端會(huì)丟棄重復(fù)的數(shù)據(jù)
  • 本身能做流量控制

總結(jié)

以上是生活随笔為你收集整理的TCP/IP这本书讲TCP是从哪些方面保证可靠性的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。