亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3265 | 回復(fù): 13
打印 上一主題 下一主題

[C++] tcp可靠性的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-23 06:20:00每日論壇發(fā)貼之星
日期:2015-12-23 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-07-03 10:55 |只看該作者 |倒序?yàn)g覽
本帖最后由 alwaysR9 于 2015-07-03 10:55 編輯

unix socket編程,采用tcp協(xié)議

我的問(wèn)題是:
假設(shè)客戶端寫入socket的數(shù)據(jù)是1024B,服務(wù)器采用select等待讀事件,
會(huì)不會(huì)出現(xiàn)先到達(dá)服務(wù)器的一部分?jǐn)?shù)據(jù)進(jìn)入socket的等待讀取隊(duì)列,并將select喚.醒的情況;
還是tcp協(xié)議可以保證只有全部數(shù)據(jù)都到達(dá)服務(wù)器端,才將數(shù)據(jù)放入socket的等待讀取隊(duì)列,并喚.醒select

希望大家能從原理上給出解釋

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
2 [報(bào)告]
發(fā)表于 2015-07-03 11:07 |只看該作者
TCP是流,所以是前者

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀(jì)念章
日期:2016-04-23 00:51:2315-16賽季CBA聯(lián)賽之山東
日期:2016-04-17 12:00:2815-16賽季CBA聯(lián)賽之福建
日期:2016-04-12 15:21:2915-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-24 21:38:2715-16賽季CBA聯(lián)賽之福建
日期:2016-03-18 12:13:4015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-05 00:55:2015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-04 21:11:3615-16賽季CBA聯(lián)賽之天津
日期:2016-11-02 00:33:1215-16賽季CBA聯(lián)賽之浙江
日期:2017-01-13 01:31:49
3 [報(bào)告]
發(fā)表于 2015-07-03 11:44 |只看該作者
TCP的“可靠性”指的是:
1、連接故障在一個(gè)特定的時(shí)間范圍內(nèi)一定能被雙方感知
2、在連接無(wú)故障的前提下,傳輸數(shù)據(jù)不會(huì)錯(cuò)亂。
3、傳輸數(shù)據(jù)如果出現(xiàn)錯(cuò)亂,能被接受方發(fā)現(xiàn)。(理論上說(shuō)可能出現(xiàn)發(fā)現(xiàn)不了的數(shù)據(jù)錯(cuò)亂,但這個(gè)概率一般可以忽略)

你自己體會(huì)一下應(yīng)該是哪種情況。

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-23 06:20:00每日論壇發(fā)貼之星
日期:2015-12-23 06:20:00
4 [報(bào)告]
發(fā)表于 2015-07-03 11:52 |只看該作者
回復(fù) 2# hellioncu

也就是說(shuō),操作系統(tǒng)(或者協(xié)議)會(huì)把接收到的數(shù)據(jù)直接放入對(duì)應(yīng)的socket中?

這樣是不是只能從socket中讀出一部分?jǐn)?shù)據(jù)?

底層過(guò)程還是不太明白,能仔細(xì)講一下嗎,或者看什么書或材料能幫助我弄清底層的過(guò)程?
   

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2015-07-03 13:03 |只看該作者
我記得**select的觸發(fā)方式有兩種吧:邊緣觸發(fā),水平觸發(fā)。不同的觸發(fā)方式,使用不同的策略來(lái)保證讀取數(shù)據(jù)的完整性。

論壇徽章:
1
射手座
日期:2014-08-04 16:49:43
6 [報(bào)告]
發(fā)表于 2015-07-03 16:21 |只看該作者
ET LT 是epoll的概念吧,,, select 只是輪詢查看fd 有沒(méi)有數(shù)據(jù)來(lái)而已, TCP能保證送到對(duì)端緩沖區(qū)是完整的,而select 讀取的是緩沖區(qū)數(shù)據(jù),這時(shí)候如果恰巧有一半的數(shù)據(jù)來(lái) 那就讀取出一半的數(shù)據(jù),再select 還會(huì)發(fā)現(xiàn)有可讀數(shù)據(jù)  還能讀出剩余的數(shù)據(jù)。

  這種情況多發(fā)生在 單次發(fā)送大于MTU并且快速再次發(fā)送的情況。  

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-23 06:20:00每日論壇發(fā)貼之星
日期:2015-12-23 06:20:00
7 [報(bào)告]
發(fā)表于 2015-07-03 18:32 |只看該作者
hanzhenlll 發(fā)表于 2015-07-03 16:21
ET LT 是epoll的概念吧,,, select 只是輪詢查看fd 有沒(méi)有數(shù)據(jù)來(lái)而已, TCP能保證送到對(duì)端緩沖區(qū)是完整的,而 ...


也就是說(shuō),tcp協(xié)議可以保證發(fā)送數(shù)據(jù)的完整性,但有可能一部分?jǐn)?shù)據(jù)先到達(dá)對(duì)端,并觸發(fā)對(duì)端的“讀事件”,其余數(shù)據(jù)到達(dá)對(duì)端再次觸發(fā)“讀事件”。
如果這樣,接收端有時(shí)候是不是需要為每一個(gè)socket分配一個(gè)緩沖,把socket中的數(shù)據(jù)讀到緩沖,當(dāng)緩沖包含完整數(shù)據(jù)才處理,緩沖中的數(shù)據(jù)不完整暫不處理

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-23 06:20:00每日論壇發(fā)貼之星
日期:2015-12-23 06:20:00
8 [報(bào)告]
發(fā)表于 2015-07-04 00:01 |只看該作者
如 hellioncu 和  hanzhenlll 所說(shuō),我寫了個(gè)程序驗(yàn)證了一下,確實(shí)如此。

服務(wù)器端用epoll等待事件,服務(wù)器端的socket用非阻塞式的;
客戶端發(fā)送一個(gè)很長(zhǎng)的文本。

確實(shí)一部分?jǐn)?shù)據(jù)先到達(dá)服務(wù)器并**了epoll,剩下的數(shù)據(jù)到達(dá)服務(wù)器再次**epoll。
感謝樓上的各位

論壇徽章:
4
丑牛
日期:2014-01-11 15:11:12亥豬
日期:2014-12-15 22:19:092015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯之約旦
日期:2015-03-13 19:45:11
9 [報(bào)告]
發(fā)表于 2015-07-05 16:12 |只看該作者
第一種吧,網(wǎng)絡(luò)中的數(shù)據(jù)包在內(nèi)核中是skb形式來(lái)傳遞的,當(dāng)接收端收到后skb后會(huì)放在接收隊(duì)列,貌似沒(méi)有接收到全部數(shù)據(jù)才放到接收隊(duì)列。
用select 的話,貌似是從fd可以讀取東西就會(huì)**。

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-23 06:20:00每日論壇發(fā)貼之星
日期:2015-12-23 06:20:00
10 [報(bào)告]
發(fā)表于 2015-07-05 16:46 |只看該作者
回復(fù) 9# 魔鬼的驚嘆


   謝謝,是不是內(nèi)核接收到的數(shù)據(jù)直接放進(jìn)對(duì)應(yīng)socket的接收隊(duì)列里,中間沒(méi)有緩沖?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP