文章转自 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. 基于 Zookeeper 的分布式锁实现

    1. 背景 最近在学习 Zookeeper,在刚开始接触 Zookeeper 的时候,完全不知道 Zookeeper 有什么用.且很多资料都是将 Zookeeper 描述成一个“类 Unix/Linu ...

  2. 百度图片objURL解密vb.net版

    Function Baidtu_Uncomplie(k As String) As String Dim c = {"_z2C$q", "_z&e3B" ...

  3. mysql 的优化

    =>记录慢速查询 在一个 SQL 服务器中,数据表都是保存在磁盘上的.索引为服务器提供了一种在表中查找特定数据行的方法,而不用搜索整个表.当必须要搜索整个表时,就称为表扫描.通常 来说,您可能只 ...

  4. Android项目刮刮奖详解扩展篇——开源刮刮奖View的制作

    Android项目刮刮奖详解(四) 前言 我们已经成功实现了刮刮奖的功能了,本期是扩展篇,我们把这个View直接定义成开源控件,发布到JitPack上,以后有需要也可以直接使用,关于自定义控件的知识, ...

  5. fork/join概述

    Fork/Join是java 7 解决并发问题的解决方案. 是 java内部并行框架.核心思想分别为拆分任务和结果合并,在核心思想外,为了提高cpu多核的利用率,设计了工作窃取算法,并将工作队列设计为 ...

  6. 一种递推组合数前缀和的Trick

    记录一下一种推组合数前缀和的方法 Trick 设\(\sum_{i = 0}^m C_n^i = S(n, m)\) \(S\)是可以递推的 \(S(n, m + 1) = S(n, m) + C_{ ...

  7. 基于 CODING 的 Spring Boot 持续集成项目

    本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...

  8. 将Dynamics 365中的用户及其角色、角色导出到Excel中

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复240或者20161204可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  9. 驰骋工作流引擎JFlow与activiti的对比之4种包含多实例的模式

    1. 无同步的多实例(MIwithout) 在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步. 例子:比如用户购买了N本书,于是后续的支付账单.更新客户可以以本书为单位各自 ...

  10. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...