女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式教程

(1)TCB

TCP模塊中有一個TCB(傳輸控制模塊,Transmit Control Block),它用于記錄TCP協(xié)議運行過程中的 變量。對于有多個連接的TCP,每個連接都有一個TCB,這里只有一個。TCB結(jié)構(gòu)的定義包括這個連接使用 的源端口、目的端口、目的IP、序號、應答序號、對方窗口大小、己方窗口大小、TCP狀態(tài)、TOP輸入/輸出隊列、應用層輸出隊列、TCP的重傳有關變量。

(2)rap狀態(tài)轉(zhuǎn)化(狀態(tài):能夠?qū)ζ洚a(chǎn)生影響的事件)

在特定的rap狀態(tài)下,相應的事件觸發(fā)相應的動作和相應的狀態(tài)轉(zhuǎn)化。狀態(tài)轉(zhuǎn)化如下:

(3)接收流程

TCPIn()進程是主接收流程。TCPIn進程查看TOP輸入隊列中是否有元素,有則提取并從隊列中刪除。 然后看校驗和是否正確,再看端口是否正確,調(diào)用TCPPortOK函數(shù)。TCPPortOK函數(shù),首先看是否為SYN包 ,對這種包都不加以拒絕,否則要求不在closed和listen狀態(tài),并且源目的端口和目的IP地址要正確才 接收。

接著調(diào)用TCPExpectedPacket來看收到的這個包的序號是否是自己想要的序號,復雜的TCP協(xié)議只要序號 落在窗口范圍內(nèi)就接收,這里為了簡便只允許接收特定序號的包。如果以上的檢測都通過,則說明是一 個所希望的包。用新接收的包調(diào)用TCPReceiveRenew函數(shù)來更新TCB的值,TCPReceiveRenew函數(shù)主要用來 更新應答序號、釋放重發(fā)隊列中被應答的元素(以后說明),以及事件處理和狀態(tài)轉(zhuǎn)化。在

處理中,有些狀態(tài)要判斷是否是對方發(fā)來的第一個包,如果是則要Initial ack,即初始化AckSequence ,對于Establish狀態(tài)還要判斷是否發(fā)送應答包。

接下來,如果這個包中含有數(shù)據(jù)則調(diào)用TCPOnReceive,用戶在這個函數(shù)中處理接收。TCPIn函數(shù)在最后 無論如何要釋放這個包。

(4)發(fā)送流程

TCPOut是發(fā)送主進程。首先它檢測是否有TOP包要重發(fā)(以后說明),然后要求rap不處于closed, listen,synrecvd,synsent狀態(tài),這些狀態(tài)不能發(fā)送數(shù)據(jù)。接著看重傳隊列是否很滿,再看應用層輸出 隊列中是否有元素,有則用TCPSendPacket發(fā)送此包。

TCPSendPacket函數(shù)負責發(fā)送一個TOP包。它首先判斷page是否合法,因為很多地方使用TCPSendPacket (TCPAllocateWithoutData(),TCP_ACK);的形式,所以可能TCPAllocateWithoutData沒能分配到內(nèi)存 ;page非法則退出,這里的非法退出可能導致協(xié)議失敗,但是在內(nèi)存夠用的情況下不會發(fā)生。然后將包 寫入重傳隊列,填寫TCP頭;接著更新Sequence,填寫IP頭的目的IP,再寫入TCP輸出隊列。

(5)定時重發(fā)

符合條件if(DataSize!=0|| (TCPFlag& (TOP_SYN丨TOP_FIN))!=0)的TCP需要重發(fā)。重發(fā)思路 如下:

將所有發(fā)送的數(shù)據(jù)包都寫入重發(fā)隊列QueueRetransmit,其中包括需要重發(fā)的和不需要重發(fā)的TCP包,并 將TCP包的序號寫入SequenceOfRetransmit,將是否需要重發(fā)標志寫入FlagOfRetransmit。如圖1所示, 圖中第二個序號為2100、3003的包是不需要重發(fā)的。


 圖1 定時重傳隊列

(6)窗口大小選擇

本地窗口固定為TCP_SOURCE_WINDOWS,這是為了避免TCP復雜的窗口算法。這里選擇窗口大小一般比較 小。TCP只接收一個包,給予應答后才能接收另一個包,而一般的TCP都是一次發(fā)送多個的,如果對方發(fā) 來多個,這里只好拋棄,最好是對方不會一次發(fā)送多個。如果將窗口大小設得很小,則對方認為內(nèi)存小 ,只連續(xù)發(fā)一個或很少。

(7)如果給對方的應答包丟失

比如發(fā)一個應答,希望對方發(fā)來序號為1000的包,但是這個包丟失,對方將不斷地重發(fā)上一個包(例 如序號為900的包),則不斷拋棄這個包(只接收一個指定序號為1000的包),協(xié)議出錯。

(8)應用層分包

應用層定義的包和接收情況如圖2所示


 圖2 應用層定義的包和接收

陰影部分表示新接收到的數(shù)據(jù),即buff~buff+size內(nèi)存區(qū)的內(nèi)容。它是第1個包的末尾和第2個包的開 始。這就是說一次接收的不一定是一個完整的包,但是有時需要接收到一個完整的包時才能處理這個包 。這就是應用層分包問題,做法如下。

從包的type字段可以知道這個類型的包大小為PacketTypeToSize(type),所以應該接

收PacketTypeToSize(type)以后再處理這個包。接收完PacketTypeToSize(type)個字節(jié)以后,下一 個一定是下一個包的type字段,然后又可以從PacketTypeToSize(typo)得到需要接收的字節(jié)數(shù)。

歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)()



ks99

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉