<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    IP無連接,TCP如何保持連接?

    VSole2022-04-15 15:09:02

    計算機網絡中為什么在IP協議是無連接的前提下,TCP協議可以面向連接?

    TCP報文段就包含在IP數據報的數據部分里面,怎么做到的?當一個個TCP報文從漫游的IP數據報身上金蟬脫殼的時候,它們之間的順序等屬性可能都變化了,它們又是如何維系協議規定的面向連接功能呢?

    點對點通信P2P(Peer-2-Peer)

    面向連接(Connection-Oriented)解決的是點對點通信,兩者(Two Sides)之間的通信,或者單播(Unicast)通信。疫情期間,老王被封在1號樓,老婆被封在2號樓。為了防止老婆餓暈,在兩樓之間甩一根繩子,老王將黃瓜、胡蘿卜、土豆栓在繩上,輸送給老婆。老婆有時也將可樂、香煙拴在繩子上運給老王,這是點對點通信。

    點對多點通信P2MP(Peer-2-Multiple Peer)

    無連接(Connectionless)解決的是點對多點的通信,通常稱之為組播(Multicast)通信,廣播(Broadcast)是一種特殊的組播,是組播的一個子集。老王家里沒有吃的,餓的眼睛都綠了,拿起高音喇叭唱山歌,小區的鄰居都可以聽到,這是點對多點通信。

    互聯網世界的通信,看似繁復蕪雜,其實就是以上兩種通信的現實應用。

     

    • 手機APP搶菜、知乎刷疫情數字、刷小視頻、微信聊天、微信視頻聊天等等,這些是點對點通信,要么是客戶端與服務器兩點之間的通信,要么是客戶端與客戶端之間的通信。
    • IPTV看電視,是典型的點對多點的通信。ARP廣播、DHCP廣播也是點對多點通信。
    • 微信群聊天、微信多人視頻聊天、微信訂閱號發布文章、直播,邏輯上是點對多點通信,其實依然是多個點對點通信。即一個客戶端與服務器點對點通信,將內容上傳服務器,然后服務器計算之后再點對點分發給多個客戶端。


    以上兩種通信的應用,都由TCP/IP這個神奇的協議來承載運輸。充分說明,TCP/IP既能實現點對點的通信需求,也能實現點對多點的通信需求。TCP/IP是通過什么組合來實現以上通信需求的呢?

    無連接IP + 有連接TCP +無連接的應用

    由于TCP只能提供P2P通信,所以這個組合只能提供P2P通信。這種組合占互聯網通信的絕大多數。具體應用有各種APP,搶菜的、刷疫情數字的、刷小視頻的、聊天的、理財的、股票交易的,太多了,不一一列舉。

    無連接IP + 無連接UDP +有連接的應用

    由于三個組合有一個是有連接的,那么這個組合就是有連接的,而有連接只能提供P2P通信。具體應用有IP電話、微信視頻/語音聊天、直播等。

    無連接IP + 無連接UDP +無連接的應用

    由于三個組合全部是無連接的,那么這個組合就是無連接的。無連接的組合不僅可以P2P通信,還可以P2MP通信。具體應用有IPTV、股市行情推送、ARP廣播、DHCP廣播、任何組播等。如果你有興趣寫一個這樣組合的通信小程序,可以從一個主機A發消息給另外一臺主機B。如果B開機就能收到,如果B關機,消息就消失在網絡里。

    上文的組合容易引起歧義,無連接的IP,是不是還有有連接的IP?

    沒有的,IP天生是無連接的。此外,TCP天生是有連接的,UDP天生是無連接的。只有應用不是天生的,可以有連接,也可以無連接。

    無連接IP、UDP,最大的特征就是一錘子買賣,每一個報文只發一次,丟就丟了,不管,滿臉寫滿暴躁。

    有連接TCP、有連接的應用層,每發出一個報文,會耐心等待對方的確認。如果發一次沒有收到對方的確認,會超時重新發送,直到收到對方確認,或者到達重傳上限而放棄,然后通知客戶連接斷了。客戶如果刷新,TCP開始新一輪的連接建立,重復上一個故事。如果客戶不刷新,就躺平。

    當TCP通信正在進行時,IP包的丟失,意味著TCP報文的丟失,發送方會用周期性的重傳予以補償,所以IP包的丟失沒有什么可怕的,大不了傳輸效率下降,但是TCP連接依然健在。

    但是,如果TCP通信正在進行,雙方任意的一方IP地址發生變化、或者端口號發生變化,這個TCP連接還能通信嗎?

    不能了,TCP連接就會斷開。

    當然通信進行時,端口號通常是不會變化的,除非操作系統老爺爺腦子進水了,但是IP地址的變化是時有發生的。比如你的手機由于信號問題,從Wi-Fi切換到4G,那么IP地址就會從局域網的IP切換成4G網絡的IP地址,那么你正在進行的任何TCP通信都會斷開,這點你很難在APP上發現。因為APP會在斷開的時刻,選擇使用新的IP地址重連服務器,然后再打開要刷新的頁面。

    無論是移動通信的漫游,還是Wi-Fi的漫游,如果不想讓電話中斷、視頻中斷,最最核心的要素是保持手機IP地址的不變。如何保持IP地址不變?可以從大二層技術找到靈感。

    通信tcp
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在發送 TCP 數據段時,由發送端計算校驗和,當到達目的地時又進行一次檢驗和計算。表示緊急數據的末尾在 TCP 數據部分中的位置。如果不能及時收到一個確認,將重發這個報文段。流量控制TCP 連接的每一方都有固定大小的緩沖空間,TCP 的接收端只允許發送端發送接收端緩存區能接納的數據。TCP 使用的流量控制協議是可變大小的滑動窗口協議。擁塞控制當網絡擁塞時,減少數據的發送。
    幾道網絡面試題!看看你都會嗎?
    在此活動檢查流量之后,我們能通過流量檢測工具識別會話期間所有已執行的命令。現在讓我們在初始階段啟動后檢查流量。在 TCP 握手之后,我們觀察到成功的通信正在進行。檢查的流量顯示它在 SSL 握手后立即開始。然而,在這種情況下,我們會留下精心制作或默認證書的痕跡,這些證書也可以進行調查,這可能會導致基礎設施或受到 IDS/IPS 簽名的攻擊。在此示例中,我們將使用Meterpreter 反向 tcp有效負載來測試我們的規避能力。
    TCP 和UDP協議的區別以及原理最近重新認知了一下 TCP 和 UDP 的原理以及區別,做一個簡單的總結。這包數據稱之為SYN 包,如果對端同意連接,則回復一包 SYN+ACK 包,客戶端收到之后,發送一包 ACK 包,連接建立,因為這個過程中互相發送了三包數據,所以稱之為三次握手。也是為了保證在不可靠的網絡鏈路中進行可靠的連接斷開確認。
    TCP傳輸數據穩定可靠,UDP的優點是速度快。
    TCP和UDP協議的區別以及原理最近重新認知了一下TCP和UDP的原理以及區別,做一個簡單的總結。這包數據稱之為SYN包,如果對端同意連接,則回復一包SYN+ACK包,客戶端收到之后,發送一包ACK包,連接建立,因為這個過程中互相發送了三包數據,所以稱之為三次握手。也是為了保證在不可靠的網絡鏈路中進行可靠的連接斷開確認。
    而UDP是一個面向無連接的傳輸層協議。當意識到丟包了或者網絡環境不佳,TCP 會根據具體情況調整自己的行為,控制自己的發送速度或者重發。由此證明男方擁有愛的能力。SYN 需要對端的確認, 而 ACK 并不需要,因此 SYN 消耗一個序列號而 ACK 不需要。
    28 張圖,搞懂TCP
    2022-07-08 06:58:09
    做IT相關的工作,肯定都離不開網絡,網絡中最重要的協議是TCP。應用進程可以通過監聽socket,來獲取這個socket接受到的消息。不同的運輸層協議對socket有不同的定義方式。運輸層協議運輸層的協議就是大名鼎鼎的TCP和UDP。當然除此之外,還有更多更優秀的運輸層協議,但目前廣為使用的,就是TCP和UDP。
    計算機網絡中為什么在IP協議是無連接的前提下,TCP協議可以面向連接?TCP報文段就包含在IP數據報的數據部
    前言前段時間讀了讀徐哥的《內網安全攻防》,并復現了部分知識點,寫篇文章記錄下學習內容。但在大多數情況下,內網的環境存在多種邊界設備以及入侵檢測裝置的限制,它們會對主機間或者內網與外網之間通信的流量進行檢測,如果存在異常就會進行攔截,這無疑給內網滲透增加了難度,而隱藏通信隧道技術就是為了繞過各種邊界設備的封鎖,從而完成主機間或內網與外網之間的通信
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类