每日八股文7.1

每日八股-7.1

  • 網絡
    • 1.能說說 TCP 報文頭部都包含哪些關鍵字段嗎?
    • 2.TCP 是如何確保數據傳輸的可靠性的?你能詳細談談嗎?
    • 3.你能解釋一下 TCP 滑動窗口是如何設計的?它主要解決了什么問題?
    • 4.TCP 協議的擁塞控制是如何實現的?你能詳細說說它的過程嗎?
    • 5.在 IP 地址 10.100.122.2/24 中,斜杠后面的數字 24 代表什么意思?
    • 6.什么是 SQL 注入攻擊?應該如何避免?

網絡

1.能說說 TCP 報文頭部都包含哪些關鍵字段嗎?

在這里插入圖片描述

TCP 頭部包含了不少重要的字段。主要有源端口號和目的端口號,它們都是 16 位的,用來標識發送方和接收方的應用程序。然后是 32 位的序列號和 32 位的確認應答號,這兩個字段對于保證數據的可靠性和順序性非常關鍵。還有一些 控制位,比如 SYN 用于發起連接,ACK 用于確認,FIN 用于關閉連接,RST 用于重置連接等等。此外,頭部還包括 4 位的首部長度,16 位的窗口大小用于流量控制,16 位的校驗和用于數據完整性校驗,以及一些可選字段。

2.TCP 是如何確保數據傳輸的可靠性的?你能詳細談談嗎?

TCP 為了保證數據傳輸的可靠性,采取了一系列關鍵措施。首先,在連接建立階段,TCP 通過三次握手來確保雙方都具備正常的發送和接收能力,并且能夠防止舊的連接請求被誤用。其次,在數據傳輸階段,每個 TCP 報文都會被分配一個序列號,接收方可以根據序列號對亂序到達的數據包進行排序。同時,接收方會發送確認應答(ACK)來告知發送方已經成功接收到了哪些數據。

如果發送方在一定時間內沒有收到某個數據包的確認應答,就會觸發超時重傳機制,重新發送丟失的數據包。另外,如果發送方連續收到三個相同的確認應答(冗余 ACK),發送方會立即進行快速重傳,而無需等待超時。為了避免發送方發送過快導致接收方處理不過來,TCP 引入了流量控制機制,通過滑動窗口來限制發送方發送數據的速率。最后,為了避免網絡出現擁塞,TCP 還實現了擁塞控制機制,通過慢啟動、擁塞避免、擁塞發生和快速恢復等算法來動態調整發送速率,確保網絡不會過載,從而保證數據的可靠傳輸。

3.你能解釋一下 TCP 滑動窗口是如何設計的?它主要解決了什么問題?

TCP 的滑動窗口機制在發送方和接收方的內核中都維護著一個緩沖區,并且在這個緩沖區上定義了一個窗口。對于發送方來說,發送窗口的大小決定了在沒有收到確認應答之前,可以連續發送的最大數據量。有了發送窗口,發送方就不需要每發送一個數據包就等待確認,可以批量發送,從而大大提高了發送效率。

對于接收方來說,接收窗口的大小表示了接收緩沖區當前可用的空間大小。接收方會將這個接收窗口的大小通過 ACK 報文告知發送方。這樣,發送方就知道接收方的接收能力,從而可以根據接收方的窗口大小來調整自己的發送速率,避免發送過多的數據導致接收方處理不過來而丟包,這就是流量控制。總的來說,滑動窗口機制主要解決了串行發送-確認方式效率低下的問題,并實現了流量控制,保證了數據傳輸的可靠性。

4.TCP 協議的擁塞控制是如何實現的?你能詳細說說它的過程嗎?

TCP 的擁塞控制是通過一系列算法來實現的,主要包括慢啟動、擁塞避免、擁塞發生時的處理(超時重傳和快速重傳)以及快速恢復。

  1. 慢啟動: 連接建立初期,發送方以較低的速率發送數據,逐步探測網絡的承載能力,指數級地增加發送窗口。

  2. 擁塞避免: 當發送窗口達到慢啟動閾值后,發送窗口以線性方式緩慢增長,避免過快地填滿網絡。

  3. 當網絡發生擁塞,可能會出現丟包。TCP 通過兩種方式檢測丟包:

    • 一是超時重傳,這種重傳方式系統默認網絡已經出現了嚴重阻塞,如果發送方在一定時間內沒有收到 ACK,就會認為發生了擁塞,此時會將慢啟動門限設置為當前擁塞窗口的一半,并將擁塞窗口重置為1,然后重新開始慢啟動。
    • 二是快速重傳,這種方式系統默認網絡出現了輕微阻塞,因為接收方還可以發送包,并且發送方還可以接收到;當發送方連續收到三個重復的 ACK 時,會認為發生了丟包,會立即重傳丟失的報文,并進入快速恢復階段。在快速恢復階段,擁塞窗口會減半,然后每收到一個重復的 ACK,擁塞窗口會增加一個 MSS,當收到被重傳的報文的 ACK 后,擁塞窗口會設置為當前的慢啟動門限,然后進入擁塞避免階段,繼續線性增長。

這些機制使得 TCP 能夠根據網絡狀況動態調整發送速率,避免網絡過載。

5.在 IP 地址 10.100.122.2/24 中,斜杠后面的數字 24 代表什么意思?

在 IP 地址 10.100.122.2/24 中,斜杠后面的數字 24 表示的是子網掩碼的位數。在 CIDR(Classless Inter-Domain Routing)表示法中,這個數字說明了子網掩碼中前面有多少個連續的“1”。對于 /24 來說,它對應的子網掩碼是 255.255.255.0,換算成二進制就是前 24 位是 1,后 8 位是 0。這個子網掩碼的作用是用來劃分 IP 地址中的網絡部分和主機部分。前 24 位(10.100.122)是網絡號,用于標識一個特定的網絡,而后 8 位(2)是主機號,用于標識該網絡中的一個特定設備。通過將 IP 地址和子網掩碼進行與運算,就可以得到該 IP 地址所屬的網絡號。

6.什么是 SQL 注入攻擊?應該如何避免?

SQL 注入攻擊是指攻擊者通過在 HTTP 請求中插入惡意的 SQL 代碼,使得后端服務器在構建和執行 SQL 查詢語句時,將這些惡意代碼也當作正常的 SQL 命令來執行,從而達到竊取數據、修改數據甚至控制服務器的目的。

舉個簡單的例子,如果一個查詢用戶信息的接口通過拼接字符串的方式構建 SQL 語句,攻擊者可以在傳入的用戶 ID 參數中加入惡意的 SQL 代碼,比如 0 OR 1=1,這樣就會導致查詢返回所有用戶的信息,造成數據泄露。更嚴重的,攻擊者甚至可以注入 DROP TABLE 這樣的語句來刪除整個數據庫。

為了預防 SQL 注入攻擊,我認為可以采取以下幾個關鍵措施:

最重要也是最有效的方法是 使用參數化查詢或者預編譯語句。這種方式會將 SQL 語句的結構和參數分開處理,用戶輸入的數據會作為參數傳遞給 SQL 語句,而不是直接拼接在 SQL 語句中。這樣可以防止惡意代碼被當作 SQL 命令來執行。
其次,需要對 用戶輸入的數據進行嚴格的驗證和過濾。在后端接收到前端傳遞的參數后,要對其進行檢查,確保輸入的數據符合預期的格式和類型,并且移除任何可能包含惡意代碼的部分。可以使用白名單機制來限制允許輸入的內容。
最后,應該 遵循最小權限原則。在數據庫中,應用程序使用的賬戶應該只被授予完成其工作所需的最小權限。這樣即使發生了 SQL 注入攻擊,攻擊者能夠進行的操作也會受到限制,從而減少損失。
總而言之,使用參數化查詢或者預編譯語句是防止 SQL 注入攻擊最根本和最有效的方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/87048.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87048.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/87048.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高性能 List 轉 Map 解決方案(10,000 元素)

文章目錄 前言一、問題背景:為什么List轉Map如此重要?二、基礎方法對比:Stream vs For循環三、性能優化關鍵點四、面試回答技巧 前言 遇到一個有意思的面試題,如標題所說,當10,000條數據的List需要轉Map,如…

今日行情明日機會——20250701

上證指數縮量收陽線,形成日線上漲中繼,個股上漲和下跌總體持平。 深證指數量能持續放大,即將回補缺口位,短線注意周三或周四的調整。 2025年7月1日漲停股主要行業方向分析 1. 芯片(17家漲停,國產替代&…

P1312 [NOIP 2011 提高組] Mayan 游戲

題目描述 Mayan puzzle 是最近流行起來的一個游戲。游戲界面是一個 7 7 7 行 5 \times5 5 列的棋盤,上面堆放著一些方塊,方塊不能懸空堆放,即方塊必須放在最下面一行,或者放在其他方塊之上。游戲通關是指在規定的步數內消除所有…

Spring Boot 2 多模塊項目中配置文件的加載順序

Spring Boot 2 多模塊項目中配置文件的加載順序 在 Spring Boot 2 多模塊項目中,配置文件的加載遵循特定的順序規則。了解這些規則對于正確管理多模塊應用的配置至關重要。 一、默認配置文件加載順序 Spring Boot 會按照以下順序加載 application.properties 或 …

邊界的藝術:支持向量機與統計學習時代的王者

當揚勒丘恩的卷積神經網絡LeNet在90年代初于手寫數字識別領域綻放光芒,卻因計算與數據的桎梏未能點燃更廣泛的燎原之火時,人工智能,特別是其子領域機器學習,正步入一個理論深化與方法論多元化的關鍵時期。經歷了符號主義通用智能探…

js filter()

listType(queryParams.value).then(response > {filterTable.value response.rows.slice(1); // 只顯示前3條數據;filterTable.value filterTable.value.filter(item > {return wnSensorsList.value.some(sensorsgroup > {return sensorsgroup.sensorType item.cod…

Python 庫 包 nltk (Natural Language Toolkit)

文章目錄 🧰 一、nltk 的主要功能? 文本處理功能? 內置語料庫(Corpora) 📦 二、安裝與使用1. 安裝 nltk2. 下載語料庫(第一次使用時需要下載) 🔍 三、常用功能示例示例 1:分詞示例…

設計模式之房產中介——代理模式

手撕設計模式之房產中介——代理模式 1.業務需求 ? 大家好,我是菠菜啊,好久不見,今天給大家帶來的是——代理模式。老規矩,在介紹這期內容前,我們先來看看這樣的需求:我們有一套房產需要出售&#xff0c…

Unity進階課程【六】Android、ios、Pad 終端設備打包局域網IP調試、USB調試、性能檢測、控制臺打印日志等、C#

Unity打包 Android、ios、Pad 終端設備局域網IP調試、USB調試 今天咱們繼續進階課程,定期更新,有想學習的不懂的地方也可以告訴我。 提示:內容純個人編寫,歡迎評論點贊,來指正我。 文章目錄 Unity打包 Android、ios、P…

c++中的mutex同步機制與多線程同步實現

C 中的 std::mutex 與多線程同步 在多線程編程中,互斥鎖(Mutex) 是一種同步機制,用于保護共享資源(如變量、數據結構)免受數據競爭(Data Race)的影響。C 標準庫中的 std::mutex 提供…

網絡安全2023—新安全新發展

關于綠盟科技 綠盟科技集團股份有限公司(以下簡稱綠盟科技),成立于 2000 年 4 月,總部位于北京。公司于 2014 年 1 月 29 日在深圳證券交易所創業板上市,證券代碼:300369。綠盟科技在國內設有 50余個分支機構,為政府、金融、運營商、能源、交通、科教文衛等行業用戶與各…

WebSocket掃盲

WebSocket 是一種網絡通信協議,它允許在單個 TCP 連接上進行全雙工、雙向的實時通信。它是為了解決傳統 HTTP 協議在實時交互應用中的局限性而設計的。 核心概念和特點 解決 HTTP 的痛點: 單向性: HTTP 是請求-響應模式。客戶端發起請求&…

Springboot整合高德地圖

1.登錄高德開放平臺 高德開放平臺 | 高德地圖API 2.獲取密鑰key 1.點擊控制臺 2.創建新應用 3.添加key 4.創建key 5.獲取key 3.java整合 1.高德配置類 package com.thk.controller.map;import org.springframework.beans.factory.annotation.Value; import org.springfram…

【SQL知識】PDO 和 MySQLi 的區別

目錄 簡介 主要區別 預處理語句示例比較 PDO 示例 MySQLi 示例 選擇建議 簡介 PDO (PHP Data Objects) 和 MySQLi (MySQL Improved) 都是 PHP 中用于數據庫操作的擴展,都支持預處理語句,但有一些重要區別: 主要區別 數據庫支持 PDO&am…

python打卡 DAY 45 Tensorboard使用介紹

目錄 一、TensorBoard 發展歷史與原理 1. 演進歷程 2. 核心架構原理 二、TensorBoard 核心功能操作 1. 基礎配置方法 2. 常用功能速查表 三、CIFAR10 實戰演示 1. MLP 模型監控配置 2. CNN 特征可視化 四、TensorBoard 高級功能 1. 超參數調優 2. 3D點云可視化 五、…

Swift 中 Result 類型全解析:從基礎到進階

在現代 iOS 開發中,Swift 的 Result 類型是處理同步與異步錯誤的一大利器。相比傳統的 throws / do-catch 語法,它更清晰、結構化,也更易于組合式編程。 本文將帶你從 Result 的基礎定義出發,逐步深入其在實際項目中的多種應用&am…

Github 2025-06-28 Rust開源項目日報 Top10

根據Github Trendings的統計,今日(2025-06-28統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量Rust項目10Rust實現的非官方Bitwarden兼容服務器 創建周期:2317 天開發語言:Rust協議類型:GNU Affero General Public License v3.0Star數量…

python 寫一個判斷文本中是否有手機號的函數,并提取出文本中的手機號

我們需要判斷文本中是否有手機號,并提取出手機號。 中國大陸的手機號規則: 1. 通常為11位數字。 2. 目前手機號段分配如下: - 移動號段:134(0-8)、135、136、137、138、139、147、148、150、151、152、157、158、159、172、178、1…

作物生長模型Oryza V3實戰12:drate程序詳解

drate(v2).exe,可以通過觀察移植日、穗部分化、開花和成熟的物候日期(即日和年),DRATE(v2)用于校準四個階段的發展速率:幼苗期(DVRJ,oCday-1)、光周期敏感期(DVRI,oCday-1)、穗部發育期(DVRP,oCday-1)和生殖期(DVRR,oCday-1)。 一 準備輸入文件 1、準備.crp,.…

利用視覺-語言模型搭建機器人靈巧操作的支架

25年6月來自斯坦福和德國卡爾斯魯厄理工的論文“Scaffolding Dexterous Manipulation with Vision-Language Models”。 靈巧機械手對于執行復雜的操作任務至關重要,但由于演示收集和高維控制的挑戰,其訓練仍然困難重重。雖然強化學習 (RL) 可以通過在模…