日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 玩轉(zhuǎn)嵌入式
[導(dǎo)讀]CSDN TCP/IP不是一個(gè)協(xié)議,而是一個(gè)協(xié)議族的統(tǒng)稱。里面包括IP協(xié)議、IMCP協(xié)議、TCP協(xié)議。本文總結(jié)了幾個(gè)需要注意的知識(shí)點(diǎn)。

素材來(lái)源:CSDN
TCP/IP不是一個(gè)協(xié)議,而是一個(gè)協(xié)議族的統(tǒng)稱。里面包括IP協(xié)議、IMCP協(xié)議、TCP協(xié)議。
這里有幾個(gè)需要注意的知識(shí)點(diǎn):
  • 互聯(lián)網(wǎng)地址:也就是IP地址,一般為網(wǎng)絡(luò)號(hào)+子網(wǎng)號(hào)+主機(jī)號(hào)
  • 域名系統(tǒng):通俗的來(lái)說(shuō),就是一個(gè)數(shù)據(jù)庫(kù),可以將主機(jī)名轉(zhuǎn)換成IP地址
  • RFC:TCP/IP協(xié)議的標(biāo)準(zhǔn)文檔
  • 端口號(hào):一個(gè)邏輯號(hào)碼,IP包所帶有的標(biāo)記
  • Socket:應(yīng)用編程接口
數(shù)據(jù)鏈路層的工作特性:
  • 為IP模塊發(fā)送和接收IP數(shù)據(jù)報(bào)
  • 為ARP模塊發(fā)送ARP請(qǐng)求和接收ARP應(yīng)答(ARP:地址解析協(xié)議,將IP地址轉(zhuǎn)換成MAC地址)
  • 為RARP發(fā)送RARP請(qǐng)求和接收RARP應(yīng)答
接下來(lái)我們了解一下TCP/IP的工作流程:
數(shù)據(jù)鏈路層從ARP得到數(shù)據(jù)的傳遞信息,再?gòu)腎P得到具體的數(shù)據(jù)信息

IP協(xié)議

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取
IP協(xié)議頭當(dāng)中,最重要的就是TTL(IP允許通過(guò)的最大網(wǎng)段數(shù)量)字段(八位),規(guī)定該數(shù)據(jù)包能穿過(guò)幾個(gè)路由之后才會(huì)被拋棄。

IP路由選擇

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取

ARP協(xié)議工作原理

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取

ICMP協(xié)議(網(wǎng)絡(luò)控制文協(xié)議)
將IP數(shù)據(jù)包不能傳送的錯(cuò)誤信息傳送給主機(jī)
查詢報(bào)文
  1. ping查詢:主機(jī)是否可達(dá),通過(guò)計(jì)算間隔時(shí)間和傳送多少個(gè)包的數(shù)量
  2. 子網(wǎng)掩碼
  3. 時(shí)間戳:獲得當(dāng)前時(shí)間
差錯(cuò)報(bào)文
不產(chǎn)生的情況:
  1. ICMP差錯(cuò)報(bào)文不產(chǎn)生差錯(cuò)報(bào)文
  2. 源地址為零地址、環(huán)目地址、廣播地址、多播地址

IP路由器選擇協(xié)議
靜態(tài)路由選擇

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取

靜態(tài)路由選擇
  1. 配置接口以默認(rèn)方式生成路由表項(xiàng),或者使用route add手動(dòng)添加表項(xiàng)
  2. ICMP報(bào)文(ICMP重定向報(bào)文)更新表項(xiàng)
  3. 動(dòng)態(tài)路由選擇(只使用在路由之間)


RIP(路由信息協(xié)議)
分布式的基于距離向量(路由器到每一個(gè)目的網(wǎng)絡(luò)的距離記錄)的路由選擇協(xié)議
router承擔(dān)的工作:
  1. 給每一個(gè)已知路由器發(fā)送RIP請(qǐng)求報(bào)文,要求給出完整的路由表
  2. 如果接受請(qǐng)求,就將自己的路由表交給請(qǐng)求者;如果沒有,就處理IP請(qǐng)求表項(xiàng)(自己部分+跳數(shù)/沒有的部分+16)
  3. 接受回應(yīng),更新路由表
  4. 定期更新路由表(一般為30s,只能說(shuō)太頻繁~)


OSPF(開放最短路徑優(yōu)先協(xié)議)
分布式鏈路狀態(tài)(和這兩個(gè)路由器都有接口的網(wǎng)絡(luò))協(xié)議
  1. 當(dāng)鏈路狀態(tài)發(fā)生變化時(shí),采用可靠的洪泛法,向所有的路由器發(fā)送信息(相鄰的所有路由器的鏈路狀態(tài))
  2. 最終會(huì)建立一個(gè)全網(wǎng)的拓?fù)浣Y(jié)構(gòu)圖

TCP/IP的三次握手,四次分手
首先我們先來(lái)了解TCP報(bào)文段

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取
重要的標(biāo)志我在圖中也有標(biāo)記,重點(diǎn)了解標(biāo)志位
ACK:確認(rèn)序號(hào)有效
RST:重置連接
SYN:發(fā)起了一個(gè)新連接
FIN:釋放一個(gè)連接

三次握手的過(guò)程(客戶端我們用A表示,服務(wù)器端用B表示)
前提:A主動(dòng)打開,B被動(dòng)打開

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取
  1. 在建立連接之前,B先創(chuàng)建TCB(傳輸控制塊),準(zhǔn)備接受客戶進(jìn)程的連接請(qǐng)求,處于LISTEN(監(jiān)聽)狀態(tài)
  2. A首先創(chuàng)建TCB,然后向B發(fā)出連接請(qǐng)求,SYN置1,同時(shí)選擇初始序號(hào)seq=x,進(jìn)入SYN-SEND(同步已發(fā)送)狀態(tài)
  3. B收到連接請(qǐng)求后向A發(fā)送確認(rèn),SYN置1,ACK置1,同時(shí)產(chǎn)生一個(gè)確認(rèn)序號(hào)ack=x+1。同時(shí)隨機(jī)選擇初始序號(hào)seq=y,進(jìn)入SYN-RCVD(同步收到)狀態(tài)
  4. A收到確認(rèn)連接請(qǐng)求后,ACK置1,確認(rèn)號(hào)ack=y+1,seq=x+1,進(jìn)入到ESTABLISHED(已建立連接)狀態(tài)。向B發(fā)出確認(rèn)連接,最后B也進(jìn)入到ESTABLISHED(已建立連接)狀態(tài)。
簡(jiǎn)單來(lái)說(shuō),就是
  1. 建立連接時(shí),客戶端發(fā)送SYN包(SYN=i)到服務(wù)器,并進(jìn)入到SYN-SEND狀態(tài),等待服務(wù)器確認(rèn)
  2. 服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ack=i+1),同時(shí)自己也發(fā)送一個(gè)SYN包(SYN=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN-RECV狀態(tài)
  3. 客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)報(bào)ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手
在此穿插一個(gè)知識(shí)點(diǎn)就是SYN攻擊,那么什么是SYN攻擊?發(fā)生的條件是什么?怎么避免?
在三次握手過(guò)程中,Server發(fā)送SYN-ACK之后,收到Client的ACK之前的TCP連接稱為半連接(half-open connect),此時(shí)Server處于SYN_RCVD狀態(tài),當(dāng)收到ACK后,Server轉(zhuǎn)入ESTABLISHED狀態(tài)。SYN攻擊就是 Client在短時(shí)間內(nèi)偽造大量不存在的IP地址,并向Server不斷地發(fā)送SYN包,Server回復(fù)確認(rèn)包,并等待Client的確認(rèn),由于源地址 是不存在的,因此,Server需要不斷重發(fā)直至超時(shí),這些偽造的SYN包將產(chǎn)時(shí)間占用未連接隊(duì)列,導(dǎo)致正常的SYN請(qǐng)求因?yàn)殛?duì)列滿而被丟棄,從而引起網(wǎng) 絡(luò)堵塞甚至系統(tǒng)癱瘓。SYN攻擊時(shí)一種典型的DDOS攻擊,檢測(cè)SYN攻擊的方式非常簡(jiǎn)單,即當(dāng)Server上有大量半連接狀態(tài)且源IP地址是隨機(jī)的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現(xiàn)行:
#netstat -nap | grep SYN_RECV


四次分手的過(guò)程(客戶端我們用A表示,服務(wù)器端用B表示)
由于TCP連接時(shí)是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。這一原則是當(dāng)一方完成數(shù)據(jù)發(fā)送任務(wù)后,發(fā)送一個(gè)FIN來(lái)終止這一方向的鏈接。收到一個(gè)FIN只是意味著這一方向上沒有數(shù)據(jù)流動(dòng),既不會(huì)在收到數(shù)據(jù),但是在這個(gè)TCP連接上仍然能夠發(fā)送數(shù)據(jù),知道這一方向也發(fā)送了FIN,首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方則執(zhí)行被動(dòng)關(guān)閉。
前提:A主動(dòng)關(guān)閉,B被動(dòng)關(guān)閉

更多C/C++學(xué)習(xí)資料,請(qǐng)私信我“代碼”,即可獲取
有人可能會(huì)問(wèn),為什么連接的時(shí)候是三次握手,而斷開連接的時(shí)候需要四次揮手?
這是因?yàn)榉?wù)端在LISTEN狀態(tài)下,收到建立連接請(qǐng)求的SYN報(bào)文后,把ACK和SYN放在一個(gè)報(bào)文里發(fā)送給客戶端。而關(guān)閉連接時(shí),當(dāng)收到對(duì)方的FIN 報(bào)文時(shí),僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù),己方也未必全部數(shù)據(jù)都發(fā)送給對(duì)方了,所以己方可以立即close,也可以發(fā)送一些數(shù)據(jù)給對(duì)方后,再 發(fā)送FIN報(bào)文給對(duì)方來(lái)表示同意現(xiàn)在關(guān)閉連接,因此,己方ACK和FIN一般都會(huì)分開發(fā)送。
  1. A發(fā)送一個(gè)FIN,用來(lái)關(guān)閉A到B的數(shù)據(jù)傳送,A進(jìn)入FIN_WAIT_1狀態(tài)。
  2. B收到FIN后,發(fā)送一個(gè)ACK給A,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN相同,一個(gè)FIN占用一個(gè)序號(hào)),B進(jìn)入CLOSE_WAIT狀態(tài)。
  3. B發(fā)送一個(gè)FIN,用來(lái)關(guān)閉B到A的數(shù)據(jù)傳送,B進(jìn)入LAST_ACK狀態(tài)。
  4. A收到FIN后,A進(jìn)入TIME_WAIT狀態(tài),接著發(fā)送一個(gè)ACK給B,確認(rèn)序號(hào)為收到序號(hào)+1,B進(jìn)入CLOSED狀態(tài),完成四次揮手。
簡(jiǎn)單來(lái)說(shuō)就是
  1. 客戶端A發(fā)送一個(gè)FIN,用來(lái)關(guān)閉客戶A到服務(wù)器B的數(shù)據(jù)傳送(報(bào)文段4)。
  2. 服務(wù)器B收到這個(gè)FIN,它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1(報(bào)文段5)。和SYN一樣,一個(gè)FIN將占用一個(gè)序號(hào)。
  3. 服務(wù)器B關(guān)閉與客戶端A的連接,發(fā)送一個(gè)FIN給客戶端A(報(bào)文段6)。
  4. 客戶端A發(fā)回ACK報(bào)文確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1(報(bào)文段7)。
A在進(jìn)入到TIME-WAIT狀態(tài)后,并不會(huì)馬上釋放TCP,必須經(jīng)過(guò)時(shí)間等待計(jì)時(shí)器設(shè)置的時(shí)間2MSL(最長(zhǎng)報(bào)文段壽命),A才進(jìn)入到CLOSED狀態(tài)。為什么?
  1. 為了保證A發(fā)送的最后一個(gè)ACK報(bào)文段能夠到達(dá)B
  2. 防止“已失效的連接請(qǐng)求報(bào)文段”出現(xiàn)在本連接中
OK~是不是很難懂的感覺?那我們來(lái)說(shuō)的“人性化點(diǎn)的”吧


三次握手流程
  1. 客戶端發(fā)個(gè)請(qǐng)求“開門吶,我要進(jìn)來(lái)”給服務(wù)器
  2. 服務(wù)器發(fā)個(gè)“進(jìn)來(lái)吧,我去給你開門”給客戶端
  3. 客戶端有很客氣的發(fā)個(gè)“謝謝,我要進(jìn)來(lái)了”給服務(wù)器
四次揮手流程
  1. 客戶端發(fā)個(gè)“時(shí)間不早了,我要走了”給服務(wù)器,等服務(wù)器起身送他
  2. 服務(wù)器聽到了,發(fā)個(gè)“我知道了,那我送你出門吧”給客戶端,等客戶端走
  3. 服務(wù)器把門關(guān)上后,發(fā)個(gè)“我關(guān)門了”給客戶端,然后等客戶端走(尼瑪~矯情?。?/span>
  4. 客戶端發(fā)個(gè)“我知道了,我走了”,之后自己就走了
OK,先到這吧

精彩推薦:

【1】 編過(guò)SPI的程序嗎?時(shí)鐘相位和時(shí)鐘極性是什么? 【2】I2C操作筆記-以 AT24C04為例 【3】RS485是硬件接口,那么他是怎么實(shí)現(xiàn)數(shù)據(jù)通訊的呢?Modbus-RTU協(xié)議解析
【4】 主流協(xié)議族TCP/IP協(xié)議,對(duì)此你了解多少

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

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

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

關(guān)鍵字: 驅(qū)動(dòng)電源

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

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

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

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

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

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

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

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

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

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

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

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

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

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

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

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

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

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉