衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCP/IP協議的工作流程

GReq_mcu168 ? 來源:CSDN博客 ? 作者:溫柔狠角色 ? 2021-11-19 14:11 ? 次閱讀

TCP/IP協議

TCP/IP不是一個協議,而是一個協議族的統稱。里面包括IP協議、IMCP協議、TCP協議。

這里有幾個需要注意的知識點:

互聯網地址:也就是IP地址,一般為網絡號+子網號+主機號

域名系統:通俗的來說,就是一個數據庫,可以將主機名轉換成IP地址

RFC:TCP/IP協議的標準文檔

端口號:一個邏輯號碼,IP包所帶有的標記

Socket:應用編程接口

數據鏈路層的工作特性:

為IP模塊發送和接收IP數據報

為ARP模塊發送ARP請求和接收ARP應答(ARP:地址解析協議,將IP地址轉換成MAC地址)

為RARP發送RARP請求和接收RARP應答

接下來我們了解一下TCP/IP的工作流程:

數據鏈路層從ARP得到數據的傳遞信息,再從IP得到具體的數據信息

IP協議

IP協議頭當中,最重要的就是TTL(IP允許通過的最大網段數量)字段(八位),規定該數據包能穿過幾個路由之后才會被拋棄。

ARP協議工作原理

a6dcd3ae-41f7-11ec-b939-dac502259ad0.jpg

ICMP協議(網絡控制文協議)

將IP數據包不能傳送的錯誤信息傳送給主機

查詢報文

ping查詢:主機是否可達,通過計算間隔時間和傳送多少個包的數量

子網掩碼

時間戳:獲得當前時間

差錯報文

不產生的情況:

ICMP差錯報文不產生差錯報文

源地址為零地址、環目地址、廣播地址、多播地址

IP路由器選擇協議

靜態路由選擇

a75243b4-41f7-11ec-b939-dac502259ad0.jpg

靜態路由選擇

配置接口以默認方式生成路由表項,或者使用route add手動添加表項

ICMP報文(ICMP重定向報文)更新表項

動態路由選擇(只使用在路由之間)

RIP(路由信息協議)

分布式的基于距離向量(路由器到每一個目的網絡的距離記錄)的路由選擇協議

router承擔的工作:

給每一個已知路由器發送RIP請求報文,要求給出完整的路由表

如果接受請求,就將自己的路由表交給請求者;如果沒有,就處理IP請求表項(自己部分+跳數/沒有的部分+16)

接受回應,更新路由表

定期更新路由表(一般為30s,只能說太頻繁~)

OSPF(開放最短路徑優先協議)

分布式鏈路狀態(和這兩個路由器都有接口的網絡)協議

當鏈路狀態發生變化時,采用可靠的洪泛法,向所有的路由器發送信息(相鄰的所有路由器的鏈路狀態)

最終會建立一個全網的拓撲結構圖

TCP/IP的三次握手,四次分手

首先我們先來了解TCP報文段

重要的標志我在圖中也有標記,重點了解標志位

ACK:確認序號有效

RST:重置連接

SYN:發起了一個新連接

FIN:釋放一個連接

三次握手的過程(客戶端我們用A表示,服務器端用B表示)

前提:A主動打開,B被動打開

在建立連接之前,B先創建TCB(傳輸控制塊),準備接受客戶進程的連接請求,處于LISTEN(監聽)狀態

A首先創建TCB,然后向B發出連接請求,SYN置1,同時選擇初始序號seq=x,進入SYN-SEND(同步已發送)狀態

B收到連接請求后向A發送確認,SYN置1,ACK置1,同時產生一個確認序號ack=x+1。同時隨機選擇初始序號seq=y,進入SYN-RCVD(同步收到)狀態

A收到確認連接請求后,ACK置1,確認號ack=y+1,seq=x+1,進入到ESTABLISHED(已建立連接)狀態。向B發出確認連接,最后B也進入到ESTABLISHED(已建立連接)狀態。

簡單來說,就是

建立連接時,客戶端發送SYN包(SYN=i)到服務器,并進入到SYN-SEND狀態,等待服務器確認

服務器收到SYN包,必須確認客戶的SYN(ack=i+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器進入SYN-RECV狀態

客戶端收到服務器的SYN+ACK包,向服務器發送確認報ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手

在此穿插一個知識點就是SYN攻擊,那么什么是SYN攻擊?發生的條件是什么?怎么避免?

在三次握手過程中,Server發送SYN-ACK之后,收到Client的ACK之前的TCP連接稱為半連接(half-open connect),此時Server處于SYN_RCVD狀態,當收到ACK后,Server轉入ESTABLISHED狀態。SYN攻擊就是 Client在短時間內偽造大量不存在的IP地址,并向Server不斷地發送SYN包,Server回復確認包,并等待Client的確認,由于源地址 是不存在的,因此,Server需要不斷重發直至超時,這些偽造的SYN包將產時間占用未連接隊列,導致正常的SYN請求因為隊列滿而被丟棄,從而引起網 絡堵塞甚至系統癱瘓。SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現行:

#netstat -nap | grep SYN_RECV

四次分手的過程(客戶端我們用A表示,服務器端用B表示)

由于TCP連接時是全雙工的,因此每個方向都必須單獨進行關閉。這一原則是當一方完成數據發送任務后,發送一個FIN來終止這一方向的鏈接。收到一個FIN只是意味著這一方向上沒有數據流動,既不會在收到數據,但是在這個TCP連接上仍然能夠發送數據,知道這一方向也發送了FIN,首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉。

前提:A主動關閉,B被動關閉

有人可能會問,為什么連接的時候是三次握手,而斷開連接的時候需要四次揮手?

這是因為服務端在LISTEN狀態下,收到建立連接請求的SYN報文后,把ACK和SYN放在一個報文里發送給客戶端。而關閉連接時,當收到對方的FIN 報文時,僅僅表示對方不再發送數據了但是還能接收數據,己方也未必全部數據都發送給對方了,所以己方可以立即close,也可以發送一些數據給對方后,再 發送FIN報文給對方來表示同意現在關閉連接,因此,己方ACK和FIN一般都會分開發送。

A發送一個FIN,用來關閉A到B的數據傳送,A進入FIN_WAIT_1狀態。

B收到FIN后,發送一個ACK給A,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),B進入CLOSE_WAIT狀態。

B發送一個FIN,用來關閉B到A的數據傳送,B進入LAST_ACK狀態。

A收到FIN后,A進入TIME_WAIT狀態,接著發送一個ACK給B,確認序號為收到序號+1,B進入CLOSED狀態,完成四次揮手。

簡單來說就是

客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送(報文段4)。

服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1(報文段5)。和SYN一樣,一個FIN將占用一個序號。

服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A(報文段6)。

客戶端A發回ACK報文確認,并將確認序號設置為收到序號加1(報文段7)。

A在進入到TIME-WAIT狀態后,并不會馬上釋放TCP,必須經過時間等待計時器設置的時間2MSL(最長報文段壽命),A才進入到CLOSED狀態。為什么?

為了保證A發送的最后一個ACK報文段能夠到達B

防止“已失效的連接請求報文段”出現在本連接中

OK~是不是很難懂的感覺?那我們來說的“人性化點的”吧

三次握手流程

客戶端發個請求“開門吶,我要進來”給服務器

服務器發個“進來吧,我去給你開門”給客戶端

客戶端有很客氣的發個“謝謝,我要進來了”給服務器

四次揮手流程

客戶端發個“時間不早了,我要走了”給服務器,等服務器起身送他

服務器聽到了,發個“我知道了,那我送你出門吧”給客戶端,等客戶端走

服務器把門關上后,發個“我關門了”給客戶端,然后等客戶端走(尼瑪~矯情啊)

客戶端發個“我知道了,我走了”,之后自己就走了

OK,先到這吧

原文鏈接:http://blog.csdn.net/qq_25827845/article/details/66975129

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 協議
    +關注

    關注

    2

    文章

    606

    瀏覽量

    39341
  • IP
    IP
    +關注

    關注

    5

    文章

    1718

    瀏覽量

    149960
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1378

    瀏覽量

    79301

原文標題:詳解TCP/IP協議總結(怒噴一口老血)

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    用CPLD控制ADS7229,工作流程是怎么樣的?

    用CPLD控制ADS7229,因為需要用到狀態機,需要了解7229的工作流程是怎么樣的,手冊上沒有看懂,望大俠指點! 比如:流程一:通過SPI接口進行寄存器(CFR)配置——》啟動轉換-——》等待轉換完成——》輸出數據(sdo)——》啟動下一次轉換?
    發表于 12-03 07:50

    淺談無刷電機的工作流程

    上一期的芝識課堂,我們跟大家一起分析了無刷電機的四個功能單元,并詳細分析了PWM和逆變器單元的工作情況,今天我們繼續來熟悉無刷電機工作流程中另外兩個重要的部分——轉子位置檢測和波形驅動。
    的頭像 發表于 11-12 13:46 ?614次閱讀
    淺談無刷電機的<b class='flag-5'>工作流程</b>

    什么是socket編程 socket與tcp/ip協議的關系

    基于TCP/IP協議族,這是一組用于網絡通信的協議,包括傳輸控制協議TCP)和互聯網
    的頭像 發表于 11-01 16:01 ?476次閱讀

    Modbus RTU協議與Modbus TCP/IP協議的區別

    Modbus RTU和Modbus TCP/IP的本質都是Modbus協議,都是通過Modbus寄存器地址來交換數據的,那么它們之間有什么區別呢?今天我們從以下幾個方面來探討一下。
    的頭像 發表于 10-18 17:44 ?794次閱讀

    TCP協議是什么

    在網絡通信的廣闊領域中,TCP(Transmission Control Protocol,傳輸控制協議)扮演著舉足輕重的角色。作為TCP/IP協議
    的頭像 發表于 10-09 13:54 ?850次閱讀

    EtherNet/IP轉Modbus-TCP協議轉換網關

    在工業自動化領域中,EtherNet/IP轉Modbus-TCP這兩種網絡協議的互通互聯非常重要。有一款優秀的設備——遠創智控YC-EIP-TCP,能夠出色地解決這一難題。此設備性能優
    的頭像 發表于 09-06 16:54 ?307次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>協議</b>轉換網關

    EtherNet/IP轉Modbus-TCP協議網關(EtherNet/IP轉Modbus-TCP

    /IP轉Modbus TCP從站協議網關,可以實現對這些設備的集中管理和控制。 二,典型應用拓撲圖 三,設備技術參數 捷米特JM-EIP-TCP設備在Et
    的頭像 發表于 09-04 11:09 ?494次閱讀
    EtherNet/<b class='flag-5'>IP</b>轉Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>協議</b>網關(EtherNet/<b class='flag-5'>IP</b>轉Modbus-<b class='flag-5'>TCP</b>)

    一文了解TCP/IP協議

    TCP/IP協議是現代計算機網絡通信的基礎,是互聯網及局域網廣泛使用的一套協議TCP/IP
    的頭像 發表于 08-07 15:38 ?2369次閱讀
    一文了解<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協議</b>

    華納云:TCP IP協議的發展和優勢

    如何被組織、傳輸和路由。TCP/IP協議集包含了許多協議,每個協議負責網絡通信過程中的不同方面。下面是對
    的頭像 發表于 07-25 16:49 ?555次閱讀

    TCP IP協議屬性設置中的IP配置

    在現代網絡中,TCP/IP協議是基礎架構的重要組成部分。掌握TCP/IP協議屬性設置中的
    的頭像 發表于 07-23 10:10 ?605次閱讀

    TCP/IP協議棧的設計與實現_中文

    電子發燒友網站提供《TCP/IP協議棧的設計與實現_中文.pdf》資料免費下載
    發表于 07-03 11:28 ?4次下載

    LwIP協議棧源碼詳解—TCP/IP協議的實現

    電子發燒友網站提供《LwIP協議棧源碼詳解—TCP/IP協議的實現.pdf》資料免費下載
    發表于 07-03 11:22 ?3次下載

    無線模塊通過TCP/IP協議實現與PC端的數據傳輸解析

    在當今的信息時代,無線通信技術的發展日新月異,為我們的工作和生活帶來了極大的便利。其中,無線通信模塊通過TCP/IP協議向PC端傳送數據已經成為了一種常見的通信方式。 無線通信模塊是一
    的頭像 發表于 06-15 16:16 ?515次閱讀

    從表象到本質:深入探究TCP/IP協議

    在信息技術飛速發展的今天,網絡已成為人類社會不可或缺的部分。實現網絡中計算機相互通信的關鍵之一便是TCP/IP協議。作為互聯網的基礎,TCP/IP
    的頭像 發表于 06-15 09:12 ?582次閱讀
    從表象到本質:深入探究<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協議</b>

    Microchip TCP/IP 協議棧應用筆記

    電子發燒友網站提供《Microchip TCP/IP 協議棧應用筆記.pdf》資料免費下載
    發表于 04-17 14:16 ?3次下載
    大发888在线娱乐合作伙伴| 嘉禾百家乐的玩法技巧和规则 | 威斯汀百家乐的玩法技巧和规则 | 百家乐官网最佳投注法下载| 2402 房号 风水| 大发888官方 截图| 百家乐官网筹码盒| 累积式百家乐的玩法技巧和规则| 百家乐官网趋势方向| 网上赌百家乐被抓应该怎么处理| 在线玩轮盘| 百家乐官网翻天电影| 大发888下载| 吉利百家乐官网的玩法技巧和规则| 百家乐网站是多少| 原平市| 百家乐电话投注多少| 靖江市| 百家乐网络游戏平台| 百家乐官网的打法技巧| 百家乐可以破解吗| 广东百家乐官网扫描分析仪 | 百家乐官网信誉好的平台| 赌神网百家乐的玩法技巧和规则| 澳门百家乐官网实战视频| 上高县| 百家乐赌博机有鬼吗| 百家乐有好的投注法吗| 武川县| 百家乐备用网址| 百家乐官网百战百胜| 圣淘沙娱乐| 百家乐下| 在线百家乐官网游戏软件| 大发888官网黄金版| 广州百家乐官网赌场娱乐网规则 | 百家乐官网网上技巧| 百合百家乐的玩法技巧和规则| 百家乐官网网上真钱赌场娱乐网规则| 百汇娱乐| 娱乐百家乐的玩法技巧和规则|