文章转自 https://www.cnblogs.com/evablogs/p/6709707.html

一个视频网站上不小心搜到网络知识的视频,突然以前大学的没有真正接受的知识点,一下子豁然开朗,赶紧整理了下笔记。

一、OSI参考模型

自下而上:物理层(物理介质,比特流)、数据链路层(网卡、交换机)、网络层(IP协议)、传输层(TCP/UDP协议)、会话层(创建/建立/断开连接)、表示层(翻译,编码,压缩,加密)、应用层(HTTP协议)

简化为TCP/IP模型:网络层(物理层、数据链路层、网络层)、传输层,会话层,应用层(表示层,应用层)

1.物理层

主要设备:中继器、集线器

物理层中双绞线的传输距离是有限的,信号会缩减,影响数据的传输。为了使传输的数据能够准确的传输,中继器是可以放大传输信号,保持原数据的准确。

比如,双绞线的传输距离是100m,而超过100m则信号会衰减

在两台pc中间加上一个中继器,则相当于两台pc到中继器的距离均为100m,有助于信号的增强。

集线器和中继器的区别是:中继器只有两个以太网接口,而集线器相当于多个端口的中继器。

知识点:冲突域、广播域

冲突域:当两个比特流在同一介质上同时传输就是产生冲突,冲突域是指发送数据给一个单一目标(单播)所影响的范围

广播域:发送数据给一个不明确的目标所影响的范围

集线器有一个冲突域和一个广播域

IP地址192.168.1.1ping1.2:

>ping 192.168.1.2(ping命令所用的协议有ICMP/ARP协议)

返回数据说明两者是相通的,可以发送信息

当1.1想向1.2发送数据时,发送报文时,将包发送到集线器,集线器将包广播发送给所有连接在集线器上的其他端口,当1.3,1.4发现该包不是发送给他们的,就将拒绝接收,而1.2发现是发送给它时,就做出应答,返回一个应答包,应答包先发到集线器,集线器又进行广播,然后再发送到1.1上。

但是!!数据包向所有的端口发送,不安全,且所有的机器共享带宽,更容易产生拥塞,所以不能用于较大的网络

集线器是物理设备,不是智能的,所以不具备学习能力,故每次发送数据只能使用广播的方式。

2.数据链路层

功能:完成网络之间相邻结点的可靠传输,通过Mac地址负责主机之间的数据的可靠传输。

物理层传输的是比特流,而数据链路层传输的是帧。

主要设备:网卡、网桥、交换机

网卡:网络适配器,连接计算机与网络的硬件设备,整理计算机发往网线的数据,将数据分解成大小的数据包之后向网络上发送

Mac地址与IP地址的区别:

Mac地址:是厂商烧录在只读存储器上的,出厂厂商的唯一标识,且不可更改

IP地址:网络地址,相当于门牌号

查看网卡的Mac地址(十六进制)命令:

ipconfig /all

Pysical Address :xx-xx-xx-xx-xx-xx

网桥:将两个LAN链接在一起,变成一个LAN,并按Mac地址转发;分割冲突域;

例如:如何分割冲突域

每个PC机网卡的Mac地址:AA-AA-AA-AA-AA-AA、BB....

网桥更具Mac地址学习能力,目标Mac地址转发

IP地址192.168.1.1ping1.2:

>ping 192.168.1.2(ping命令所用的协议有ICMP/ARP地址解析协议)

过程:

1.1第一次发送ICMP数据包到集线器,集线器发给1.2和网桥,网桥接收到数据包后(工作原理是根据原Mac地址(1.1的Mac地址)学习,目标Mac地址(1.2Mac地址)进行转发,Eth0/1端口学到Mac地址),学到1.1Mac地址,网桥把包传输到下一个集线器,集线器会把包发给1.3,1.4,这两个会扔掉不属于它们的包,1.2接收到后会返回数据给集线器,集线器发送给网桥,这时网桥会学到1.2的Mac地址,由于网桥已经记录了1.1的Mac地址,则会直接发送给1.1而不会又进行广播发给1.3和1.4。

通过第一次发送数据包和接受目标的应答,网桥的每个端口都将学到也就是记录到两个Mac地址,原Mac地址和目标的Mac地址。

交换机:工作过程和网桥类似

交换机有三种转发方式:

(1)对已知单播帧只往对应端口进行转发

(2)对未知单播帧,即交换机还没有学习到的Mac进行广播转发,所有端口进行广播

(3)对广播帧或组播帧进行广播

IP地址192.168.1.1ping1.2:

>ping 192.168.1.2(ping命令所用的协议有ICMP/ARP地址解析协议)

工作过程:

工作过程与网桥一致,交换机的端口通过原Mac地址发送数据学到Mac地址,接收应答的数据包学到目标Mac地址,最终每个端口都学到Mac地址记录在交换机Mac地址表中

可以通过命令查找交换机的Mac地址表:

show mac-address-tables

交换机有几个端口就有几个冲突域,且只有一个广播域

交换机和网桥的区别:

网桥只有两个端口,交换机至少有四个端口也有8个、16个等端口,网桥基于软件转发,交换机基于硬件转发,可以通过命令查看Mac地址表,而网桥不行。且交换机的造价比网桥低。

交换机分类:

(1)传统二层交换机

(2)VLAN交换机,有网管功能

(3)三层交换机:VLAN交换机+路由器,属于网络层的设备,而不是数据链路层的设备

3.网络层

完成网络中主机间的报文传输(物理层比特流,数据链路层帧),网络层识别的地址是IP地址。

涉及的协议:IP/IPX

主要设备:路由器

路由器:通信中转站,例如快递的中转站,将不同网络和网段进行数据翻译,使其可以相互理解,构成一个大的网络。

IP地址192.168.1.1ping1.2:

>ping 192.168.1.2

1.2与1.1属于同一个网段,可以接收数据和应答

IP地址192.168.1.1ping2.2:

>ping 192.168.2.2

显示超时,没有返回任何数据,两者不属于同一个网段,不能通信

如何使两者进行通信?有两种方法:

(1)添加一个路由器:

工作原理:

路由器之所以可以翻译不同网段之间的通信是因为其本身具备丰富的协议,可以连接不同的网段和网络。路由器可以判断网络地址以及选择路径的功能。

(2)修改子网掩码,这点后面IP地址再补充

物理层、数据链路层、网络层之间的区别:

4.传输层

是整个网络关键的部分,是实现两个用户进程间端到端的可靠通信,处理数据包的错误等传输问题。是向下通信服务最高层,向上用户功能最底层。即向网络层提供服务,向会话层提供独立于网络层的传送服务和可靠的透明数据传输。

主要协议:TCP传输控制协议/UDP用户数据报协议,涉及服务使用的端口号,主机根据端口号识别服务,区分会话。

TCP协议:解决数据是否完整传输,是否正确

UDP协议:UDP协议实现了端口,从而使数据包传送到IP地址的基础上,还可以进一步将其送到具体的某一个端口上。

UDP传输与IP传输相似,但IP协议是ip地址之间的通信,但通信需要多个通信通道,将每个通道分配给每一个进程使用,UDP则是实现端口的通信。

服务与以及相对应的端口文件:C:\Windows\System32\drivers\etc\servies

例如:www服务端口号为80

5.会话层:主要功能是在两个结点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。

例如:你通过秘书与对方建立联系,则你发出建立联系的请求相当于一个会话,秘书相当于传输层,然后秘书进行拨号联系对方,当对方接通对话,则会话的连接建立。

6.表示层:主要负责数据格式的转换,即翻译,压缩与解压缩,加密与解密。

例如:你想下午两点出发去上海,你对上海的朋友说下午两点过来,朋友的理解却是你下午两点到上海,两个人两种理解,而表示层则是进行格式转换和信息的表示。

7.应用层:应用层是网络体系中最高的一层,也是唯一面向用户的一层,也可视为为用户提供常用的应用程序,例如电子邮件,上网浏览等网络服务都是应用层程序。

对于这三层的定义还是不能理解,上网搜了以上比较通俗的解释。

应用层的主要协议:HTTP,HTTPS,FTP(上传,下载),SMTP(邮件)

HTTP协议:超文本传输协议,包括url地址,域名,源地址,发送的数据方法(Get,Post等),浏览器信息等

OSI模型的总结

OSI模型上层(会话层,表示层,应用层)处理用户接口、数据格式、应用访问。

OSI模型下层(物理层,数据链路层,网络层,传输层)处理数据在网络介质中的传送。

二、数据封装过程

封装:

应用层:发送数据---------表示层:数据格式转换,加密,压缩等----------会话层:建立连接-----------传输层:差错校验,流量控制,TCP/UDP传输,添加端口号信息(源端口,目标端口)+数据------------网络层:分组,数据包(IP地址+数据)--------数据链路层:帧(帧头(帧头包含Mac地址)+帧数据)------------物理层:比特流(0,1)

解封装:

物理层:比特流(0,1)---------数据链路层:帧(帧头(帧头包含Mac地址)+帧数据)--------网络层:分组,数据包(IP地址+数据)-------传输层:差错校验,流量控制等;UDP/TCP(传送和接收端口信息+数据)---------会话层:建立连接-----------表示层:数据格式转换,解密,解压缩等-----------应用层:接收的数据

图解:(网上找的)

纯属个人学习笔记,主要是求学之路上的知识点积累记载,有从其他博主精彩文章中学到的知识点,加以整理,小小菜鸟,大神请勿喷。
 

理解OSI参考模型(转)的更多相关文章

  1. 理解OSI参考模型

    在一个视频网站上不小心搜到网络知识的视频,突然以前大学的没有真正接受的知识点,一下子豁然开朗,赶紧整理了下笔记. 一.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机). ...

  2. 第1章 1.7计算机网络概述--理解OSI参考模型分层思想

    OSI七层模型,知识参考理论. 分层标准的好处: 1.不同的硬件生产商生产的硬件产品,连通后就可以用了,有助于互联网发展. 2.分层,分成不同的模块,某一层的变化,不会影响其他层.如:IPv4改为IP ...

  3. 就该这样理解 OSI 七层参考模型、浅谈不同局域网之间的通信

    简介 说到OSI参考模型,理解网络与网络之间的关系,不说太深入难以理解的东西,只求能最大程度上理解与使用. 参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为O ...

  4. 【转】TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  5. TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  6. TCP/IP四层模型与OSI参考模型

    TCP/IP四层模型: 1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序.计算机中对应的网络接口卡 2.网络层(互联网层):处理分组在网络中的活动,比如分组的选路. 3.运输层:主要 ...

  7. osi参考模型(开放系统互连参考模型)

    自互联网诞生以来,随着网络飞速发展,用户迫切要求能在不同体系结构的网络空间交换信息,使得不同的网络能够互联起来. 国际化标准组织(International Organization for Stan ...

  8. 计算机通信协议之OSI参考模型

    OSI参考模型 在OSI参考模型之前人类对计算机结构的研究就已经进行了太多的讨论,最终通过了作为通信协议设计指标的OSI参考模型.这个协议将通信协议中必要的功能分成了七个部分.通过这些分层使得那些比较 ...

  9. OSI七层协议模型及OSI参考模型中的数据封装过程

    转载自:http://blog.csdn.net/qq_14935437/article/details/71081546 OSI模型,即开放式通信系统互联参考模型(Open System Inter ...

随机推荐

  1. leetcode — binary-tree-maximum-path-sum

    /** * * Source : https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/ * * * Given a binary ...

  2. 五一之起一台服务器玩玩-u盘安装centos

    之前淘宝买的300块钱笔记本,就是拿来练手的,但是命令基本都知道了,不来练手,学习下去就没有动力了啊. 对于新的笔记本,我们怎么安装系统呢?能去官网就去官网,你绝对没有体验过睡一晚早上起来服务器就被黑 ...

  3. 痞子衡嵌入式:ARM Cortex-M内核那些事(4)- 性能指标

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M性能指标. 1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不 ...

  4. JDK动态代理深入理解分析并手写简易JDK动态代理(下)

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-05/27.html 作者:夜月归途 出处:http://www.guitu ...

  5. ROS笔记2 构建一个package

    构建package catkin_make 可以理解为一个集成了CMake和make的命令行工具 通常的cmake构建如下 # In a CMake project $ mkdir build $ c ...

  6. iOS 字典实现原理

    在目前的开发中,NSDictionary是经常被使用,不过很少人会研究字典NSDictionary底层的实现,下面我们来一起看一下NSDictionary的实现原理. 一.字典原理 字典通过使用- ( ...

  7. Mac终端工具item2实现覆盖在屏幕上透明效果

    1.去官网安装item2: https://www.iterm2.com/downloads.html 2.打开preferences 3.到keys配置: 4.点击上图展示的Create a Ded ...

  8. sql server 2008R2 导出insert 语句(转载)

    转载来源: https://blog.csdn.net/zengcong2013/article/details/78648988. sql server 2008R2数据库导出表里所有数据成inse ...

  9. Linux下批量添加用户

    添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个.上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加, 必然要找一种简便的创建大量用户的方法. ...

  10. win10 git bash 闪退

    使用ghost重装了win10 专业版后.安装git,尝试重装了n个版本的git,右键git bash here 直接闪退,直接进入安装目录打开git-bash.exe依旧闪退, git右键点击Git ...