当前位置: 首页 > 编程日记 > 正文

osi七层网络层_OSI层速成课程

osi七层网络层

介绍 (Introduction)

Have you ever wondered how data is sent through the network from one machine to another? If yes, then the Open System Interconnected model is what you are looking for.

您是否曾经想过如何通过网络将数据从一台机器发送到另一台机器? 如果是,那么您正在寻找开放系统互连模型。

The OSI model is used to help standardize and characterize how data should flow from sender to receiver without taking into consideration the underlying internal structure of the endpoint (sender, receiver).

OSI模型用于帮助标准化和表征数据应如何从发送方流向接收方,而无需考虑端点(发送方,接收方)的内部结构。

The organisation that came up with this model is the International Standardisation Organisation and hence this model is formally referred to as ISO - OSI.

提出此模型的组织国际标准化组织 ,因此该模型正式称为ISO-OSI

建筑 (Architecture)

As in the figure below the model divides the network into 7 layers. Data communication in the OSI model starts with the top layer ( Application Layer ) of the stack at the sending side, travels down the stack to the sender’s lowest layer ( Physical Layer ), then traverses the physical network connection to the bottom layer on the receiving side, and up its OSI model stack.

如下图所示,模型将网络分为7层 。 OSI模型中的数据通信从发送方的堆栈的顶层(应用程序层)开始,向下沿堆栈行进到发送方的最低层(物理层),然后遍历物理网络连接到接收方的底层方面,以及其OSI模型堆栈。

We go for a layered approach because it is easy to design independent layers with dedicated functions which interact with each other as compared to a single complex model.

我们之所以采用分层方法,是因为与单个复杂模型相比,设计具有相互交互的专用功能的独立层很容易。

重要观察 (Important Observations)

  • End-to-end layers: In the diagram above, you would notice that the upper layers of the protocol (Application - Transport), the sender’s and receiver’s layers are directly connected via arrows. This is because these layers are not aware of intermediate devices that are used to transport data (such as switches and routers). These layers appear to communicate directly with each other.

    端到端层:在上图中,您会注意到协议的上层(应用程序-传输),发送者和接收者的层通过箭头直接连接。 这是因为这些层不知道用于传输数据的中间设备(例如交换机和路由器)。 这些层似乎彼此直接通信。

  • Unit of Data: In the diagram above, to the extreme left is the unit of data that is used in each of the layer. The transport layer (and the layers below it) have a unique name for the unit of data being transferred from sender to receiver.

    数据单位:在上图中,最左端是每个图层中使用的数据单位。 传输层(及其下面的层)对于从发送方到接收方的数据单位具有唯一的名称。

图层功能 (Functions of Layers)

  • Layer 1 - Physical Layer: The physical layer is the lowest of the OSI Layers and the most complex. This is because of the underlying hardware technologies used. The function of this layer is to define how the bit stream will be transmitted rather than the logical data packet. It deals with defining which frequency will the bit be transmitted on, what kind of modulation will be used, how the bits will be grouped and other low lying physical parameters needed for transmission of bits.

    第1层-物理层:物理层是OSI层中最低的,也是最复杂的。 这是因为所使用的基础硬件技术。 该层的功能是定义如何传输位流,而不是逻辑数据包。 它涉及定义将在哪个频率上传输比特,将使用哪种调制方式,如何对比特进行分组以及传输比特所需的其他低层物理参数。

  • Layer 2 - Data Link Layer: The data link layer is responsible for transferring data to adjacent devices on the same Local Area Network (LAN). This layer also has provisions to make sure that error-free data is being passed on to the higher layers from the physical layer. Hence, it contains error detection and correction mechanisms to ensure the integrity of data is maintained.

    第2层-数据链路层:数据链路层负责将数据传输到同一局域网(LAN)上的相邻设备。 该层还提供了确保无错误数据从物理层传递到更高层的规定。 因此,它包含错误检测和纠正机制,以确保维持数据的完整性。

  • Layer 3 - Network Layer: The network layer is responsible for forwarding packets to other networks. Usually a network is divided into multiple subnets and the network layer with the help of routers forwards packets between such networks to establish a Wide Area Network (WAN).

    第3层-网络层:网络层负责将数据包转发到其他网络。 通常,一个网络被分为多个子网,网络层借助路由器在这些网络之间转发数据包以建立广域网(WAN)。

  • Layer 4 - Transport Layer: The transport layer ensures that messages are delivered error-free, in sequence, and with no losses or duplication. It relieves the higher layer protocols from any concern with the transfer of data between them and their peers.

    第4层-传输层:传输层可确保按顺序无错误地传递消息,并且不会丢失或重复。 它使高层协议不必担心它们与对等方之间的数据传输。

  • Layer 5 - Session Layer: The session layer allows session establishment between processes running on different stations.

    第5层-会话层:会话层允许在不同工作站上运行的进程之间建立会话。

  • Layer 6 - Presentation Layer: The presentation layer formats the data to be presented to the application layer.

    第6层-表示层:表示层格式化要呈现给应用程序层的数据。

  • Layer 7 - Application Layer: The application layer serves as the window for users and application processes to access network services.

    第7层-应用程序层:应用程序层充当用户和应用程序进程访问网络服务的窗口。

翻译自: https://www.freecodecamp.org/news/a-crash-course-in-osi-layers/

osi七层网络层

相关文章:

KMP算法求回溯数组的步骤

KMP算法到底是什么原理就不说了,各种资料上讲的明明白白,下面我就如何用代码来实现做一下说明和记录. KMP的核心思想就是,主串不回溯,只模式串回溯。而模式串匹配到第几位时失配,要回溯多少,由模式串本身来…

【.Net】vs2017 自带发布工具 ClickOnce发布包遇到的问题

一、遇到的问题 在安装了vs2017 社区版(Community)之后 想打包安装程序(winform) 还是想用之前的 installshield来打包 发现居然打不了,在官网查了 installshield不支持社区版(Community)&…

windows平台,开发环境变量配置

1.打开我的电脑--属性--高级--环境变量 JAVA配置环境变量变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 变量名:Path 变…

如何编写可测试的代码 哈利勒的方法论

Understanding how to write testable code is one of the biggest frustrations I had when I finished school and started working at my first real-world job. 当我完成学业并开始从事第一份现实世界的工作时,了解如何编写可测试的代码是我最大的挫败之一。 T…

【Java入门提高篇】Day6 Java内部类——成员内部类

内部类是什么,简单来说,就是定义在类内部的类(一本正经的说着废话)。 一个正经的内部类是长这样的: public class Outer {class Inner{} } 这是为了演示而写的类,没有什么luan用,可以看到Inner类…

POJ 1001(高精度乘法 java的2种解法)

方法1: import java.math.BigDecimal; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);while(sc.hasNext()){String d sc.next();int z sc.nextInt();BigDecimal bd new BigDecimal(d);BigDeci…

Java编写的电梯模拟系统《结对作业》

作业代码:https://coding.net/u/liyi175/p/Dianti/git 伙伴成员:李伊 http://home.cnblogs.com/u/Yililove/ 对于这次作业,我刚开始一点思绪都没有,在老师安排了结对伙伴李伊之后,我的搭档问我,我们需要什么…

HTML属性说明

HTML elements can have attributes, which contain additional information about the element.HTML元素可以具有属性,其中包含有关该元素的其他信息。 HTML attributes generally come in name-value pairs, and always go in the opening tag of an element. Th…

css中的选择器

1.在html中引入css的方法&#xff1a;四种方式: a.行内式(也称内联式) 如: <h1 style"color:red;test</h1> b.内嵌式 <style type"text/css"> h1{ color:red; font-size: 10.5pt; font-family: Calibri, sans-serif; line-height: normal; widow…

javascript的call()方法与apply()方法的理解

先看一段代码 function cat() {} cat.prototype{food:fish,say:function () {console.log(I love this.food);} };var blackCat new cat(); blackCat.say(); 这时&#xff0c;控制台输出 I love fish若此时&#xff0c;有另一个对象 Dog{food:bones and shit}; dog对象没有say…

java排序算法(冒泡,插入,选择,快速,堆,归并,希尔,基数)

import java.util.Arrays; import java.util.LinkedList;/*** * * 各种排序: 冒泡&#xff0c;插入&#xff0c;选择&#xff0c;快速&#xff0c;堆&#xff0c;归并&#xff0c;希尔&#xff0c;基数*/ public class Sorts {//1. 冒泡&#xff1a;//时间复杂度:n(n-1)/2O(n^2…

边界填充算法讲解_边界填充算法

边界填充算法讲解Boundary fill is the algorithm used frequently in computer graphics to fill a desired color inside a closed polygon having the same boundary color for all of its sides.边界填充是在计算机图形学中经常使用的算法&#xff0c;用于在其所有边都具有…

使用Git管理源代码

git是个了不起但却复杂的源代码管理系统。它能支持复杂的任务&#xff0c;却因此经常被认为太过复杂而不适用于简单的日常工作。让我们诚实一记吧&#xff1a;Git是复杂的&#xff0c;我们不要装作它不是。但我仍然会试图教会你用&#xff08;我的&#xff09;基本的Git和远程代…

[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建

最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下&#xff0c;经过1天的研究&#xff0c;部署基本成功&#xff0c;可能有些细节还未注意到&#xff0c;现在把心得分享一下。过程比预期的要简单 身为.Net程序员&#xff0c;这个问题的第一步可能就是如何搭建一个Linux环境来测…

Sequence point 中文

摘自维基百科&#xff1a; In C[4] and C,[5] sequence points occur in the following places. (In C, overloaded operators act like functions, and thus operators that have been overloaded introduce sequence points in the same way as function calls.) Between ev…

python中pop函数_Python中的Pop函数

python中pop函数什么是弹出功能&#xff1f; (What is the pop function?) The method pop() removes and returns the last element from a list. There is an optional parameter which is the index of the element to be removed from the list. If no index is specified…

第六周学习进度条

日期 任务 听课 编程 阅读 准备考试 日总计 周日 周一 120 300 0 0 420 100 周二 0 120 0 0 120 周三 0 0 0 0 0 周四 0 0 0 0 0 周五 0 0 0 0 0 周六 0 120 100 0 …

1071. 小赌怡情(15)

常言道“小赌怡情”。这是一个很简单的小游戏&#xff1a;首先由计算机给出第一个整数&#xff1b;然后玩家下注赌第二个整数将会比第一个数大还是小&#xff1b;玩家下注t个筹码后&#xff0c;计算机给出第二个数。若玩家猜对了&#xff0c;则系统奖励玩家t个筹码&#xff1b;…

关于年长程序员的5个误传

原文链接&#xff1a;http://kb.cnblogs.com/page/150932/ 英文原文&#xff1a;Five Pervasive Myths About Older Software Developers 最近我刚过完40岁生日&#xff0c;一个朋友向我开玩笑地说“嘿&#xff0c;你已经老了&#xff0c;不适合做程序员了&#xff01;”我虽然…

java中getter_Java中的Getter和Setters解释了

java中getterGetters and setters are used to protect your data, particularly when creating classes. Getter和Setter用于保护数据&#xff0c;尤其是在创建类时。 For each instance variable, a getter method returns its value while a setter method sets or updates…

Loadrunner手动关联详解

Loadrunner手动关联详解 一、关联的含义&#xff1a; 关联&#xff08;correlation&#xff09;&#xff1a;在脚本回放过程中&#xff0c;客户端发出请求&#xff0c;通过关联函数所定义的左右边界值&#xff08;也就是关联规则&#xff09;&#xff0c;在服务器所响应的内容中…

解决Visual Studio禁止使用strlen函数的问题

问题描述&#xff1a; 在学习C的复制构造函数以及复制赋值运算符的重载时&#xff0c;需要用到使用C风格的字符串作为引入&#xff0c;由于我用的是VS2015&#xff08;社区版&#xff09;&#xff0c;在编译时出错。编译器提醒strcpy函数是不安全的&#xff0c;建议改用strlen_…

求整型数组所有子串的和中的最大值

#include <iostream> using namespace std;const int MIN_INT -2147483647;int maxSum(const int *arr, int len){int my_max MIN_INT;int tmp 0;for(int i 0; i < len; i){//从头到尾。。tmp arr[i];//遍历相加。if(my_max < tmp){//更新my_maxmy_max tmp;}…

c语言中的if语句_If ... C中的其他语句解释

c语言中的if语句Conditional code flow is the ability to change the way a piece of code behaves based on certain conditions. In such situations you can use if statements.条件代码流是根据某些条件更改一段代码的行为的能力。 在这种情况下&#xff0c;可以使用if语句…

设计模式之笔记--装饰模式(Decorator)

装饰模式&#xff08;Decorator&#xff09; 定义 装饰模式&#xff08;Decorator&#xff09;&#xff0c;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更为灵活。 类图 描述 Component&#xff1a;被装饰者和装饰者共有的基…

整型数组负数放左面,其他放右面,要求时空复杂度:O(n), O(1)。

例如&#xff1a;处理前&#xff1a;{5 -3 6 -7 -6 1 8 -4 0 0}&#xff0c;处理后&#xff1a;{-3 -7 -6 -4 5 6 1 8 0 0}. #include <iostream> #include <algorithm> using namespace std;const int LEN 10; void printInt(int c){cout<<c<<"…

[bzoj] 1176 Mokia || CDQ分治

原题 给出WW的矩阵&#xff08;S没有用&#xff0c;题目有误&#xff09;&#xff0c;给出无限次操作&#xff0c;每次操作的含义为&#xff1a; 输入1:你需要把(x,y)(第x行第y列)的格子权值增加a 输入2:你需要求出以左下角为(x1,y1),右上角为(x2,y2)的矩阵内所有格子的权值和,…

sql子查询示例_SQL更新查询示例说明

sql子查询示例In this article, were going to learn how to use the SQL update statement - what it is, what it can do, and what you need to be aware of before using it.在本文中&#xff0c;我们将学习如何使用SQL更新语句-它是什么&#xff0c;它可以做什么以及在使用…

keepalived+nginx安装

安装keepalivednginx做为公司服务器前端高可用反向代理安装nginx 1、yum install -y pcre pcre-devel gcc-c zlib zlib-devel openssl openssl-devel 2、cd /usr/local/soft 3、wget http://nginx.org/download/nginx-1.12.2.tar.gz 4、tar -zxvf nginx-1.12.2.tar.gz 5、cd ng…

Nexus Repository Manager 3.0 发布

著名仓库管理工具Nexus&#xff0c;在2016年4月6日发布3.0版本&#xff08;包括OSS版&#xff09;&#xff0c;相较2.*版本有很大的改变&#xff1a; 1. 从底层重构&#xff0c;从而提高性能&#xff0c;增强扩展能力&#xff0c;并改善用户体验 2. 升级界面&#xff0c;增加更…