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

一、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参考模型(转)

    文章转自 https://www.cnblogs.com/evablogs/p/6709707.html 一个视频网站上不小心搜到网络知识的视频,突然以前大学的没有真正接受的知识点,一下子豁然开朗,赶 ...

  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. WebService与RMI(远程调用方式实现系统间通信)

    前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...

  2. Java关键字(一)——instanceof

    instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class 其中 obj 为一 ...

  3. 【学习笔记】深入理解async/await

    参考资料:理解javaScript中的async/await,感谢原文作者的总结,本文在理解的基础上做了一点小小的修改,主要为了加深自己的知识点掌握 学完了Promise,我们知道可以用then链来解 ...

  4. [SCOI2010] 连续攻击游戏

    题目 Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一 ...

  5. shell的编程结构体(函数、条件结构、循环结构)

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.1 shell函数 在shell中,函数可以被当作命令一样 ...

  6. 多啦爱梦~多啦A梦CSS3测试源代码

    先直接看图片,感觉一下!一直以来,我们都在说浏览器对CSS3支持度这个问题.可是,鉴于知识认识水平问题,又没几个人真正了解CSS3是什么东西,和它在网站显示上的重要性.现在好了,日本某位大神写了个CS ...

  7. Java 雇员管理小练习(理解面向对象编程)

    在学习集合框架的时候,初学者很容易练习到学生管理系统.雇员管理体统等练习题.在学习集合框架之前,基本上Java基本语法都学完了,集合框架也从侧面的检验对前面学习的理解.下面用一个曾经做过的练习题,回顾 ...

  8. 【Java深入研究】2、JDK 1.8 LinkedList源码解析

    LinkedList是一个实现了List接口和Deque接口的双端链表. 有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链表头部,这取决于看索引更靠近哪一端. LinkedList不 ...

  9. Python 练习:使用 # 号输出长方形

    使用 # 号输出一个长方形,用户可以指定宽和高 height = int(input("please input height: "))width = int(input(&quo ...

  10. Fragment 中 ListView绑定ContextMenu

    package com.example.administrator.imbobo.controller.fragment; import android.content.BroadcastReceiv ...