zoukankan      html  css  js  c++  java
  • 计算机网络<一>

    OSIOpen Systems Interconnection)体系包含七层结构:1.物理层、2.数据链路层、3.网络层、4.运输层、5.会话层、6。表示层、7.应用层。

    TCP/IP的结构体系:1.网络连接层、2.网际层IP3运输层(TCPUDP)、4、应用层;

    五层协议体系:1.物理层、2.数据连接层、3.网络层、4.运输层、5.应用层。

     

    1. 物理层

    在物理层上所传送的数据单位是比特。物理层的作用是实现相邻计算机节点之间的比特流的透明传送,尽可能屏蔽掉具体传送介质和物理设备的差异。

    物理层要考虑的问题是如何在不同的传输媒体上传输数据比特流,而不是指具体的传输媒体(光纤、双绞线)

    物理层需要屏蔽掉各种不同传输媒体之间的区别,使数据链路层感觉不到这些传输手段和传输媒体的差异,而只是将数据帧交给物理层进行传输,怎么传输的数据链路层一概不管

    物理层也读不懂数据链路层携带的各种信息,只知道是数据是0还是1,应该使用高电压还是低电压传输,这就达到了数据链层和物理层之间的解耦,数据链层只是使用了物理层提供的服务。而物理是如何提供服务的数据链层不需要知道,即使物理层发生了改变数据链路层还是不知道,只要物理层提供服务的接口不变,那么数据链路层可以继续使用物理层提供的服务,不受影响。

     

    2. 数据链路层

    数据链路层 在物理层所提供的服务的基础上 向网络层提供服务,即将原始的、有差错的物理线路改进成为逻辑上无差错的数据链路,从而向网络层提供高质量的服务。它一般包括 3 种基本服务:无确定的无连接服务、有确定的有连接服务、有确定的无连接服务(不存在无确定的有连接服务)。

    具体而言,数据链路层的主要功能如下:

    1.链路管理:负责数据链路的建立、维持和释放,主要用于面向连接服务。

    2.帧同步:接收方确定收到的比特流中一帧的开始位置和结束位置。

    3.透明传输:不论数据是什么样的比特组合,都应当能够在链路上进行传输。

    4.差错控制:用于使接收方确定收到的数据就是由发送方发送的数据。

    3.1 封装成帧

    封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,确定帧的界限首部与尾部的一个重要的作用就是进行帧定界。

    为了提高帧的传输效率,应当使帧的数据部分长度尽量大于首部和尾部的长度。最大传输单元MTUMaximum Transfer Unit):帧数据部分长度上限。

    3.2 透明传输

    帧的开始和结束使用指明的首部和尾部,那么如果帧首部和帧尾部之间的数据部分出现了与帧首部或尾部一样的比特组合的话,可能会报错。因此需要通过适当的方法处理,使得数据链路层允许所传送的数据可具有任何形式的比特组合(如在PPP协议中)。

    插入PPP协议相关知识

    如下图所示为PPP帧格式

    1. 标记字段F,各占一个字节规定标志字符01111110

    2. 地址字段A长度为1字节,规定标志字符11111111

    3. 控制字段C,长度为1字节, 规定标志字符为00000011

    4. 协议字段: 长度为2个字节,其值代表其后的数据字段所属的网络层协议,如:0x0021代表IP协议,0xC021代表LCP数据,0x8021代表NCP数据等。 5. 数据字段包含协议字段中指定的协议的数据报,长度为01500字节。

    6. FCS字段,为两个字节。可以为CRC循环冗余校验码,用来检测传输中可能出现的数据错误。

     

    一般使用以下两种方法来实现透明传输(以PPP协议为例)

    A.字节填充

    PPP使用异步传输是,使用转义字符01111101来作为字节填充

    (1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D0x5E)

    (2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D0x5D)

    (3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是传输结束”ETX)就要把它转变为2字节序列的

    B.零比特填充

    (1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)

    (2)只要发现有5个连续的1,则立即填入一个0

    (3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。

    因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续61

    3.3 差错控制

    在传输过程中可能会产生比特差错:1可能会变成00也可能变成1,在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate),误码率与信噪比有很大的关系,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。在数据链路层传送的帧中,广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术

    利用循环冗余检验CRC原理,在PPP帧的尾部FCS字段先求余,在加入余数,验证。

  • 相关阅读:
    推荐一个css抖动库
    八佰
    如何将猫猫监控放在博客上
    一个springboot注解不成功的小问题
    vue整理
    springboot整理
    国外服务器:org.xml.sax.SAXParseException
    记一次tomcat运行起来了但是项目没起来的问题
    一个狗血的mysql编码错误
    js中for(var key in o ){};用法小记
  • 原文地址:https://www.cnblogs.com/tianliang94/p/10816752.html
Copyright © 2011-2022 走看看