網絡協議:什么是網絡分層的七四五

本篇內容包括:網絡分層七層、五層、四層網絡協議概念的介紹,IOS 體系結構的介紹與構成、TCP/IP體系結構的簡介及與IOS體系的關系 以及五層體系結構的介紹。

一、七層、五層、四層網絡協議概念

1、關于網絡協議

網絡協議,即是指計算機網絡中進行數據交換而建立的規則、標準或約定的集合。

例如,網絡中一個 PC 用戶和一個大型公司服務器的操作員進行通信,由于這兩個數據終端所用字符集不同,因此操作員所輸入的命令彼此不認識。所以為了能進行通信,就要規定每個終端都要將各自字符集中的字符先變換為一種統一標準字符集的字符后,才進入網絡傳送,到達目的終端之后,再變換為該終端字符集的字符。

2、網絡分層

由于網絡節點之間聯系的復雜性,在制定協議時,通常把復雜成分分解成一些簡單成分,然后再將它們復合起來。最常用的復合技術就是網絡分層方式。

img

網絡協議分層又有很多種,我們能接觸到最常見的則是 3 種:OSI 體系結構(七層),TCP/IP 體系結構(四層)以及 五層體系結構。

  • OSI 體系結構:是國際標準化組織(ISO)在1978 年提出的 “開放系統互聯參考模型” 使用的結構,概念清楚,理論也比較完整,但是它既復雜又不實用。
  • TCP/IP體系結構:TCP/IP是一個四層體系結構,得到了廣泛的運用。
  • 五層體系結構:為了方便學習,折中 OSI 體系結構和 TCP/IP 體系結構,綜合二者的優點,這樣既簡潔,又能將概念講清楚

二、OSI 體系結構

OSI 是 Open System Interconnect 的縮寫,意為開放式系統互聯。為了增強通用性和兼容性,計算機網絡都被設計成層次機構,每一層都遵守一定的規則。因此有了OSI這樣一個抽象的網絡通信參考模型,按照這個標準使計算機網絡系統可以互相連接。

7 層是指 OSI 七層協議模型,主要是:應用層(Application)、表示層(Presentation)、會話層(Session)、傳輸層(Transport)、網絡層(Network)、數據鏈路層(Data Link)、物理層(Physical)。

在這里插入圖片描述

  • 物理層:通過網線、光纜等這種物理方式將電腦連接起來。傳遞的數據是比特流,0101010100。
  • 數據鏈路層:首先,把比特流封裝成數據幀的格式,對 0、1 進行分組。電腦連接起來之后,數據都經過網卡來傳輸,而網卡上定義了全世界唯一的 MAC 地址。然后再通過廣播的形式向局域網內所有電腦發送數據,再根據數據中 MAC 地址和自身對比判斷是否是發給自己的。
  • 網絡層:廣播的形式太低效,為了區分哪些 MA C地址屬于同一個子網,網絡層定義了 IP 和子網掩碼,通過對IP和子網掩碼進行與運算就知道是否是同一個子網,再通過路由器和交換機進行傳輸。IP協議屬于網絡層的協議。
  • 傳輸層:有了網絡層的 MAC+IP 地址之后,為了確定數據包是從哪個進程發送過來的,就需要端口號,通過端口來建立通信,比如 TCP 和 UDP 屬于這一層的協議。
  • 會話層:負責建立和斷開連接
  • 表示層:為了使得數據能夠被其他的計算機理解,再次將數據轉換成另外一種格式,比如文字、視頻、圖片等。
  • 應用層:最高層,面對用戶,提供計算機網絡與最終呈現給用戶的界面

OSI 七層參考模型的各個層次的劃分遵循下列原則:

  1. 同一層中的各網絡節點都有相同的層次結構,具有同樣的功能。
  2. 同一節點內相鄰層之間通過接口(可以是邏輯接口)進行通信。
  3. 七層結構中的每一層使用下一層提供的服務,并且向其上層提供服務。
  4. 不同節點的同等層按照協議實現對等層之間的通信。

三、TCP/IP體系結構

TCP/IP 即傳輸控制協議/網絡互聯協議,是針對 Internet 開發的一種體系結構和協議標準,相對于 OSI 體系結構更簡潔。分層體系,由下至上分別是網絡接口層、網際層、傳輸層和應用層(四層分法)。

TCP/IP 則是四層的結構,相當于是對 OSI 模型的簡化:

img

  1. 數據鏈路層,也有稱作網絡訪問層、網絡接口層。他包含了 OSI 模型的物理層和數據鏈路層,把電腦連接起來。
  2. 網絡層,也叫做 IP 層,處理 IP 數據包的傳輸、路由,建立主機間的通信。
  3. 傳輸層,傳輸層的主要工作是定義端口,標識應用程序身份,實現端口到端口的通信。
  4. 應用層,包含 OSI 的會話層、表示層和應用層,提供了一些常用的協議規范,比如 FTP、SMPT、HTTP 等。

總結下來,數據鏈路層就是通過物理手段把電腦連接起來并對比特流的數據進行分組,網絡層來建立主機到主機的通信,傳輸層建立端口到端口的通信,應用層最終負責建立連接,數據格式轉換,最終呈現給用戶。

TCP/IP 體系結構的優點:

  1. 簡化了計算機網絡的結構,由原來的七層編導現在的四層,但是其功能并沒有減少。
  2. 每一層即獨立又有聯系,獨立是因為如果那一層出現問題了不會影響其他層的工作,聯系是因為上層協議又使用下層協議提供的服務。

四、五層體系結構

五層體系結構只是 OSI和TCP/IP的綜合,是業界產生出來的非官方協議模型,主要是用于方便理解的模型,即很多具體的應用,實際應用還是TCP/IP的四層結構。為了方便可以把下兩層稱為網絡接口層。五層體系結構包括:應用層、運輸層、網絡層、數據鏈路層和物理層。

看一下五層網絡體系結構各層的主要功能:

img

  • 應用層:應用層是網絡協議的最高層,主要任務通過進程間的交互完成特定網絡應用。應用層協議定義的是應用程序(進程)間通信和交互的規則。 對于不同的網絡應用需要有不同的應用層協議,在互聯網中的應用層協議很多,如域名系統DNS,支持萬維網應用的HTTP協議,支持電子郵件的SMTP協議,等等。應用層交互的數據單元稱為報文。
  • 運輸層:有時也譯為傳輸層,它負責為兩臺主機中的進程提供通信服務。該層主要有以下兩種協議:
    • 傳輸控制協議 (Transmission Control Protocol,TCP):提供面向連接的、可靠的數據傳輸服務,數據傳輸的基本單位是報文段(segment);
    • 用戶數據報協議 (User Datagram Protocol,UDP):提供無連接的、盡最大努力的數據傳輸服務,但不保證數據傳輸的可靠性,數據傳輸的基本單位是用戶數據報。
  • 網絡層:網絡層負責為分組網絡中的不同主機提供通信服務,并通過選擇合適的路由將數據傳遞到目標主機。在發送數據時,網絡層把運輸層產生的報文段或用戶數據封裝成分組或 包進行傳送。 在TCP/IP體系中,由于網絡層使用IP協議,因此分組也叫IP數據報。
  • 數據鏈路層:數據鏈路層通常簡稱為鏈路層。數據鏈路層在兩個相鄰節點傳輸數據時,將網絡層交下來的IP數據報組裝成幀,在兩個相鄰節點之間的鏈路上傳送幀。
  • 物理層:保數據可以在各種物理媒介上進行傳輸,為數據的傳輸提供可靠的環境。

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

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

相關文章

查看表空間相關命令

默認表空間數據文件大小根據DATA BLOCKS的大小有關,默認最大為32GB表空間達到32G,只能增加數據文件alter tablespace 表空間名 add datafile 數據文件路徑‘ size 500m autoextend on next 100m maxsize 10000M;未達到32G,修改數據文件的擴展…

網絡協議:一文搞懂Socket套接字

本篇內容包括:Socket 套接字的簡介、Socket 套接字的分類、Java 中的 Socket 即 java.net.ServerSocket、java.net.Socket 的使用,以及Java 使用套接字 Scoket 編程的Demo。 一、Socket 簡介 TCP(傳輸控制協議)是一種面向連接的、…

RESETLOGS

使用resetlogs選項,會把當前的日志序號(log sequence number)重設為1,并拋棄所有日志信息。在以下條件時需要使用resetlogs選項: 在不完全恢復(介質恢復); 使用備份控制文件。 使…

網絡協議:透徹解析HTTP協議

本篇內容包括:HTTP 協議定義及其特點概述、關于 URL 定義及分類概述、Request 請求、Response 響應 以及 瀏覽器訪問一個網站的全過程 等內容… 一、HTTP 協議概述 HTTP(HyperText Transfer Protocol) 即 超文本傳輸協議,它是一種…

oracle參數文件和口令文件

外部 審核 口令:記錄超級用戶的用戶名和口令,做sys用戶的安全審核 oracle9以后全部使用sys登錄,但需要使用as sysdba ,之前版本需要使用internal o7字典打開 只要用戶和密碼存在于口令文件,就可以以sysdba登錄&#…

innobackup備份恢復實操步驟--gtid復制(1)(1)

首先在主庫進行備份: 備份命令: Innobackupex --defaults-file/app/dbcluster/sgrdb/mysql/my19103.cnf --no-timestamp --userdbscale --passwordS6000dbscale --host10.157.43.224 --port19103 /data/backup 如果使用setsid: setsid …

Redis系列:Redis的概述與安裝

Redis(Remote Dictionary Server) 是一個使用 C 語言編寫的,開源的(BSD許可)高性能非關系型(NoSQL)的鍵值對數據庫。 本篇內容包括:Redis 簡介(為什么快?為什么單線程?優…

安裝LibreOffice和字體

#/bin/bash # Check if user is root if [ $(id -u) ! "0" ]; thenecho "Error: You must be root to run this script, please use root"exit 1 fi echo 安裝LibreOffice cd /home/ tar -zxvf LibreOffice_6.3.3_Linux_x86-64_rpm.tar.gz cd /home/LibreO…

xtrabackup備份腳本

#!/bin/sh #備份主機 remote_ip100.0.132.160 Master_ip100.20.132.158 VIP100.20.132.166 #備份用戶 userroot #密碼 password00000 # 返回年月日 backup_datedate %F # 返回時分秒 backup_timedate %H-%M-%S # 返回今天是這周的第幾天 backup_week_daydate %u backup_ok0 #備…

Redis系列:使用Redis實現分布式鎖及相關問題

分布式鎖其實就是,控制分布式系統不同進程共同訪問共享資源的一種鎖的實現。如果不同的系統或同一個系統的不同主機之間共享了某個臨界資源,往往需要互斥來防止彼此干擾,以保證一致性。 本篇內容包括:關于 Redis 與 分布式鎖&…

Redis系列:Redis持久化機制與Redis事務

Redis 是個基于內存的數據庫。那服務一旦宕機,內存中數據必將全部丟失。所以丟失數據的恢復對于 Redis 是十分重要的,我們首先想到是可以從數據庫中恢復,但是在由 Redis 宕機時(說明相關工作正在運行)且數據量很大情況…

Java基礎:Java程序設計環境

按應用范圍,Java 可分為 3 個體系,即 Java SE、Java EE 和 Java ME。Java 語言的開發運行,也離不開 Java 語言的運行環境 JRE。沒有 JRE 的支持,Java 語言便無法運行。當然,如果還想編譯 Java 程序,搞搞小開…

負載均衡策略

輪循均衡(Round Robin):每一次來自網絡的請求輪流分配給內部中的服務器,從1至N然后重新開始。此種均衡算法適合于服務器組中的所有服務器都有相同的軟硬件配置并且平均服務請求相對均衡的情況。 我們的業務web服務器都是同樣配置…

Java基礎:Java數據類型

Java 是一種強類型語言,這就意味著必須為每一個變量聲明一種類型。在 Java 中基本數據類型共有 8 種,包括 4 種整型、2 種浮點型、1 種用于表現 Unicode 編碼的字符單元的字符類型 char 和一種用于表示真值的 boolean 類型 ~ 本篇主要記錄內容包括&#…

TCP連接的建立與終止

TCP連接的建立與終止 1.三次握手 TCP是面向連接的,無論哪一方向另一方發送數據之前,都必須先在雙方之間建立一條連接。在TCP/IP協議中,TCP協議提供可靠的連接服務,連接是通過三次握手進行初始化的。三次握手的目的是同步連接雙方…

日常問題:MySQL排序字段數據相同不能分頁問題

【問題日期】 2022-11-14 22:45:12 【問題描述】 MySQL 排序字段數據相同不能分頁問題:在分頁查詢數據時,按創建時間排序,由于數據是批量創建的,導致部分數據創建時間一樣,而此時分頁查詢數據,翻頁后出現…

數據缺失值處理

數據缺失值處理 In [1]: import pandas as pd import numpy as np from sklearn.ensemble import RandomForestRegressor,RandomForestClassifier from sklearn.preprocessing import StandardScaler from sklearn.impute import SimpleImputer In [2]: df pd.DataFrame() df[…

Java基礎:Java數字類型

Java 中包含多種運算符:算數運算符、關系運算符、邏輯運算符、位運算符。在 Math 類中,包含了各種各樣的數學函數。在編寫不同類別的程序時,可能需要的函數也不同。要生成一個隨機數,可以使用 Random 對象。 ~ 本篇主要…

Java基礎:Java流程控制

塊(即復合語句)是指由一對大括號括起來的若干條簡單的 Java 語句。塊確定了變量的作用域。一個塊可以嵌套在另一個塊中。但是,不能在嵌套的兩個塊中聲明同名的變量。使用塊(有時稱為復合語句)可以在Java程序結構中原本…