zoukankan      html  css  js  c++  java
  • osi七层

    引子

    须知一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的)

    如果你要跟别人一起玩,那你就需要上网了,什么是互联网?

    互联网的核心就是由一堆协议组成,协议就是标准,比如全世界人通信的标准是英语

    如果把计算机比作人,互联网协议就是计算机界的英语。所有的计算机都学会了互联网协议,那所有的计算机都就可以按照统一的标准去收发信息从而完成通信了。

    人们按照分工不同把互联网协议从逻辑上划分了层级,

    下面是常见的几种模型:

    可以看到基本都是由OSI七层模型进行提炼的。下面时网上找到的一个比较关于OSI模型说明比较全的图

     常用内容:

    • 每一层中常用的设备及协议
      • 物理层
        • 设备:网卡,网线,集线器,中继器,调制解调器
      • 数据链路层
        • 设备:网桥,交换机
      • 网络层
        • 设备:路由器
      • 网关工作在第四层传输层及其以上
    • 集线器是物理层设备,采用广播的形式来传输信息。
    • 交换机就是用来进行报文交换的机器。多为链路层设备(二层交换机),能够进行地址学习,采用存储转发的形式来交换报文。

    •  路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率。 

    OSI各层对应的设备—–集线器、交换机、路由器、中继器及网关、网桥之间的区别 :

    一、集线器
    
    集线器也称HUB,工作在OSI七层结构的第一层物理层,属于共享型设备,接收数据广播发出,在局域网内一般都是星型连接拓扑结构,每台工作站都连接到集线器上。由于集线器的带宽共享特性导致网络利用效率极低,一般在大中型的网络中不会使用到集线器。现在的集线器基本都是全双工模式,市面上常见的集线器传输速率普遍都为100Mbps。
    
    二、交换机
    
    交换机顾名思义以交换为主要功能,工作在OSI第二层(数据链路层),根据MAC地址进行数据转发。交换机的每一个端口都属于一个冲突域,而集线器所有端口属于一个冲突域。交换机通过分析Ethernet包的包头信息(其中包含了源MAC地址、目标MAC地址、信息长度等),取得目标MAC地址后,查找交换机中存储的地址对照表(MAC地址对应的端口),确认具有此MAC地址的网卡连接在哪个端口上,然后将信包送到对应端口,有效的抑制IP广播风暴。并且信息包处于并行状态,效率较高。
    
    交换机的转发延迟非常小,主要的得益于其硬件设计机理非常高效,为了支持各端口的最大数据传输速率,交换机内部转发信包的背板带宽都必须远大于端口带宽,具有强大的整体吞吐率,才能为每台工作站提供更高的带宽和更高的网络利用率,可以满足大型网络环境大量数据并行处理 的要求。
    
    三、路由器
    
    路由器跟集线器和交换机不同,是工作在OSI的第三层(网络层),根据IP进行寻址转发数据包。路由器是一种可以连接多个网络或网段的网络设备,能将不同网络或网段之间(比如局域网——大网)的数据信息进行转换,并为信包传输分配最合适的路径,使它们之间能够进行数据传输,从而构成一个更大的网络。
    
    路由器具有最主要的两个功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
    
    四、中继器
    
    中继器(Repeater)工作于OSI的第一层(物理层),中继器是最简单的网络互联设备,连接同一个网络的两个或多个网段,主要完成物理层的功能,负责在两个网络节点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此从而增加信号传输的距离,延长网络的长度和覆盖区域,支持远距离的通信。
    
    一般来说,中继器两端的网络部分是网段,而不是子网。中继器只将任何电缆段上的数据发送到另一段电缆上,并不管数据中是否有错误数据或不适于网段的数据。大家最常接触的是网络中继器,在通讯上还有微波中继器、激光中继器、红外中继器等等,机理类似,触类旁通。
    
    五、网关
    
    网关(Gateway)又叫协议转换器,网关的概念实际上跟上面的设备型不是一类问题,但是为了方便参考还是放到这里一并介绍。
    
    网关是一种复杂的网络连接设备,可以支持不同协议之间的转换,实现不同协议网络之间的互连。网关具有对不兼容的高层协议进行转换的能力,为了实现异构设备之间的通信,网关需要对不同的链路层、专用会话层、表示层和应用层协议进行翻译和转换。所以网关兼有路由器、网桥、中继器的特性。
    
    若要使两个完全不同的网络(异构网)连接在一起,一般使用网关,在Internet中两个网络也要通过一台称为网关的计算机实现互联。这台计算机能根据用户通信目标计算机的IP地址,决定是否将用户发出的信息送出本地网络,同时,它还将外界发送给属于本地网络计算机的信息接收过来,它是一个网络与另一个网络相联的通道。为了使TCP/IP协议能够寻址,该通道被赋予一个IP地址,这个IP地址称为网关地址。
    
    所以,网关的作用就是将两个使用不同协议的网络段连接在一起的设备,对两 个网络段中的使用不同传输协议的数据进行互相的翻译转换。在互连设备中,由于协议转换的复杂性,一般只能进行一对一的转换,或是少数几种特定应用协议的转换。
    
    六、网桥
    
    网桥和交换机一样都是工作在OSI模型的第二层(数据链路层),可以看成是一个二层路由器(真正的路由器是工作在网络层,根据IP地址进行信包转发)。网桥可有效的将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,使本地通信限制在本网段内,并转发相应的信号至另一网段,网桥通常用于联接数量不多的、同一类型的网段。
    View Code

     详细的设备工作原理内容会在每一层中进行说明

    注:网络中的传输中是按比特计算的,比如:网络交换机带宽分为:10 Mb/s、100 Mb/s、1000 Mb/s、10000 Mb/s(1Gb/s)。Mb/s换算MB/s:1 Mb/s = 0.125 MB/s。

    物理层

    传输数据单元:比特(Bit)

    典型的设备网线,集线器,中继器,调制解调器

    介绍

    利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。物理层关系的是信号,接口和传输介质。

    典型设备介绍

    网卡

     网络接口控制器(英语:network interface controller,NIC),又称网络接口控制器,网络适配器(network adapter),网卡(network interface card),或局域网接收器(LAN adapter),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第1层。它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。这是因为电气电子工程师协会(IEEE)负责为网络接口控制器销售商分配唯一的MAC地址。

    ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

    中继器(repeater)

    中继器是位于第1层(OSI参考模型的物理层)的网络设备。当数据离开源在网络上传送时,它是转换为能够沿着网络介质传输的电脉冲或光脉冲的——这些脉冲称为信号(signal)。当信号离开发送工作站时,信号是规划的,而且很容易辨认出来。但是,当信号沿着网络介质进行传送时, 随着经过的线缆越来越长,信号就会变得越来越弱,越来越差。中继器的目的是在比特级别对网络信号进行再生【放大信号】和重定时,从而使得它们能够在网络上传输更长的距离。

    集线器(hub)

    集线器的目的是对网络信号进行再生和重定时。它的特性与中继器很相似(被称为多端口中继器multiport repeater)。HUB是网络中各个设备的通用连接点,它通常用于连接LAN的分段。HUB含有多个端口。每一个分组到达某个端口时,都会被复制到其他所有端口,以便所有的LAN分段都能看见所有的分组。集线器并不认识信号、地址或数据中任何信息模式。
    中继器与集线器的区别在于连接设备的线缆的数量。一个中继器通常只有两个端口,而一个集线器通常有4至20个或更多的端口。

    集线器能够创建于总线方式相同的争用环境,当一台设备进行传输时,集线器上其他的设备都会监听它,并且争取下一次的传输权利。因此,连接在集线器上的设备将平分该集线器所拥有的带宽。并且在同一集线器上的设备属于同一个冲突域。

    调制解调器(Modem)

    调制解调器是Modulator(调制器)与Demodulator(解调器)的简称,中文称为调制解调器(港台称之为数据机),根据Modem的谐音,亲昵地称之为“猫”。它是在发送端通过调制将数字信号转换为模拟信号,而在接收端通过解调再将模拟信号转换为数字信号的一种装置。
    所谓调制,就是把数字信号转换成电话线上传输的模拟信号;解调,即把模拟信号转换成数字信号。合称调制解调器。调制解调器是一种计算机硬件,它能把计算机的数字信号翻译成可沿普通电话线传送的模拟信号,而这些模拟信号又可被线路另一端的另一个调制解调器接收,并译成计算机可懂的语言。这一简单过程完成了两台计算机间的通信。

    简单说

    物理层的作用就是组网,把一个个电脑用光缆、电缆、双绞线、无线电波等方式连接起来。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。

    大牛博客推荐:https://blog.csdn.net/jeffleo/article/details/53929338

    数据链路层

    传输数据单元:帧 (Frame)

    典型的设备:网桥,交换机

    介绍

    数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。

    物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。
    数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点(点到点 point to point)所经过的传输途径。
    当采用复用技术时,一条物理链路上可以有多条数据链路。

    典型设备介绍

    网桥

    网桥(Bridge)也称为桥接器,是连接两个局域网的存储转发设备,在功能上与集线器等其他用于连接网段的设备类似,不过后者工作在物理层(OSI模型第1层)。

    网桥能够识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的数据帧转发给相连的另一个网段(network segment)。由于能够对数据帧拆包、暂存、重新打包(称为存储转发机制 store-and-forward),网桥能够连接不同技术参数传输速率的数据链路,如连接10BASE-T与100BASE-TX。
    数据帧中有一个位叫做FCS,用来通过CRC方式校验数据帧中的位。网桥可以检查FCS,将那些损坏的数据帧丢弃。
    网桥在向其他网段转发数据帧时会做冲突检测控制。
    网桥还能通过地址自学机制和过滤功能控制网络流量,具有OSI第2层网络交换机功能。这称为transparent bridge,由DEC在1980年代发明。[1]其机制是网桥内部有一个数据库,最初没有数据。当网桥从一个网段收到一个数据帧,就会在数据库中登记(或者更新)数据帧的源地址属于这个网段,并检查数据包的目的地址。如果目的地址在数据库中属于另外一个网段,则网桥向该网段转发该数据帧;如果目的地址在数据库中没有记录,则网桥向除了源地址所在之外的其他所有网段转发(flood)该数据帧。
    桥接器仅仅在不同网络之间有数据传输的时候才将数据转发到其他网络,不是像集线器那样对所有数据都进行广播。对于以太网,“桥接”这一术语正式的含义是指匹配IEEE 802.1D标准的设备,即“网络切换”。桥接器可以分区网段,不似集线器仍是在为同一碰撞域,所以对带宽耗损较大。因桥接器透过其内之MAC表格,让发送帧不会通过,所以其称之为数据链接层操作之网络组件,可隔离碰撞。
    若有通信频繁的机器,则应置于同区之内,否则性能将降低。

    交换机

    我们通常说的交换机是二层交换机,目前还有三层交换机,四层交换机和七层交换机具体见维基百科说明。

    二层交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

    具体可分为:

    • 直通转发(cut-through):数据包的前6个字节(MAC地址)一到达交换机,即确定目的地址,向相应端口转发该数据包。这时可能该数据包在接收端口还没有传输完。适用于网络质量好,误码率低的情形。
    • 存储转发(store-and-forward):交换机把收到的完整数据包暂存,然后检查其校验和或其他;通过检验的数据包再读取其目的地址,向相应端口转发。
    • 无帧(fragment-free):基本类似于直通转发。但对数据包的前64个字节做存储-校验-转发。因为大部分误码、碰撞(collision)发生在数据包头64字节。

    通常,交换机采取直通转发,如果误码率上升到某个阈值,再改用存储转发。

    当一台交换机安装配置好之后,其工作过程如下:

    • 收到某网段(设为A)MAC地址为X的计算机发给MAC地址为Y的计算机的数据包。交换机从而记下了MAC地址X在网段A。这称为学习(learning)。
    • 交换机还不知道MAC地址Y在哪个网段上,于是向除了A以外的所有网段转发该数据包。这称为泛洪(flooding)。
    • MAC地址Y的计算机收到该数据包,向MAC地址X发出确认包。交换机收到该包后,从而记录下MAC地址Y所在的网段。
    • 交换机向MAC地址X转发确认包。这称为转发(forwarding)。
    • 交换机收到一个数据包,查表后发现该数据包的来源地址与目的地址属于同一网段。交换机将不处理该数据包。这称为过滤(filtering)。
    • 交换机内部的MAC地址-网段查询表的每条记录采用时间戳记录最后一次访问的时间。早于某个阈值(用户可配置)的记录被清除。这称为老化(aging)。

    对于全交换(full-switch)局域网,交换机每个端口只连接一台设备,因此不会发生碰撞。交换机也不需要做过滤

    交换机的分类

    • 传统交换机(二层交换机)
      • 交换机被广泛应用于二层网络交换。中档的网管型交换机还具有VLAN划分、端口自动协商、MAC访问控制列表等功能,并提供命令行界面或图形界面控制台,供网络管理员调整参数
    • 三层交换机
      • 三层交换机则可以处理第三层网络层协议,用于连接不同网段,通过对缺省网关的查询学习来创建两个网段之间的直接连接。
      • 三层交换机具有一定的“路由”功能,但只能用于同一类型的局域网子网之间的互连。这样,三层交换机可以像二层交换机那样通过MAC地址标识数据包,也可以像传统路由器那样在两个局域网子网之间进行功能较弱的路由转发,它的路由转发不是通过软件来维护的路由表,而是通过专用的ASIC芯片处理这些转发;
    • 四层交换机  
      • 四层交换机可以处理第四层传输层协议,可以将会话与一个具体的IP地址绑定,以实现虚拟IP [1] ;
    • 七层交换器
      • 更加智能的交换器,可以充分利用频宽资源来过滤,识别和处理应用层数据转换的交换设备。

    交换机与其他设备的区别

    • 二层交换机与集线器的区别
      • 交换机与集线器不同之处是,集线器会将网络内某一用户发送的数据包传至所有已连接到集线器的电脑。而交换机则只会将数据包发送到指定目的地的电脑(透过MAC表),相对上能减少数据碰撞及数据被窃听的机会。交换机更能将同时传到的数据包分别处理,而集线器则不能。

        最大的不同之处在于:集线器的每一个接口都处于相同的冲突域,而交换机的每个接口处于一个冲突域。在性能方面尤为突出:例如在100Mb/s的以太网络中有100个用户,使用集线器,每个用户只有1Mb/s(100Mb/s/100),因为Hub是共享式的网络;而使用交换机,每个接口有100Mb/s,如果有100个接口,总带宽为100*100Mb/s(最终的带宽大小取决于输入接口的带宽;即如果输入端口只有10000M,则达到上限前,每个用户都能使用100M带宽,但一旦所有用户的总需求超过10000M,用户将在相同优先级的原则下进行带宽分配),因为交换机是独立式的网络。

    • 二层交换机与路由器的区别
      • 从时间线上看,路由器诞生于交换机之后,为了弥补交换机不能定向转发数据包的缺陷。

        “交换”一词最早出现于电话系统,指两个不同电话交换机之间语音信号的交换。故从本意上讲,交换是完成信号由交换设备入口至出口的转发的技术的统称。路由器名称中的“路由”(router)来自于路由器的转发策略--路由选择(routing)。交换机和路由器的区别有但不局限于以下几点(这里的交换机和路由器都是常规型号的):

        1.两者工作在OSI模型的不同层次上
        交换机工作在OSI模型第二层数据链路层,路由器工作在OSI模型第三层网络层。网络层提供更多的协议信息,方便路由器做出更加智能的转发选择。
        2.两者转发时所依据的对象不同
        交换机是基于MAC地址识别,实现封装数据包转发。路由器基于网络ID号(IP地址)。MAC一般被固化在网卡中,不可更改。而IP地址可以被系统或网络管理员进行设置和分配。
        3.两者转发广播数据包的域不同
        被交换机连接起来的网络属于同一广播域,广播数据包会在网络内所有网段上进行传播。连接在路由器上的网段则被分区为不同广播域,广播数据包只在各自广播域内传播而无法穿透路由器。路由器的这种子网隔离功能可以在一定程度上防止广播风暴。

    • 三层交换机与路由器的区别
      • 虽然三层交换机与路由器都具有路由转发功能,二者都运行在OSI模型的第三层,即网络层,但是二者并不等同,适用范围也不同,不会相互替代。

        1.主打功能不同
        三层交换机的主打的功能点是二层交换技术,并附加一点路由转发功能。路由器的主打功能是路由转发,并可能附加一些备用功能,比如硬件防火墙、二层交换技术等其它功能。
        2.适用环境不同
        三层交换机的路由转发功能一般都比较粗略,由于它一般用在简单的接入网的连接。它在以太网中的主要作用还是提供快速的二层数据交换,功能特点还是针对频繁的以太网数据交换。
        路由器的设计初衷就是为了跨网段连接。尽管它也能在局域网内用于连接网络,但是它的路由转发功能主要用于不同类型网络之间,例如连接局域网与广域网,连接以太网和令牌环网。它的主打功能就是路由转发,专业处理复杂路由路径和复杂的网络连接。因此,路由器的路由转发功能,比三层交换机强大得多。路由器的优势是能够选择最佳路由、负荷分担、链路备份以及与其他网络进行路由信息的交换等功能。为了能够适应各种类型的网络,路由器的接口类型非常丰富,例如以太网接口、令牌环网接口、WLAN网卡、光纤接口等等。三层交换机一般只有以太网接口。
        3.性能不同
        三层交换机的路由转发是由硬件实现的,使用专用ASIC芯片来处理路由转发。路由器的路由转发是由软件实现的,在CPU中运行一段程序来处理路由转发。
        所以三层交换机的转发效率会高过路由器,但是路由转发的功能都比较弱,由于路由转发功能是固化在硬件中的,不具有软件可扩展性,也就不会具有路由器的附加功能(例如防火墙功能)。

    常用协议介绍

    • ARQ(Automatic Repeat-reQuest )自动重传请求协议,错误纠正协议之一,包括停止等待ARQ 协议和连续ARQ 协议,错误侦测、正面确认、逾时重传与负面确认继以重传等机制。
    • CSMA/CD(Carrrier Sense Multiple Access with Collision Detection)载波监听多点接入/碰撞检测协议。总线型网络,协议的实质是载波监听和碰撞检测。载波监听即发数据前先检测总线上是否有其他计算机在发送数据,如暂时不发数据,避免碰撞。碰撞检测为计算机边发送数据边检测信道上的信号电压大小。
    • PPP(Point-to-Ponit Protocol)点对点协议面向字节,由三部分组成:一个将IP 数据报封装到串行链路的方法;一个用于建立、配置和测试数据链路连接的链路控制协议
    • LCP(Link Control Protocol) :一套网络控制协议NCP 。
    • HDLC (High-Level Data Link Control )高级数据链路控制同步网上传输数据、面向比特的数据链路层协议。
    • ATM (Asynchronous Transfer Mode )异步传递方式,建立在电路交换和分组交换的基础上的一种面向连接的快速分组交换技术。 “异步”是指将ATM 信元“异步插入”到同步的 SDH 比特流中。如同步插入则用户在每帧中所占的时隙相对位置固定不变。“同步”是指网络中各链路上的比特流都是受同一非常精确的主时钟的控制。Wi-Fi 、WiMAX 、DTM 、令牌环、以太网、FDDI 、帧中继、 GPRS 、 EVDO 、HSPA 、L2TP 、ISDN

    简单说

    在物理层中我们实现了电脑直接的互联,而传递的是“0”和“1”这样的数据,这样的数据是没有任何意义的,所以需要有对应的解读方法。

    在这里需要拓展一下以太网协议。

    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet

    ethernet规定

    • 一组电信号构成一个数据包,叫做‘帧’
    • 每一数据帧分成:报头head和数据data两部分
           head                        data                             

    head包含:(固定18个字节)

    • 发送者/源地址,6个字节
    • 接收者/目标地址,6个字节
    • 数据类型,6个字节

    data包含:(最短46字节,最长1500字节)

    • 数据包的具体内容

    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

    其实到了现在这个时候电脑直接已经可以实现通信了。在物理层中我们有网卡,而网卡是唯一的(块网卡怎么会知道另一块网卡的MAC地址,回答是有一种ARP协议,可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据包必须知道接收方的MAC地址,然后才能发送),和我们的手机号一样。而数据传输的格式也有了。ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

    虽然能够通信,但是有个问题,我们现在知道了低层的数据传输基本靠吼,也就是要广播到同网内的所有人。几十人,几百人可以,像目前全球这样的用户使用量来说就有麻烦了,会产生广播风暴

    【转】OSI第二层数据链路层介绍1
    【转】OSI第二层数据链路层介绍2

    网络层

    传输数据单元:数据包(Packet )

    典型的设备:路由器,防火墙、三层交换机

    介绍

    网络层是OSI模型中的第三层(TCP/IP模型中的网际层)。网络层提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。由于TCP/IP协议体系中的网络层功能由IP协议规定和实现,故又称IP层。

    它主要有两个功能,一个是寻址,一个是路由。

    寻址:对网络层而言使用IP地址来唯一标识互联网上的设备,网络层依靠IP地址进行相互通信(类似于数据链路层的MAC地址)

    路由:在同一个网络中的内部通信并不需要网络层设备,仅仅靠数据链路层就可以完成相互通信,对于不同的网络之间相互通信则必须借助路由器等三层设备。

    典型设备介绍

    路由器

    路由器(英语:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议(IP)。

    路由器就是连接两个以上个别网络的设备。

    由于位于两个或更多个网络的交汇处,从而可在它们之间传递分组(一种数据的组织形式)。路由器与交换机在概念上有一定重叠但也有不同:交换机泛指工作于任何网络层次的数据中继设备(尽管多指网桥),而路由器则更专注于网络层。

    路由器与交换机的差别,路由器是属于OSI第三层的产品,交换机是OSI第二层的产品。第二层的产品功能在于,将网络上各个电脑的MAC地址记在MAC地址表中,当局域网中的电脑要经过交换机去交换传递数据时,就查询交换机上的MAC地址表中的信息,将数据包发送给指定的电脑,而不会像第一层的产品(如集线器)每台在网络中的电脑都发送。而路由器除了有交换机的功能外,更拥有路由表作为发送数据包时的依据,在有多种选择的路径中选择最佳的路径。此外,并可以连接两个以上不同网段的网络,而交换机只能连接两个。并具有IP分享的功能,如:区分哪些数据包是要发送至WAN。路由表存储了(向前往)某一网络的最佳路径,该路径的“路由度量值”以及下一个(跳路由器)。参考条目路由获得这个过程的详细描述。

    尽管也有其它一些很少用到的被路由协议,但路由通常指的就是IP路由。

    常用协议介绍

    • IP (IPv4 · IPv6) (Internet Protocol) 网络之间互连的协议
    • ARP (Address Resolution Protocol) 即地址解析协议,实现通过IP 地址得 知其物理地址。
    • RARP (Reverse Address Resolution Protocol)反向地址转换协议允许局域 网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP地址。
    • ICMP (Internet Control Message Protocol )Internet 控制报文协议。它是TCP/IP 协议族的一个子协议,用于在IP 主机、路由器之间传递控制消息。
    • ICMPv6 :
    • IGMP (Internet Group Management Protocol) Internet 组管理协议,是因特 网协议家族中的一个组播协议,用于 IP 主机向任一个直接相邻的路由器报 告他们的组成员情况。
    • RIP (Router information protocol) 路由信息协议是一种在网关与主机之间交换路由选择信息的标准。
    • OSPF (Open Shortest Path Firs)开放式最短路径优先,分布式链路状态协议。
    • BGP(Border Gateway Protocol )边界网关协议,用来连接Internet 上独立系统的路由选择协议.采用路径向量路由选择协议。
    • IS-IS (Intermediate System to Intermediate System Routing Protocol )中间系统到中间系统的路由选择协议.
    • IPsec (IP Secure) “Internet 协议安全性”是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯。

    简单说

    在数据链路层的时候说过了如果所有的使用互联网的用户在同一个网段中,会产生广播风暴,所以要将用户进行划分,让他们在不同的网段中,自己在自己的小网段中吼。而互联网就是这无数的子网络构成的一个巨型网络。

    在网络层中引入了一套新的地址,让我们能够区分不同的网段。这套地址就叫做“网络地址”,简称“网址”。

    于是,”网络层”出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。

    网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。

    在这一层中有一个规定网络地址的协议,叫做IP协议,它所定义的地址,就被称为IP地址。目前,广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成。因为IPv4的地址已经不够用了,所以现在推广IPv6,据说能给撒哈拉的每一粒沙子都有一个自己的ip地址。虽然听起来很厉害,但是由于IPv4普及时间很久,所以IPv6进行普及还有很长的一段路要走。

    ip地址的相关内容,想了解的可以到下面的第一个链接中查看,这里就不重复说明了。

    而在数据链路层挖的ARP的坑下面给填一下。

    ARP协议

    arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到

    通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

    arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

    协议工作方式:每台主机ip都是已知的

    例如:主机172.16.10.10/24访问172.16.10.11/24

    一:首先通过ip地址和子网掩码区分出自己所处的子网

    场景 数据包地址
    同一子网 目标主机mac,目标主机ip
    不同子网 网关mac,目标主机ip

    二:分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac)

      源mac 目标mac 源ip 目标ip 数据部分
    发送端主机 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据

    三:这个包会以广播的方式在发送端所处的自网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac

    【转】ip地址详解

    【转】OSI第三层网络层介绍1
    【转】OSI第三层网络层介绍-ip介绍
    【转】OSI第三层网络层介绍-路由协议

    传输层

    传输数据单元:数据段 (Segment)

    典型的设备:进程和端口

    介绍

    传输层的作用是什么?传输层实现端到端的连接,端到端是什么概念呢?打个比方说,一个人用QQ与朋友聊天,网络层识别IP地址,能够将信息送到正确的主机,而主机应该使用什么应用协议接收这个信息呢? 这个功能就需要传输层来完成,传输层实现进程到进程的连接。

    传输层服务通过传输层协议的编程接口传递给应用进程。该服务可以包括以下功能:

    • 连接导向式通信:通常对于一个应用进程来说,把连接解读为数据流而非处理底层的无连接模型(如用户数据报协议(UDP)与网际协议(IP)的数据报文模型)更加容易。
    • 相同次序交付:网络层通常不保证数据包到达顺序与发送顺序相同,但这往往是一个可取的特点。这通常是通过给报文段编号来完成的,接收者按次序将它们传给应用进程。这可能会造成队头阻塞。
    • 可靠性:由于网络拥塞和错误,数据包可能在传输过程中丢失。通过检错码(如校验和),传输协议可以检查数据是否损坏,并通过向发送者传ACK或NACK消息确认正确接收。自动重发请求方案可用于重新传输丢失或损坏的数据。
    • 流量控制:有时必须控制两个节点之间的数据传输速率以阻止快速的发送者传输超出接收缓冲器所能承受的数据,造成缓冲区溢出。这也可以通过减少缓冲区不足来提高效率。
    • 拥塞避免:拥塞控制可以控制进入到电信网络的流量。
    • 多路复用:端口可以在单个节点上提供多个端点。例如,邮政地址的名称是一种多路复用,并区分同一位置的不同收件人。每个计算机应用进程会监听它们自己的端口,这使得在同一时间可以使用多个网络服务。它是在TCP/IP模型中是传输层的一部分,但在OSI模型中属于会话层。

    常用协议介绍

    • TCP (Transmission Control Protocol )传输控制协议提供可靠的面向连接的服务,传输数据前须先建立连接,结束后释放。可靠的全双工信道。可靠、有序、无丢失、不重复。
    • UDP (User Datagram Protocol )用户数据报协议发送数据前无需建立连接,不使用拥塞控制,不保证可靠交付,最大努力交付。
    • DCCP (Datagram Congestion Control Protocol )数据报拥塞控制协议
    • SCTP (STREAM CONTROL TRANSMISSION PROTOCOL )流控制传 输协议
    • RTP(Real-time Transport Protocol )实时传送协议
    • RSVP (Resource ReSer Vation Protocol )资源预留协议
    • PPTP ( Point to Point Tunneling Protocol )点对点隧道协议 

    简单说

    网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,

    那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。传输层的作用就是帮我们建立端到端的通信。

    补充:端口范围0-65535,0-1023为系统占用端口

    tcp协议

    可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    以太网头 ip 头               tcp头               数据                                                    

     

    tcp报文

    tcp三次握手和四次挥手

     

    udp协议

    不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    以太网头 ip头                      udp头                            数据        

    TCP/UDP传输过程1
    TCP/UDP传输过程2

    会话层

    会话层,位于OSI模型的第5层,主要为两个会话层实体进行会话(Session),而进行的对话连接的管理服务。

    会话层为客户端的应用程序提供了打开、关闭和管理会话的机制,亦即半永久的对话。会话的实体包含了对其他程序作会话链接的要求及回应其他程序提出的会话链接要求。在应用程序的运行环境中,会话层是这些程序用来提出远程过程调用(remote procedure calls,RPC)的地方。

    会话层标准为了使会话连接创建阶段能进行功能协商,也为了便于其它国际标准参考和引用,定义了12种功能单元。各个系统可根据自身情况和需要,以核心功能服务单元为基础,选配其他功能单元组成合理的会话服务子集。

    会话层服务

    • 认证
    • 权限
    • 会话恢复:包括检查点和恢复

    会话层在OSI的模型负责会话检查点和恢复。它允许不同来源的信息流作适当的合并或同步化。

    一个例子是在网络会议的应用,其中音频和视频的流串必须同步,以避免嘴唇与声音不同步的问题。楼层控制确保在屏幕上显示的是当前的发言者。

    另一个应用是在电视直播节目中,在那里音频和视频的流串从一个到另一个合并或转换时要无缝,以免出现无声通话时间或过度重叠。

    会话层的主要功能

    1. 为会话实体间创建连接:为给两个对等会话服务用户创建一个会话连接,应该做如下几项工作。
      1. 将会话地址映射为运输地址。
      2. 选择需要的运输服务质量参数(QoS)。
      3. 对会话参数进行协商。
      4. 识别各个会话连接。
      5. 传送有限的透明用户数据。
    2. 数据传输阶段:这个阶段是在两个会话用户之间实现有组织的,同步的数据传输。用户数据单元为SSDU,而协议数据单元为SPDU.会话用户之间的数据传送过程是将SSDU转变成SPDU进行的。
    3. 连接释放:连接释放是通过"有序释放","废弃","有限量透明用户数据传送"等功能单元来释放会话连接的


      会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层 的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。 用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。

    表示层

    表示层(Presentation)为不同终端的上层用户提供数据和信息正确的语法表示变换方法。如文本文件的ASCII格式和EBCDIC,用于表示数字的1S或2S补码表示形式。

    表示层的主要功能

    • 数据语法转换
    • 语法表示
    • 连接管理
    • 数据处理
      • 数据加密和解密
      • 数据压缩和解压
      • 数据编码和解码

    常见的表示层协议

    • HTTP/HTML
    • FTP
    • Telnet
    • ASN.1

    应用层


      应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及 应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。

    常见的表示层协议

    • AFP
    • APPC
    • BitTorrent
    • CFDP
    • DHCP
    • DNS
    • FTAM
    • FTP
    • Gopher
    • HTTP
    • IMAP
    • iTMS
    • IRC
    • LDAP
    • Modbus
    • NFS
    • NNTP
    • NTP
    • POP3
    • SIP
    • SMB
    • SMTP
    • SNMP
    • SNTP
    • SSH
    • Telnet
    • TFTP
    • TSP
    • Whois
    • X.400
    • X.500

    网络通信

    上面大概分析了一下OSI七层,想了想,还是做一个分块大概说说网络是如果进行通信的。

    想实现网络通信,每台主机需具备四要素

    • 本机的IP地址
    • 子网掩码
    • 网关的IP地址
    • DNS的IP地址

    获取这四要素分两种方式

    1.静态获取

    即手动配置

    2.动态获取

    通过dhcp获取

    以太网头 ip头 udp头 dhcp数据包

    (1)最前面的”以太网标头”,设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。

    (2)后面的”IP标头”,设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。

    (3)最后的”UDP标头”,设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

    这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道”这个包是发给我的”,而其他计算机就可以丢弃这个包。

    接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个”DHCP响应”数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

     新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数

    网络通信流程

    1.本机获取

    • 本机的IP地址:192.168.1.100
    • 子网掩码:255.255.255.0
    • 网关的IP地址:192.168.1.1
    • DNS的IP地址:8.8.8.8

    2.打开浏览器,想要访问Google,在地址栏输入了网址:www.google.com。

    3.dns协议(基于udp协议)

    知识补充:

    A.root-servers.net198.41.0.4美国
    B.root-servers.net192.228.79.201美国(另支持IPv6)
    C.root-servers.net192.33.4.12法国
    D.root-servers.net128.8.10.90美国
    E.root-servers.net192.203.230.10美国
    F.root-servers.net192.5.5.241美国(另支持IPv6)
    G.root-servers.net192.112.36.4美国
    H.root-servers.net128.63.2.53美国(另支持IPv6)
    I.root-servers.net192.36.148.17瑞典
    J.root-servers.net192.58.128.30美国
    K.root-servers.net193.0.14.129英国(另支持IPv6)
    L.root-servers.net198.32.64.12美国
    M.root-servers.net202.12.27.33日本(另支持IPv6)
    13台根dns
    域名定义:http://jingyan.baidu.com/article/1974b289a649daf4b1f774cb.html
    
    顶级域名:以.com,.net,.org,.cn等等属于国际顶级域名,根据目前的国际互联网域名体系,国际顶级域名分为两类:类别顶级域名(gTLD)和地理顶级域名(ccTLD)两种。类别顶级域名是                    以"COM"、"NET"、"ORG"、"BIZ"、"INFO"等结尾的域名,均由国外公司负责管理。地理顶级域名是以国家或地区代码为结尾的域名,如"CN"代表中国,"UK"代表英国。地理顶级域名一般由各个国家或地区负责管理。
    
    二级域名:二级域名是以顶级域名为基础的地理域名,比喻中国的二级域有,.com.cn,.net.cn,.org.cn,.gd.cn等.子域名是其父域名的子域名,比喻父域名是abc.com,子域名就是www.abc.com或者*.abc.com.
    一般来说,二级域名是域名的一条记录,比如alidiedie.com是一个域名,www.alidiedie.com是其中比较常用的记录,一般默认是用这个,但是类似*.alidiedie.com的域名全部称作是alidiedie.com的二级
    域名的定义

    4.HTTP部分的内容,类似于下面这样:

    GET / HTTP/1.1
    Host: www.google.com
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 6.1) ……
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: zh-CN,zh;q=0.8
    Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
    Cookie: … …

    我们假定这个部分的长度为4960字节,它会被嵌在TCP数据包之中。

    5.TCP协议

    TCP数据包需要设置端口,接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024-65535之间的整数,假定为51775。

    TCP数据包的标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节。

    6 .IP协议

    然后,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,这是已知的,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。

    IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。

    7 .以太网协议

    最后,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)。

    以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。

     

    8. 服务器端响应

    经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。

    根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。

    本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

     
     
     
     
  • 相关阅读:
    mysql把一个表的字段update成另一个表的字段根据id
    1月房地产企业销售TOP100出炉 万科重回第一
    别拿学历说事,这些天王中学没毕业,最低的是成龙
    马云:未来经济形势很艰难,需要企业家挺身而出
    私有云与公有云区别,公有云不可能统一天下
    除了首付,购房预算还须有这7项才能买到房!
    房产交易中的10个非典型问题 你肯定不懂!
    几个常用快速无损压缩算法性能比较
    ValueTask
    Mobaxterm
  • 原文地址:https://www.cnblogs.com/kuxingseng95/p/9367139.html
Copyright © 2011-2022 走看看