zoukankan      html  css  js  c++  java
  • 计算机网络-五层协议和物理层

      基本功太差,重新回顾下大学的课程,计算机网络

    跳跃式阅读,对感兴趣的地方学习一下

    chapter1,基础

            一些概念:

    • 拓扑:信道的分布方式
    • 分层原则:信宿机第N层收到的对象应与信源机发出的第N层对象完全一致,每一层为上面一层服务
    • 信息交互:每一次通信总是以发方的封装开始,以接收方的解封装结束

      起源:

      为了让两台机器可以实现互相通信,ARPANET提出了“分层”

      ISO 1977年开始研究做一个标准,让大家都按照标准搞,不同的公司之间就可以互相通信了,这个标准框架叫OSI/RM。搞到1983年,才搞出来,叫ISO7498,也就是七层协议的体系结构。

      网络分层的好处:(感觉跟程序设计差不多?就是各种剥离啊,减冗啊之类的。。。)

          -各层之间独立的

          -灵活性好

          -结构上可分隔开

          -易于实现和维护

          -能促进标准化工作

        每个层的功能主要有以下一些(可以只有一种,也可以包括多种)

          -差错控制

          -流量控制

          -分段和重组

          -复用和分用

          -连接建立和释放

        我们把计算机网络的各层以及其协议的集合,叫网络的architecture,不包括implementation。

      

        OSI,TCP/IP,和书上准备详细BBB的五层协议,如下:

       每层在干什么:

        -应用层:为用户的应用进程提供服务;

        -运输层:为两个主机的进程之间的通信提供服务,有复用和分用的功能;

          -传输控制协议TCP  transmission control protocol

          -用户数据报协议UDP user datagram protocol

        -网络层(网际层,IP层):为分组交换网上的不同主机提供通信服务,选择合适的路由

          -网络层使用IP数据报

        -数据链路层:两个相邻节点(路由或主机)中,将ip数据报组装成framing,透明传输,每个framing中包含必要的控制信息,标记头尾;

        -物理层:透明的传输比特流,从头部开始传递

       

    ------------------物理层

    因为计算机网络是的传输从物理到数据端的过程到端是自下而上的,所以大多数的教材都是从五层协议结构的底部开始向上延申。

    物理层:

     = = 好复杂哦。看不懂,反正就是讲一些通信的线,信号传输的实现原理,和信号转化的东西。

    传输的物理材料有缆线,光纤。

    传输的方式有时分多址,频分多址和码分多址。

    _(:з)∠)_ 这玩意儿怎么学?

    -----------数据链路层

    数据链路层,给两个相邻节点传输数据。

    数据链路:物理链路+通信协议。

    数据链路层使用的信道主要有点对点信道和广播信道两种。

    一、点对点信道的PPP协议:

      用三层模型来研究数据链路层,不管在哪一链路上的通信(主机对路由,路由对路由)

       点对点信道的数据链路层的通信时主要步骤如下:

        1.A的数据链路层,把网络层传下来的IP数据包,加上头尾信息封装成framing

        2.A把封装好的framing发给B的数据链路层

        3.如果B收到的framing无差错,就拆掉头尾,提取出IP数据包交给网络层;反之就丢弃

      数据链路层协议需要解决的三个问题:

        1.封装成帧:分组交换的特点就是在因特网上以packet为单位传输,首尾的数据加在IP数据包上,用来标识数据的首尾并添加一些控制信息。帧的数据部分需要小于MTU maximum transfer unit.

      2.透明传输:"透明的"(transparent)表示实际上存在的东西对我们却好像看不见一样或好象不存在一样.对于普通的电话通信,由于输入和输出的波形是有差异的,故可以说普通的电话通信不是透明传输。

            帧的头尾数据的标记,可能与帧的数据包内的数据产生重复,导致接收方讲数据包的数据解读为 SOH,EOH而错误解读帧,解决办法是在帧内的数据包中,出现SOH,EOH的数据时,在前部加上转义字符ESC标记。

      3.差错检测:物理链路传输时,0差错是理想状态。非理想状态时,需要用差错检测来保证传输的正确性。

       差错有两种,一种是比特差错,即物理传输的1001之类的出现差错,另一种是传输差错,比如帧丢失,帧重复,帧顺序错误;

          数据链路层的比特差错检测目前用的方法是循环冗余检测CRC cyclic redundancy check,用于检验比特差错,使用的方法有FCS,即传输帧+余数(传输帧的N位模2运算➗N+1位的设置的协议数取得的余数)

          OSI要求是说数据链路层提供可靠传输,即在CRC的基础上,再对帧增加编号,确认和重传机制。但是现在的因特网上大多数使用的数据链路层协议都不支持确认和重传机制,说不支持可以提高通信效率,传输差错的检测交给运输层的TCP来做。

      PPP协议

        以前通信线路质量差,用得是HDLC协议,在数据链路层实现可靠传输。

        现在大多数都改为PPP point-to-point protocol协议,不可靠的数据链路协议。

        PPP协议应满足的需求:简单,封装成帧,透明性,多种网络层协议,多种类型链路,差错检测,检测连接状态,最大传送单元,网络层地址协商,数据压缩协商。

         PPP协议的工作状态:

    二、使用广播信道的数据链路层

      广播信道可以进行一对多的通信。

      局域网优点:具有广播功能,便于系统的扩展和逐渐演变,提高了系统的可靠性,可用性和生存性

      局域网按照网络拓扑分类:环形网,星型网,总线网。

      网络共享信道需要考虑的问题是如何共享通信媒体:静态划分信道,动态媒体接入控制(随机接入/受控接入)

      属于随机接入的以太网被重点讨论:以太网的IEEE802.3标准将数据链路层拆成了逻辑链路控制LLC和媒体接入控制MAC,不过后来商业淘汰了LLC,大部分以太网只考虑MAC。

      适配器的作用:

       以太网为了传输数据,并且在传输失败时实现重传,采用的是CSMA/CD协议。

        CSMA/CD 实现在信号中途发生碰撞时,重传的机制。

        CSMA/CD的要点:准备发送,检测信道,发送中检测信道(适配器要边发边听)

      MAC协议的帧组成:

      扩展以太网的方法:

        -物理层拓展:用大集线器管理小集线器,小集线器管理主机,通过一个大的集线器网络,将各个以太网连接起来。

        -数据链路层拓展:以太网交换机(网桥被淘汰),以太网交换机就是多接口的网桥,每个接口都与一个主机或者另一个交换机相连,独占传输媒体,无碰撞传输数据。

      

    疑问:

    1.集线器原理是用一堆线将每个主机都互联起来传输数据吗?

    2.以太网的那些帧长度设置,时间设置的原理不清楚

    3.集线器扩展以太网,为什么网速要拉在一个水平线上呢?

    4.网桥和适配器有什么差别?不都是分析帧的目的地址然后发送吗?适配器是都转发,然后接受的人发现自己不是接收人就遗弃?

    5.以太网交换机为什么不会碰撞呢???交换机和主机只有一条线,不是也可以碰撞吗?数据从单独的这条线进出的时候不是会碰撞吗?

    6.以太网的实例是什么?局域网可以是公司网,校园网。以太网呢????网吗????

    7.后面那一大堆以太网,交换机,网桥,和”给两个相邻节点传输数据“有什么关系???感觉很像网络层啊???

    ---------网络层

    网络层的使用:如 ping,tracert,原理是ICMP

    一、什么叫网络,网络层做什么,通过什么实现,这章的内容,

    • 什么叫网络,实现这些需要做什么

        将全世界范围内数以百万计的网络都互连起来,并且能够互相通信。

        需要做到:大家都有相同的或者统一规则的 寻址方案,最大分组长度,网络接入机制,超时控制,差错恢复方法,状态报告方法,路由选择技术,用户接入控制,服务(面向连接和无连接),管理与控制方式

    • 网络层做什么

         为分组交换网上的不同主机提供通信服务,选择合适的路由。

         我的理解,就是通过路由器向目标地址发送IP数据报。并且,能解决上面说的哪些问题。

    • 与数据链路层的关系

        数据链路层,在相邻的路由和主机中传递数据,使用的是物理地址,该地址是IP地址由ARP转换得出的;

        网络层,跟着数据链路层,在各个网络层中传送IP数据报。如果数据链路层传到了要的数据链路层地址,该地址就向上传输IP数据报,就开始拆IP用了。

    •  几个疑问:

         1.怎么知道数据链路层和IP层的地址的转换的?

    已经知道了一个机器的IP地址,需要找出相应的硬件地址,使用地址解析协议ARP。
      ARP协议是将IP地址转化为数据链路层使用的硬件地址。
      ARP协议是解析同局域网的主机或路由的IP地址和硬件地址的映射问题。
      1.在传输IP数据报时,将IP地址转换成硬件地址,
      2.硬件地址在自己的局域网中查找可以连接目的网络的路由,将数据转发到该路由的地址上  
      3.在该路由的局域网中再次重复1-2。
      不同网络之间的数据转发:路由器中路由表记录不同网络对应的路由地址,如果记录的主机在网络1上,就转发到连接了网络1的路由上。
    互联网所有的分组转发,都是基于目的主机所在的网络。也可以指定所在路由。

        2.怎么得出数据链路层的相连路由路线的?

    路由表的协议和网络间协议
    
    路由表如何建立:
    1.子网的网络地址=ip地址*子网掩码;
    2.路由器转发分组的算法如下:
      -从收到的数据包首部提取目的IP地址D
      -判断是否直接交付,子网掩码与D相与,一致则交付,否则间接交付
      -路由表中由目的地址为D的特定主机路由,传送给该路由,否则下一步
      -对路由表中每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码与D相与,其结果为N,若N与改行的目的网络地址相符,传给下一跳。
      -路由表中由一个默认路由,传给指明的路由
      -否则出错
    • 网络层通过什么来实现目标

        使用协议:IP协议(地址解析协议ARP,网际控制报文协议ICMP,网际组管理协议IGMP)

        使用工具:路由器

    • 这章的内容

        描述IP数据报包含的信息

          描述IP数据报是如何从发送端,经历网络间的传递,到目的端。  

     二、IP数据报包含的信息,IP协议是什么,怎么工作的,依靠什么工具实现,ARP ICMP IGMP都做什么。

    •  IP数据报是什么:

        IP数据报=IP地址+数据

     

    •   IP地址是什么:

         IP地址就是给互联网上的每一台主机的每一个接口分配一个在全世界范围内是唯一的32位的标识符。路由器通过目的主机所连接的网络号来转发分组。

         IP地址的组成:网络号+主机号,用CIDR无分类编址来划分地址。

         IP地址的特点:

          1.每一个IP地址都由网络号和主机号两部分组成,

          2.实际上IP地址是标志一台主机和一条链路的接口

          3.按照互联网的观点,一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为1个网络

          4.在IP地址中,所有分派到网络号的网络都是平等的。

    •   IP地址怎么转换成硬件地址供给数据链路层使用

        利用ARP协议,将IP地址转换为物理地址。

    •   IP协议是什么:

         主要提供简单的、无连接的、尽最大努力交付(不可靠)的数据报服务。这种协议比较便宜,就一直用它了。

    •   IP协议能做什么

          实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。

    •    IP协议怎么工作的:

          1.给网络的每一台主机,分配一个IP地址,该主机的物理地址由IP地址+ARP协议得出;

          2.路由器通过目的IP地址的网络号,来根据路由表转发到对应网络;

          3.对应网络收到后,如果报文内容准确,就手下,不准确,就丢弃 

          4.如果路由/主机有出错,路由/主机通过ICMP报告差错,并提供有关异常。最重要的应用就是ping 用来测试两台主机的连通性(发送询问报文)

    •   依靠什么工具实现转发:路由器
      
    将网络连接起来,需要有实现协议的中间设备:
    
      1.物理层--转发器 repeater
    
      2.数据链路层-网桥-桥接器bridge
    
      3.网络层-路由器router
    
      4.网络层以上-网关gateway
    • ARP ICMP IGMP都做什么。
     ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
     RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
     ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会
    

     三、路由器的工作原理,网络数据怎样在路由器中发送,传输,到达

    •   路由器是什么:

        路由器和网桥不一样,网桥可以把少量机器连接的网络扩散成多个机器连接成的网络,他们是一个网络。

        路由器,可以把不同的网络连接在一起,形成互联网。  

    •   路由器做什么:

        网络间转发和同网络的转发

    •   路由器的工作原理:

        

    •        有哪些路由协议来实现:

        外部网关协议实现网络间转发,内部网关协议实现同网络转发

    五、路由协议的种类和优缺点,结构

      数据在路由中的传递,重要分为两层,一层是在小型自治网络(一个单独的大网络)中的传递,另一层是在互联网中的多个自治网络之间信息的传递。

      前者用路由转发的内部网关协议解决,后者用路由转发的外部网关协议解决。

    •   关于路由转发的内部网关协议,用来确定自治网络内部的IP数据的传输:  
      RIP  routing information protocol,基于距离向量的路由选择协议。
    
        原理:将相邻的路由的跳跃数称为跳数,最多16跳,超过即为不可达。
    
        特点:按照固定的时间间隔,和相邻的路由器交换信息,交换的内容是当前本路由的路由表;
    
        缺点:当网络故障,要经过比较长的实践才能将此信息传递到所有的路由器。
      OSPF   open shortest path first,开放最短路径优先
    
        原理:使用分布式的链路状态协议,链路状态:本路由器都和哪些路由器相邻,以及该路由器的度量metric(费用/距离/时延/带宽,等等)
    
        特点:在链路状态发生变化时,向本自治系统的所有路由器发送消息,发送的内容是本路由器相邻的所有路由器的链路状态。由于各个路由器之间频繁的交换链路状态信息,因此所有路由器都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图。
        
        为了使OSPF用于规模很大的网络,将一个自治系统划分为若干个小的area,在area中交换链路状态信息,减少网络上的通信量。
      
        OSPF发送的分组的类型:问候,数据库描述,链路状态请求,链路状态更新,链路状态确认。
          问候用来确认相邻的路由是否可达。
          其他四个用来进行链路状态数据库的同步。一旦发生变化,就给相邻的发送更新分组。
      
    •   关于路由转发的外部网关协议,用来确定自治网络之间数据传递的要求和标准:
        边界网关协议BGP 
        原理:力求寻找一条能够到大目的网络且比较好的路由,而并非要寻找一条最佳路由。
        实现:自治系统的管理员,选择至少一个路由器作为该AS的BGP发言人。
          每个BGP发言人,与其他AS的BGP发言人交换路由信息,要先建立TCP连接,在该连接上交换BGP报文,建立BGP会话,交换路由信息。呼叫交换路由信息的两个BGP发言人,彼此成为对方的邻站neighbor和对等站peer
          交换信息中,BGP会根据自己的策略,选出到达各个AS的较好路由。
          BGP发送的四种报文:open,update,keepalive,notification

    • 路由器的构成

        路由器是一个有多个输入端口和多个输出端口的专用计算机,任务是转发分组。

      

     六、IPV6

      IPV4的地址用完了,大家就开始用IPV6了。

      IPV6将PDU叫分组,也可以叫数据报。

    •   变化
      •   更大的地址控件
      • 扩展的地址层次结构
      • 灵活的首部格式
      • 改进的选项
      • 允许协议继续扩充
      • 支持即插即用,自动配置。
      • 支持资源与分配
      • 首部改为8字节对齐
    • 组成

        基本首部base header+有效载荷payload,payload=0/多个扩展首部extension header+数据部分

    • 和IPV4的首部的差别
      •   取消了很多字段,IPV6的首部字段数量减少到8个,长度增加了一倍

    七、IP多播

      不知道写的什么卵意思,看不懂。

    •   原理
    •   使用的协议
    • 数据报的转发

     八、VPN

      通过互联网,给不同地点的专用网络的输送数据。利用互联网,做公司的专用网的载体,这种专用网就叫VPN。

      在互联网中的所有路由器,给目的地址是专用地址的数据一律不进行转发。专用地址只在专用网络中用专用的分配的IP进行传输数据。

    九、MPLS

      不知道用来干嘛的,没写。

      就说给IP数据包打标记。为什么要提出这个协议,这个协议为了改善什么,不说。

    -----运输层

    一、运输层做什么事情,通过什么协议实现,

    • 运输层做什么

        为相互通信的应用提供逻辑通信

        通过端口号来确定应用,提供端到端的服务;

    • 为什么需要运输层,IP层不是就实现了传输数据吗

        从IP层来说,是两台主机之间的通信,但是真正进行通信的实体是在主机中的进程,是这台主机中的一个进程和另一台主机中的一个进程在交换数据,既两台主机进行通信就是两台主机中的应用进程互相通信。

    • 通过什么协议实现

        TCP面向连接和UDP无连接

    • 运输层的原理

        主机中的进程,把信息交给IP层变成IP数据报,传输给目的主机后,将提取出来传递给目的进程。

        可能是一对一,可能是一对多,可能是多对一,可能是多对多。这表明运输层有一个很重要的功能——复用multiplexing和分用demultiplexing

    • 运输层的执行步骤

        多个进程传输的数据复用,装上源端口和目的端口,将数据装进去,向下传到网络层,网络层传递到对应主机后,将数据取出来,将数据传到目的端口,将数据取出来,分发给各个进程。

    二、为什么要设置端口,端口是什么,端口怎么设定

    •   为什么要有端口

        因为不同操作系统的应用进程的进程标识符不一样,所以TCP/IP体系需要规范进程的标志,并且能够通用。

        解决办法就是运输层使用协议端口号protocol port number,通过将报文传输到目的主机中的某个端口(软件),然后TCP和UDP来搞事。

    • 端口是什么

        TCP/IP用16位的端口号来标志一个端口。为了标志本计算机应用层中的各个进程在运输层交互时的层间接口。

        在不同的互联网中,相同的端口号时没有关联的。

    • 端口怎么设定
    • 端口在协议中的使用

        TCP/IP的端口号,只具有本地意义。所以,两个计算机的进程要通信,不仅必须知道对方的IP,而且要知道对方的端口号。

    • 端口的类别

        服务器端使用的端口号

        客户端使用的端口号

    二、UDP和TCP的区别

      UDP在传输钱不需要先建立连接。

      TCP则需要提供面向连接的服务。

    三、UDP用户数据报协议

    • 特点

        无连接的,尽最大努力交付,面向报文(给什么报文我就传什么报文),没有拥塞控制(允许拥塞时丢失数据),支持一对一,一对多,多对一和多对多的通信,首部开销小

    • 实现了什么

           只在IP的数据报服务之上增加了很少的功能:复用,分用,差错检测。

    四、TCP的实现细节

    •   特点:

        面向连接的运输层协议,每一条TCP连接只能由两个端点,可靠交付,全双工通信,面向字节流

    • TCP端点:
      • 一个TCP连接有两个端点,端点也叫套接字,表示方法是socket=(IP地址:端口号)
      • 每一条TCP连接唯一的被通信两端的两个端点所确定
      • 同一个IP地址可以有多个不同的TCP连接,同一个端口号也可以再多个不同的TCP连接中
    • 连续ARQ协议
      • 分组按照序号发送
      • 发送方维持发送窗口,窗口大小按照拥堵情况和接收方的接受窗口大小来商定
      • 接收方累积确认,对按序到达的最后一个分组发送确认
    • 三次握手
      •  在建立连接时产生的
      • 1.client请求server连接,发送syn(seq=x)
      • 2.server回复syn(seq=y) ack (x+1)
      • 3.client 确认+1,seq=x+1;ack=y+1
    • 四次挥手
      •  在释放连接时产生
      • 1.A释放请求,开启计时器;
      • 2.B回送确认ack,A收到后释放连接
      • 3.B继续发送释放DR,启动定时器,A收到后回复ack
      • 4.B收到后释放连接
    • 四次挥手是为了杀死办断开的连接
    • TCP的传输策略
      •   发送序列号和数据
      • 返回确认接收的序列号,和窗口大小
      • 发送序列号和数据
      • 返回确认接受的序列号,和窗口剩余大小(0)
      • 返回确认接受的序列号,和窗口剩余大小(数据处理完毕,有空余的窗口)
      • 发送序列号和数据

    --------------------应用层

    应用层为协议最顶部,为用户服务。

    常见的服务:邮件,万维网,DNS等

    DNS:使用UDP承载,部分使用TCP协议

    •   作用
      •   将域名映射为IP
      • 域名格式:自己到上级域名的访问
      • DNS服务器提供域名的资源记录

    SMTP协议:邮件使用的协议

    •   用户在UA中编辑并发送,传递到MTA邮件传输代理,转发到接收人的MTA,MTA再传输给接收人的UA
    • 仅支持纯文本的Ascii码,不支持base64
      •   使用MIME,支持非纯文本
      • 投递使用IMAP,可以支持移动接收邮件,POP3不支持移动(变更IP时会标记删除)

    WWW协议:web协议

    •   web组成:资源,统一资源定位器URL,通信协议
      •   统一资源定位符中有:协议,域名(IP地址),资源
      • 通信协议可以是http/https/ftp……
    • 访问的步骤:
      •   browser访问域名,通过DNS返回IP地址解析
      • browser根据IP向web服务器建立TCP连接,发送http(或其他)请求
      • web服务器返回资源文件
    • web服务器处理:
      •   web服务器访问量很大时,使用多线程,前端压力很大时,会利用TCP移交,将服务器前端的请求移交到节点处理,将结果直接从节点返回到client
      • 代理服务器:当本地局域网的多个host访问同一个web服务器资源时,为了减少通信消耗,可在局域网内设置代理服务器,将网络资源缓存在代理服务器中,如果不同的host的请求网页信息不一致,可以在host发送的信息中添加cookies信息,将cookie同时缓存在host端,但是cookie信息不够安全

    FTP协议:文件传输协议

    •   双TCP连接,一个控制连接,一个传输数据
      •   远程登录使用telnet
      • 现在已经不怎么用了

      

        

  • 相关阅读:
    内部类
    java的静态方法多态和匿名对象
    java的重载 和重写
    java多态成员的特点
    java 接口的概念
    linux时间修改-hwclock和date
    mysql配置主从复制和常见问题
    mysql日志种类、二进制日志模式、mysqlbinlog解析二进制日志
    mysql主从复制介绍
    mysql备份与还原-mysqldump备份、mysql与source还原
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/9198637.html
Copyright © 2011-2022 走看看