計算機網絡:應用層(一)

在這里插入圖片描述

  • 我最近開了幾個專欄,誠信互三!
    ====> |||《算法專欄》::刷題教程來自網站《代碼隨想錄》。|||
    ====> |||《C++專欄》::記錄我學習C++的經歷,看完你一定會有收獲。|||
    ====> |||《Linux專欄》::記錄我學習Linux的經歷,看完你一定會有收獲。|||
    ====> |||《C#專欄》::記錄我復習C#的經歷,深度理解查漏補缺,不定期更新。|||
    ====> |||《計算機網絡專欄》::記錄我學習計算機網絡,看完你一定會有收獲。|||

計算機網絡:應用層(一)

  • 應用層要解決的問題
  • 如何解決這些問題
    • IP地址及端口初識
    • 應用層協議
    • socket初識(初次理解)
    • TCP/UDP要提供的服務
  • TCP/UDP初識

應用層要解決的問題

在之前的計網博客中,我們以及學習到了網絡和基于ISO,TCP/IP的網絡層狀結構,其中我們了解到了應用層要解決的問題是兩臺主機之間進程與進程之間的通訊問題。

如何解決這些問題

  • 首先,要解決進程之間的通訊問題,我們首先需要知道我們要與那個主機進行通訊。
  • 其次就要解決我們要與該主機的那個進程進行通訊。
  • 在次我們還要解決雙方通訊所要遵守的規則,及協議。

IP地址及端口初識

要解決第一個問題,我們可以借助IP地址和端口,我們知道,IP地址表識了某個網絡,這樣我們就可以定位到接收方的網絡位置,而進程則需要端口號來確認一個主機上有多個進程,端口號是一個數字,來標識唯一的進程,這樣我們就能定位到網絡,同時定位到精確的進程了。

定位到網絡并不能找到某一臺主機,還需要MAC地址,而這部分不屬于應用層的管轄,屬于數據鏈路層。

http的默認端口號為80號。
在這里插入圖片描述

應用層協議

所謂的協議是層與層之間傳遞信息的一個規則的集合,協議中包含了很多東西,入語法,語義,時序等,應用層的主要協議有http,https協議,https協議是http+ssl協議,TCP/UDP是明碼發送的,所以https協議就是解決如何在TCP/UDP為上層提供的服務中保證安全性。
下圖是http報文格式。
在這里插入圖片描述

socket初識(初次理解)

在我們傳輸數據的時候,我們要確認一些東西,比如:我是誰,我的那個進程要發送信息,接收方是誰,接收方的那個進程要接收該信息。 再比如我需要運輸層為應用層提供可靠傳輸還是非可靠傳輸(TCP/UDP)。 以及基于什么協議進行傳輸。
我們發現,如果每次發送消息/接收消息,我們都確認并發送一邊 “我是誰,我的那個進程要發送信息,接收方是誰,接收方的那個進程要接收該信息。”這樣的信息,首先會導致效率降低,并且對空間的利用也不夠好,socket解決的這個問題。

  • socket是被操作系統維護的一個表格,在需要可靠傳輸時(TCP),這個表格中包含了本地IP地址本地端口號接收方IP地址接收方端口號。這四個信息,在發送的時候,將這4個信息集合到一個整形中,并為四元組,發送出去,接收方同時也維護一個表格,來接收該四元組信息。
  • 對于非可靠傳輸(UDP)socket維護的是一個二元組表格,該表格內存有本地IP地址本地端口號

通過socket,我們不用在發送多條信息,只需發送四元組/二元組,就能確定所有信息,同時對于TCP來說,只需要確定不同的接收方的端口號,就可以直接發送數據,這樣就節約了時間,對于接收方也是如此,UDP只需要確定接收方的IP,和端口號,這樣就將很多重復工作的時間節約了下來。

TCP/UDP要提供的服務

我們知道在計算機體系結構中,下層要為上層提供服務,TCP/UDP協議要為應用層提供基于運輸層的可靠與否的服務。

TCP:可靠傳輸,基于TCP/IP協議。
UDP:非可靠傳輸。

它們互有優劣,選擇什么服務需要由應用層的進程決定。
但是這兩個協議都是明碼傳輸的,這在某些情況下是十分危險的,要解決這個問題,需要應用層的協議ssl,ssl是一個庫,它可以為數據提供安全的傳輸解決TCP/UDP無法安全傳輸的問題。

TCP/UDP初識

簡單認識以下TCP/UDP協議。

TCP:是運輸層提供可靠傳輸的協議,為了實現可靠傳輸基于TCP的運輸層會做以下工作

  • 1.TCP協議會檢測當前信道的吞吐量,如果過高則TCP協議會減少發送的數據,保證數據的精確度。
  • 2.在傳輸時,會保留副本,如果分組丟失了,則重發。
    還有很多保證可靠傳輸的方法,這次簡單認識下

UDP:是運輸層提供非可靠傳輸的協議,由于是非可靠傳輸,所以對以上的要求都不高,入分組丟失不會重發,也不會保存分組,不會檢測吞吐量,運輸層數據接收速度與發送速度幾乎相等等等。

這兩種傳輸友好有壞,TCP提供可靠傳輸,用時間換取了數據的準確度,UDP則不會這樣做。
比如流媒體,網絡游戲等需要UDP提供服務,電子郵件等則需要TCP提供服務。

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

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

相關文章

鴻蒙開發之狀態管理@Observed和@ObjectLink

一、使用場景 當對象內引用對象,改變內部對象屬性的時候其他狀態管理如State、Provide、Consume等是無法觸發更新的。同樣,在數組內如果有對象,改變對象的屬性也是無法更新的。在這種情況下就可以采用Observed和ObjectLink裝飾器了。 二、使…

C# WPF上位機開發(簡易圖像處理軟件)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing 163.com】 圖像處理是工業生產重要的環節。不管是定位、測量、檢測還是識別,圖像處理在工業生產中扮演重要的角色。而c#由于自身快速開發的特點&a…

玩轉 Go 語言并發編程:Goroutine 實戰指南

一、goroutine 池 本質上是生產者消費者模型在工作中我們通常會使用可以指定啟動的 goroutine 數量-worker pool 模式,控制 goroutine 的數量,防止 goroutine 泄漏和暴漲一個簡易的 work pool 示例代碼如下: package mainimport ("fmt…

小程序跳轉tabbar,tabbar頁面不刷新

文章地址:12.小程序 之切換到tabBar頁面不刷新問題_360問答 解決辦法備份: wx.switchTab:跳轉到 tabBar 頁面,并關閉其他所有非 tabBar 頁面 wx.reLaunch:關閉所有頁面,打開到應用內的某個頁面。 wx.reLa…

解決微信小程序中 ‘nbsp;‘ 空格不生效的問題

在微信小程序開發中,我們經常會使用 來表示一個空格。這是因為在 HTML 中,空格會被解析為一個普通字符,而不會產生實際的空白間距。而 是一種特殊的字符實體,它被解析為一個不可見的空格,可以在頁面上產生真正的空…

力扣70. 爬樓梯

動態規劃 思路: 使用遞歸比較容易理解, f(n) f(n - 1) f(n - 2); 到剩余1級臺階有 f(n - 1),到剩余2級臺階有 f(n-2);邊界情況是 n 0, f(0) 1n 1, f(1) 1n 2, f(2) 2 遞歸代碼實現: class Soluti…

Axure RP 9 入門教程

1. Axure簡介 Axure 是一個交互式原型設計工具,可以幫助用戶創建復雜的交互式應用程序和網站。Axure 能夠讓用戶快速構建出具有高度可交互性的原型,可以在團隊中進行協作、分享和測試。 使用 Axure 可以設計出各種不同類型的原型,包括網站、移…

系列十五、搭建redis集群

一、概述 上篇文章介紹了redis集群的相關知識,本章實戰演示redis的集群環境的詳細搭建步驟。如果幫助到了你,請點贊 收藏 關注!有疑問的話也可以評論區交流。 二、搭建步驟 2.1、預備知識 判斷一個集群中的節點是否可用,是集群…

【SpringBoot篇】詳解基于Redis實現短信登錄的操作

文章目錄 🥰前言🛸StringRedisTemplate🌹使用StringRedisTemplate?常用的方法 🛸為什么我們要使用Redis代替Session進行登錄操作🎆具體使用?編寫攔截器?配置攔截器🌺基于Redis實現發送手機驗證碼操作&am…

EarCMS 前臺任意文件上傳漏洞復現

0x01 產品簡介 EarCMS是一個APP內測分發系統的平臺。 0x02 漏洞概述 EarCMS前臺put_upload.php中,存在pw參數硬編碼問題,同時sql語句pdo使用錯誤,沒有有效過濾sql語句,可以控制文件名和后綴,導致可以任意文件上傳。 0x03 復現環境 FOFA:app="EearCMS" 0x0…

Flutter實現自定義二級列表

在Flutter開發中,其實系統已經給我們提供了一個可靠的二級列表展開的API(ExpansionPanelList),我們先看系統的二級列表展開效果,一次只能展開一個,用ExpansionPanelList.radio實現 由此可見,已經…

容器化升級對服務有哪些影響?

容器技術是近幾年計算機領域的熱門技術,特別是隨著各種云服務的發展,越來越多的服務運行在以 Docker 為代表的容器之內。 本文我們就來分享一下容器化技術相關的知識。 容器化技術簡介 相比傳統虛擬化技術,容器技術是一種更加輕量級的操作…

分治法求最大子列和

給定N個整數的序列{ A1, A2, …, AN},其中可能有正數也可能有負數,找出其中連續的一個子數列(不允許空序列),使它們的和盡可能大,如果是負數,則返回0。使用下列函數,完成分治法求最大…

CorelDRAW軟件2024版本好用嗎?有哪些功能優勢

CorelDRAW是一款綜合性強大的專業平面設計軟件,其功能覆蓋了矢量圖形設計、高級文字編輯、精細繪圖以及多頁文檔和頁面設計。該軟件不僅適用于廣告設計、包裝設計,還廣泛應用于出版、網頁設計和多媒體制作等多個領域。下面就給大家介紹一下CorelDRAW這款…

0012Java安卓程序設計-ssm記賬app

文章目錄 **摘要**目 錄系統設計5.1 APP端(用戶功能)5.2后端管理員功能模塊開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝🐧裙:776871563 摘要 網絡的廣泛應用給生活帶來了十分的便利。所以把記賬管理與現在網絡相…

arkts編譯報錯-arkts-limited-stdlib錯誤【Bug已完美解決-鴻蒙開發】

文章目錄 項目場景:問題描述原因分析:解決方案:適配指導案例此Bug解決方案總結項目場景: arkts編譯報錯-arkts-limited-stdlib錯誤。 我用Deveco studio4.0 beta2開發應用,報arkts-limited-stdlib錯誤 報錯內容為: ERROR: ArKTS:ERROR File: D:/prRevivw/3792lapplica…

[Verilog]用Verilog實現串并轉換/并串裝換

用Verilog實現串并轉換/并串裝換 摘要 一、串并轉換模塊 串轉并就是將低3位信號和輸入信號一起賦值。因為經過轉換后,碼元速率會將為原來四分之一,所以設置4分頻時鐘,將其輸出。而并轉串就是不斷右移,取高位輸出。 module serial…

Android 11.0 systemui鎖屏頁面時鐘顯示樣式的定制功能實現

1.前言 在11.0的系統ROM定制化開發中,在進行systemui的相關開發中,當開機完成后在鎖屏頁面就會顯示時間日期的功能,由于 開發產品的需求要求時間顯示周幾上午下午接下來就需要對鎖屏顯示時間日期的相關布局進行分析,然后實現相關功能 效果圖如圖: 2.systemui鎖屏頁面時鐘顯…

mysql原理--B+樹索引

1.沒有索引的查找 1.1.在一個頁中的查找 (1). 以主鍵為搜索條件 可以在 頁目錄 中使用二分法快速定位到對應的槽,然后再遍歷該槽對應分組中的記錄即可快速找到指定的記錄。 (2). 以其他列作為搜索條件 這種情況下只能從 最小記錄 開始依次遍歷單鏈表中的每條記錄&am…

值得收藏的練習打字網站

本文對一些好用的練習打字的網站進行了匯總整理,方便大家使用 一:程序猿練習打字: 1.Typing Practice for Programmers http://Typing.io 是程序員的打字導師。它的練習課程基于開源代碼,讓你在不斷的練習中提升自己的碼字速度…