博客專欄

        EEPW首頁 > 博客 > 串口服務(wù)器四問四答

        串口服務(wù)器四問四答

        發(fā)布人:szutek 時間:2023-05-09 來源:工程師 發(fā)布文章

        問:什么是ACK?

        答:ACK的全稱為Acknowledge character,即確認(rèn)字符,表示接收到的字符無錯誤。

        接收站對所收到的報(bào)文進(jìn)行檢查,若未發(fā)現(xiàn)錯誤,便向發(fā)送站發(fā)出確認(rèn)回答ACK,表明信息已被正確接收,并準(zhǔn)備好接收下一份報(bào)文。該控制字符可由中心結(jié)點(diǎn)發(fā)送,也可由遠(yuǎn)地結(jié)點(diǎn)發(fā)送。如果發(fā)送方?jīng)]有收到信號,那么發(fā)送方可能會重發(fā)當(dāng)前的數(shù)據(jù)包,也可能停止傳送數(shù)據(jù),具體情況取決于所采用的網(wǎng)絡(luò)協(xié)議。

        TCP報(bào)文格式中的控制位由6個標(biāo)志位構(gòu)成,其中一個就是ACK,ACK為1表示確認(rèn)號有效,為0表示報(bào)文中不包含確認(rèn)信息,忽略確認(rèn)號字段。

        問:什么是三次握手?

        答:第一次握手:建立連接時,客戶端發(fā)送syn包(seq=j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn);SYN:同步序列編號(Synchronize Sequence Numbers)。

        第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(seq=k),即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài)。

        第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。

        完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù)。

        問:為什么需要三次握手?

        答:1、為了防止舊的重復(fù)連接從而引起連接混亂的問題。

        在網(wǎng)絡(luò)狀況比較復(fù)雜或者網(wǎng)絡(luò)狀況比較差的情況下,發(fā)送方可能會連續(xù)發(fā)送多次建立連接的請求。如果 TCP 握手的次數(shù)只有兩次,那么接收方只能選擇接受請求或者拒絕接受請求,但它并不清楚這次的請求是正常的請求,還是由于網(wǎng)絡(luò)環(huán)境問題而導(dǎo)致的過期請求,如果是過期請求的話就會造成錯誤的連接。

        2、同步初始化序列化。

        TCP 為了保證在不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中構(gòu)建一個穩(wěn)定的數(shù)據(jù)連接,它就需要一個“序列號”字段來保證自己的穩(wěn)定性,而這個序列號的作用就是防止數(shù)據(jù)包重復(fù)發(fā)送,以及有效的解決數(shù)據(jù)包接收時順序顛倒的問題。

        問:什么是TCP通信?

        答:傳輸控制協(xié)議(TCP,Transmission Control Protocol)是為了在不可靠的互聯(lián)網(wǎng)絡(luò)上提供可靠的端到端字節(jié)流而專門設(shè)計(jì)的一個傳輸協(xié)議。

        因?yàn)榛ヂ?lián)網(wǎng)絡(luò)的不同部分可能有截然不同的拓?fù)浣Y(jié)構(gòu)、帶寬、延遲、數(shù)據(jù)包大小和其他參數(shù)。TCP的設(shè)計(jì)目標(biāo)是能夠動態(tài)地適應(yīng)互聯(lián)網(wǎng)絡(luò)的這些特性,而且具備面對各種故障時的健壯性。

        應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)摹⒂?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分區(qū)成適當(dāng)長度的報(bào)文段(通常受該計(jì)算機(jī)連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳輸單元(MTU)的限制)。之后TCP把結(jié)果包傳給IP層,由它來通過網(wǎng)絡(luò)將包傳送給接收端實(shí)體的TCP層。TCP為了保證不發(fā)生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實(shí)體的包的按序接收。然后接收端實(shí)體對已成功收到的包發(fā)回一個相應(yīng)的確認(rèn)(ACK);如果發(fā)送端實(shí)體在合理的往返時延(RTT)內(nèi)未收到確認(rèn),那么對應(yīng)的數(shù)據(jù)包就被假設(shè)為已丟失將會被進(jìn)行重傳。TCP用一個校驗(yàn)和函數(shù)來檢驗(yàn)數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計(jì)算校驗(yàn)和。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: 串口服務(wù)器

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 荣昌县| 称多县| 苏州市| 齐河县| 南京市| 斗六市| 綦江县| 共和县| 大丰市| 崇阳县| 桑植县| 清新县| 乐昌市| 江津市| 平乐县| 齐河县| 和龙市| 多伦县| 博客| 金塔县| 宜宾县| 桂阳县| 调兵山市| 乡城县| 含山县| 科尔| 开平市| 井陉县| 绵阳市| 平定县| 临清市| 毕节市| 襄垣县| 方城县| 固原市| 丰台区| 姜堰市| 安阳市| 淮阳县| 郴州市| 茂名市|