計算機網絡之傳輸層 + 應用層

.1 UDP與TCP

  • IP中的檢驗和只檢驗IP數據報的首部, 但UDP的檢驗和檢驗 偽首部 + 首部 + 數據
  • TCP的交互單位是數據塊, 但仍說TCP是面向字節流的, 因為TCP僅把應用層傳下來的數據看成無結構的字節流, 根據當時的網絡環境組裝成大小不一的報文段.
  • 10秒內有1秒用于發送端發送數據, 信道利用率就是10%
  • TCP報文段由首部和數據部分組成, 緊急位URG的作用就是將緊急指針所指示的數據放到數據部分的最前面

2.1 DNS系統

  • 域名由點和標號(label)組成, 點分割的即是標號
  • 每個標號不超過63個字符,總計不超過255個字符, 并且不區分大小寫
  • 頂級域名TLD(Top Level Domain)分為三類, 國家頂級域名nTLD, 通用頂級域名gTLD, 基礎結構域名ID(Infrastructure Domain). 基礎結構域名只有一個即 arpa. 用于反向域名解析, 因此被稱為反向域名
  • 2011年開始, 頂級域名TLD新增了一類新通用頂級域名(New gTLD)
  • 域名服務器管轄范圍(或有權限的)以區 (zone) 為單位, 而非域(domain)。各單位根據具體情況來劃分自己管轄范圍的區, 但在一個區中的所有節點必須是能夠連通的。管轄一個區的服務器就是權限域名服務器, 后有詳細敘述
    實際上也很好理解, 例如對于一個com頂級域名, 其下轄的二級域名可能以億單位, 這時我們當然不可能用一臺com頂級域名服務器就全部管轄. 區≤域
    在這里插入圖片描述
  • 域名服務器可以劃分為四種類型: 根/頂級/權限/本地域名服務器.
    其中根域名服務器知道所有頂級域名服務器的域名和ip, 即根域名服務器可以解析所有com/org等頂級域名.
    根域名服務器一共有13臺(A~M), 每臺又由許多物理節點組成, 這些物理節點會分布在世界各地.
    每臺根域名服務器的IP地址和域名都是不同的, 但同一臺內的所有物理節點的IP地址都是相同的, 因此采用了任播(anycast)技術后, 會自動尋找IP地址相同, 但距離最近的物理節點.
  • 每臺域名服務器都會有一些分布式備份, 其中只能在主域名服務器中進行數據更改, 輔助域名服務器是備份.
  • 每臺域名服務器都啟用了高速緩存
  • 主機中也啟用了高速緩存, 例如在開機后自動從本地域名服務器下載全部數據

.2 HTTP協議

  • n個文檔的傳輸時間為 : n X (2RTT + 文本傳輸時間), 因此HTTP1.1版本后使用了持續連接(Persistent Connection). 持續連接又分為非流水線方式(Without Pipelining)和流水線方式(With Pipelining).
    在這里插入圖片描述
  • 非流水方式指的是, 客戶端必須要收到上一個請求的響應后, 才能發出下一個請求.
    相比非持續連接, n個文檔傳輸能省去 n-1 個建立TCP連接的RTT.
    n個文檔的傳輸時間為 : (RTT +nRTT + n X 文本傳輸時間),
  • 流水方式中, 由于沒有限制請求必須在響應之后發送, 因此文檔傳輸的時間不定.最好的情況下, 客戶端一次性發送完所有請求, 傳輸時間為2RTT+ n X 文本傳輸時間
  • HTTP1.1 版本的一個缺點是, 即使客戶端可以一次性發送多個請求, 但服務器只能按照請求的順序逐一回復, 如果某一請求耗時特別長, 就會阻塞后面的請求
    HTTP2 版本中, 服務器可以并行發回所有響應, 而不必按序.
  • HTTP2 版本中, 把所有報文劃分為二進制編碼的幀

.3 文件傳送協議

基于TCP的文件傳輸協議FTP(File Transfer Protocol)和基于UDP的簡單文件傳輸協議TFTP(Trivial)共同的特點是: 任何操作都要先獲得一個本地副本文件, 任何修改都要先在副本文件上進行.
舉個例子, A想要在B的某個文件最后新增一個字母, 則必須先要將文件傳輸到A, A完成修改后再回傳覆蓋.

.3.1 TFTP

TFTP主要有以下特點:

  • 傳輸數據塊大小為512字節。
  • 只支持讀取和寫入兩種操作。
  • 沒有用戶身份驗證、加密和完整性校驗功能。
  • 使用UDP作為傳輸層協議,不保證可靠性
  • 默認使用69號端口。

TFTP的工作過程很像停止等待協議,發送完一個文件塊后就等待對方的確認,確認時應指明所確認的塊號。
發送完數據后在規定時間內收不到確認就要重發數據PDU,發送確認PDU的一方在規定時間內收不到下一個文件塊,也要重發確認PDU。這樣保證文件的傳送不致因某一個數據報的丟失而告失敗。

.4 P2P

  • 在BT中, 使用"最稀有的優先(rarest first)" 技術優先請求最稀有的文件塊, 避免之后收集不到
  • 在BT中, 還運用了對等傳輸的思想. 如果A以最高速率向B發送文件, B 也會將A的優先級設為最高.

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

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

相關文章

【Python】進階學習:pandas--groupby()用法詳解

📊【Python】進階學習:pandas–groupby()用法詳解 🌈 個人主頁:高斯小哥 🔥 高質量專欄:Matplotlib之旅:零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程👈…

Python算法100例-3.5 親密數

1.問題描述2.問題分析3.算法設計4.確定程序框架5.完整的程序6.問題拓展 1.問題描述 如果整數A的全部因子(包括1,不包括A本身)之和等于B,且整數B的全部因子(包括1,不包括B本身)之和…

中國電子學會2020年6月份青少年軟件編程Sc ratch圖形化等級考試試卷四級真題。

第 1 題 【 單選題 】 1.執行下面程序,輸入4和7后,角色說出的內容是? A:4,7 B:7,7 C:7,4 D:4,4 2.執行下面程序,輸出是&#xff…

Oracle自帶的網絡工具(計算傳輸redo需要的帶寬,使用STATSPACK,計算redo壓縮率,db_ultra_safe)

--根據primary database redo產生的速率,計算傳輸redo需要的帶寬. 除去tcp/ip網絡其余30%的開銷,計算需要的帶寬公式: 需求帶寬((每秒產生redo的速率峰值/0.75)*8)/1,000,000帶寬(Mbps) --可以通過去多次業務高峰期的Statspack/AWR獲取每秒產生redo的速率峰值,也可以通過查詢視…

post請求體內容無法重復獲取

post請求體內容無法重復獲取 為什么會無法重復讀取呢? 以tomcat為例,在進行請求體讀取時實際底層調用的是org.apache.catalina.connector.Request的getInputStream()方法,而該方法返回的是CoyoteInputStream輸入流 public ServletInputStream…

CVE-2016-5195 復現記錄

文章目錄 poc前置知識頁表與缺頁異常/proc/self/mem的寫入流程madvise 漏洞點修復 Dirty COW臟牛漏洞是一個非常有名的Linux競爭條件漏洞,雖然早在2016年就已經被修復,但它依然影響著眾多古老版本的Linux發行版,如果需要了解Linux的COW&#…

Redis7 實現持久化的三種方式

1、概述 1.1、Redis持久化的重要性 數據恢復:Redis是一個內存數據庫,如果系統或服務宕機,內存中的數據將會丟失。Redis的持久化機制可以把數據保存到磁盤上,以便在系統重啟后恢復數據。這是Redis持久化最基本也是最重要的功能。…

JCL中IEFBR14和COND

JCL中IEFBR14和COND ? COND CODE,就是反映JCL中STEP運行狀態的參數,JCL正常終了的COND CODE 是0000,另外筆者在執行某些工具JCL時候,比方說簡單一個COMPARE吧,可能會出現0012、0004或者0016,0001&#xf…

JSON與Object等的相互轉換

JSON與Object的轉換 // 將 Object 對象轉換為 String 類型 String jsonString = JSON.toJSONString(body);// 將 String 或 byte[] 轉換為 JSONObject 類型 JSONObject jsonObject = JSONObject.parseObject(jsonString); // 根據鍵key獲取 JSONObject 中的某一個鍵值對的值 S…

數據結構:棧和隊列的實現附上源代碼(C語言版)

目錄 前言 1.棧 1.1 棧的概念及結構 1.2 棧的底層數據結構選擇 1.2 數據結構設計代碼(棧的實現) 1.3 接口函數實現代碼 (1)初始化棧 (2)銷毀棧 (3)壓棧 (4&…

金三銀四求職攻略:如何在面試中脫穎而出

隨著春天的腳步漸近,對于眾多程序員來說,一年中最繁忙、最重要的時期也隨之而來。金三銀四,即三月和四月,被廣大程序員視為求職的黃金時段。在這段時間里,各大公司紛紛開放招聘,求職者們則通過一場又一場的…

初階數據結構之---棧和隊列(C語言)

引言 在順序表和鏈表那篇博客中提到過,棧和隊列也屬于線性表 線性表: 線性表(linear list)是n個具有相同特性的數據元素的有限序列。 線性表是一種在實際中廣泛使用的數據結構。線性表在邏輯上是線性結構,也就是說是連…

xxl-job--02--可視化界面各功能詳細介紹

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 可視化界面1 新增執行器2.新增任務**執行器**:**任務描述**:**路由策略**:**Cron**:cron表達式**運行模式**JobHandl…

01.18 校招 實習 內推 面經

綠*泡*泡VX: neituijunsir 交流*裙 ,內推/實習/校招匯總表格 1、校招 | 中國航天科工四院四部2024春季校園招聘 校招 | 中國航天科工四院四部2024春季校園招聘 2、阿里集團24屆秋招「空缺崗位」大盤點 校招 | 阿里集團24屆校招補錄大盤點&#xff0…

全量知識系統問題及SmartChat給出的答復 之15 幣圈生態鏈

Q40. 今天聊聊關于幣圈和幣圈生態方面,尤其是在建立和保護各種幣圈生態鏈的問題。 主要包括各種主體、 各種權益 和 各種幣及其幣圈的 分類,包括 概念、關系和 鏈接和斷鏈的判斷根據等等, 是否有一個比較清晰的體系結構呢? 因為現…

java Springboot vue 健身房系統,簡單練手項目

該項目主要分為管理員和會員模塊 管理員具有:會員管理,器材管理,員工管理,健身課程管理 會員模塊,可以在線報名健身課程,查看自己課程 采用VUE前端開發和springboot后端開發,極簡代碼編寫,沒…

融資項目——登錄接口的開發

1. 首先創建登錄與用戶信息VO類。 Data ApiModel(description "登陸對象") public class LoginVO {ApiModelProperty("手機號")private String mobile;ApiModelProperty("密碼")private String password;ApiModelProperty("用戶類型"…

藍橋每日一題 (差分)3月3號

//3279改變數組元素 自己做TLE&#xff1a;奈何想不出怎么用差分 #include<bits/stdc.h> using namespace std; //3279 改變數組元素&#xff08;超時&#xff09; const int N2e510; vector<int>a; int t,n; int main() {cin>>t;while(t--){cin>>n;…

ubuntu20.04安裝docker及運行

ubuntu20.04安裝docker及運行 ubuntu環境版本 Ubuntu Focal 20.04 (LTS) 查看系統版本 rootubuntu20043:~# cat /proc/version Linux version 5.15.0-78-generic (builddlcy02-amd64-008) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) …

Vue(黑馬學習筆記)

Vue概述 通過我們學習的htmlcssjs已經能夠開發美觀的頁面了&#xff0c;但是開發的效率還有待提高&#xff0c;那么如何提高呢&#xff1f;我們先來分析下頁面的組成。一個完整的html頁面包括了視圖和數據&#xff0c;數據是通過請求從后臺獲取的那么意味著我們需要將后臺獲取…