zoukankan      html  css  js  c++  java
  • 计算机通信网

    一、概述

    1.1  LAN和WAN

    共享信道的接入控制室LAN要解决的主要问题;

    WAN多采用复杂的结构,多使用分组交换技术,采用信道复用技术

    WAN后来采用FR(帧中继)和ATM(异步传输模式)

    1.2  互联网和Internet

    互联网的关键思想是在底层网络与高层应用程序和用户中间加入中间层次,屏蔽底层细节,向用户提供通用一致的网络服务;

    Internet是最大的互联网(可以这么说),使用TCP/IP协议族实现网络互联,各个层次由不同级别的ISP(Internet服务提供商)建立经营;

    1.3  速率和带宽等性能指标

    传输速率:数据率/比特率,bps或b/s,常用小写表示,数据量则用大写表示!!

    带宽通常用上述定义;

    时延;

    时延带宽积:传播时延*带宽;

    误码率:传错的比特数/总的;一般<=10^-6;

    1.4  计算机网络体系结构

    最早的OSI体系结构:7层结构——优点:各层相互独立,易于维护,灵活性好,有利于标准化工作;

    TCP/IP:把OSI中的高级三层合而为一,低级的两层合而为一,得4层:应用层,传输层,网际层,网络接口层;

    综合上述,得五层体系结构:应用层,传输层,网络层,数据链路层,物理层


    二、物理层

    2.1  综述:向下与物理媒体相连,向上为数据链路层提供比特流服务,不进行差错控制(完全交给数据链路层去做)

    2.2  单/双工通信

    单:单向通信,仅在一个单一不变的方向上通信;

    双工:双方存在两条信道进行通信,除了物理上的信道,也可以使用信道复用技术实现;

    半双工:双向分时通信;

    2.3 频带传输

    在电话网中使用的,数字数据利用模拟信道的一段频带进行传输;

    关键在于调制和解调;

    可使用频分复用FDM

     分别称为幅度调制/幅移键控,频率调制/频移键控,相位调制/相移键控;

    当然可以实现难度更大的多级调制,比如多相位(每45度什么的);

    2.4  基带传输技术

    使用数字传输信号进行传输,WAN和LAN基本都采用这个;(高低电平转为数字信号);

    关键是编码和解码;

    可使用时分复用TDM

    编码原因:实现位同步——内同步(把时钟信息也编到码中)或者外同步(再单独发一条时钟线);提高传输效率;消除直流分量;

    常用编码:不归零编码(NRZ,就正常的高低电平),曼彻斯特编码(在每个状态中间跳变,正跳变为0),差分曼彻斯特编码(有变化在一开始跳转,否则不变);

    以太网就是使用的曼彻斯特编码方式;

    MC的优势:内同步,容易判断0和1,无直流分量(这个直流分量容易影响信号传输的距离和质量);

    总结如下:

    2.5  极限传说速率

    C=BlbM,比如2000baud*lb2=2000b/s;B是传输速率,用baud,波特率表示;

    Bmax=2W;W为带宽

    Cmax=Wlb(1+S/N)

    2.6  宽带接入技术

    xDSL(数字用户线),HFC(混合光纤同轴电缆网),FTTx(直接光纤)等 ;

    常用前两种,并利用它实现三网融合(电话,有线电视,计算机);

    ADSL,使用双绞线,ADSL Modem使用FDM技术,产生三个新地岛(电话语音信道,中速的上行信道,高速的下载信道);

    HFC,使用电视网络的基础,同样是FDM技术;

    2.7  传输介质

    双绞线(经济实用),同轴电缆,光纤;


    三、数据链路层

    3.1  概述

    数据链路:data link 指通信对等实体之间的数据传输通道,逻辑概念,包括物理线路和必要的传输控制协议;注意,实际的传输还是要从物理层发出去的,但数据链路层的协议只作用在每个独立的链路上;

    基本问题:帧同步,透明传输,差错校验;

    可靠性控制:物理层的传输是不可靠的,在这一层,使用ARQ(自动请求重传)实现可靠性控制;

    3.2  帧同步和透明传输

    帧同步是比特流的位同步的必要前提;

    实现方法:在帧的头尾加定界符即可;

    透明传输对用户数据中与定界符一样的进行转换/转义(像编码一样);或采用特殊的定界符;

    3.3  差错检验

    用于检测的冗余码位数越多,能力越强,但开销也越大;

    CRC(循环冗余检验),把这个例子看懂就好;

    另外:被处理的数据块可以看作是一个二进制多项式,例如,10110101可以看作是2^7+2^5+2^4+2^2+2^0,多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不进,错位,和逻辑异或运算一致。 

    3.4  数据链路控制

    可靠,要满足两个条件:传输任何数据,不会出现差错或丢失&&接收方有足够的接受缓存和处理速度;

    差错控制解决第一点,流量控制解决第二点;

    基本机制:反馈重传机制:接收方接收信息后给出确认信息——》反馈:正确认ACK,负确认NAK,累计确认,和捎带确认——》重传:超时重传,负确认重传(停等ARQ,回退N ARQ,选择重传ARQ);

                  滑动窗口机制:接收方控制发送方和接收方的窗口滑动进行接收;

    停等ARQ:发送接收窗口都为1,发一个等一个ACK,为了避免死锁(死循环类似),采用超时重传机制(数据帧出错或数据帧丢失)+对ACK进行编号(防止ACK丢失等);

    回退N ARQ:可以采用累计确认来提高效率;

    选择:需要接收方设置一定大小的缓存空间; 


    四、局域网

    LAN可以看作是物理层和数据链路层的一个实例

    4.1  基本构成

    IEEE 802委员会制订了LAN的相关标准;

    物理层+数据链路层=物理+MAC子层+LLC子层(配合SAP访问节点);

    LLC,逻辑链路控制,差错控制,流量控制,在这层看不到LAN的具体;

    MAC,媒体接入控制,解决共享信道的争用问题;

    4.2  以太网

    以太网是基带局域网的标准;

    媒体接入控制方式为CSMA/CD,控制传播时的冲突;

    传输特点:半双工,共享总线带宽,传输不确定性,不可靠、无连接的传输服务;

    4.3  网卡等

    计算机通过网卡接入以太网,所以网卡中集成了很多东西,比如MAC,总线,MAU(媒体链接单元)等;

    中继器:对传输信号进行恢复转发,实现局域网的拓展(相当于充电。。);

    集线器=多口中继器;

    4.4  交换式以太网

    能增加以太网的带宽和规模,核心是网桥;

    网桥:基本功能是在不同的LAN之间转发帧;接收要传输的帧到缓存中,根据目的地址查找端口-MAC地址映射表,若同一个网段,就不转发,直接发送;若在其他网段,就端口转发;若都没有,就丢弃此帧;

    特点:减少通信量,工作在MAC层,扩大了网络跨距,可链接不同类型的LAN;但会增加时延,没有流量控制功能;

    地址学习:透明网桥(让网桥自行决定路由选择),第一次用泛洪法进行转发,后续自动学习更新桥接表;

    (2层)交换机本质上是一个多口网桥;

    虚拟LAN(VLAN)可以提供更高的安全性;


    五、网络层

    5.1  概述

    核心任务/功能:跨越各种标准的网络进行通信;

    分组交换技术:3种方式:电路交换(建立临时的物理传输链路),报文交换(以报文进行交换传输),分组交换(把报文分成很多组,各自独立传送)(数据报,虚电路);

    路由器:找网络;3层交换机:多端口路由器;

    网际层:提供无连接的(通信双方不建立连接)、不可靠的,但是尽力而为(不会轻易的丢掉分组)的服务;

    5.2  网际协议IP

    二级地址结构:net-id+host-id;如果采用子网划分,则变成三级地址结构:net-id+subnet-id+host-id;

    子网

    私有IP(A类10网络,B类的172.16-176.16,C类的192.168.0-192.168.255)

    5.3  路由转发

    举例

    5.4  ARP地址解析协议

    根据IP地址找物理地址,动态绑定;


     六、传输层

    主要:TCP(传输控制协议)和UDP(用户数据报协议)

    6.1  概述

    提供端到端的传输服务(网络层是IP寻址,这一层是端口寻址);

    提供可靠的服务(主要是TCP,UDP是非连接的);

    6.2  传输层端口

    方便进程的通信,TCP/UDP使用了协议端口/端口;

    端口:是一种抽象的软件结构,包括一些数据结构和输入输出缓存队列;应用程序与端口绑定后,操作系统就创建了输入和输出缓存队列,用于容纳传输层和应用进程之间所交换的数据;

    TCP是面向连接的,一般是四元组描述:源主机IP地址,源端口号;目的主机IP地址,目的端口号;

    两类端口: 保留端口,自由端口

    6.3  用户数据报协议(UDP)

    建立在IP之上,整个UDP用户数据报封装在IP数据报的数据区中传输(所以也是不可靠的,非连接的);

    效率高:开销少,所需连接少;适合传输实时数据;

    6.4  传输控制协议(TCP)

    概述:提供数据流传输机制,又把数据流划分为若干个段,称为报文段,每个报文段封装到IP数据报中进行传输;

    TCP对数据流按字节编上序号,而不是按报文段编号;

    采用累计确认机制,也可以使用捎带确认;

    TCP连接:两个端点之间点对点的连接,全双工(支持双向传输),C/S模式;三次握手方式连接

    三次握手,是为了避免不正常现象的发生——也和发送端的自动重传机制有关系;

    关闭TCP连接:可以单独关一边的,反方向传输依然支持,称为半关闭状态;使用4次报文段交互来关闭

    自动重传和流量控制类似DL层的对应部分;

    阻塞控制:产生原因是分组交换结点的负载相对它的处理能力过重而引起的,基本策略:开环控制(依赖资源提供信息),闭环控制(闭环,反馈一些信息进行调控,TCP采用),分组丢弃(严重时,有策略的丢弃);

    TCP的阻塞控制:慢启动,阻塞避免,快速重传,快速恢复 

     


    七、应用层

    7.1  网络应用进程的交互模式

    最主要的是C/S模式(客户-服务器模式,Client/Server),比如FTP,DNS,E-mail,WWW,TELNET都采用该模式;

    在web环境下,客户往往是浏览器(browser),所以称为B/S模式;广泛使用browser/Web server/DB server3层连接;

    采取C/S:适应通信发起的随机性;充分利用网络资源;提高传输效率(分离计算的各个步骤,提高效率);

    服务器方案:并发(主(master)从(slave)服务器模式,主一直等待,有请求就产生从服务器/子进程,主进入阻塞,然后等待下一个请求)和重复(不产生服务器,有等待队列,FIFO);

    7.2  域名系统

    IP地址《——》域名,正常访问需要使用域名系统(DNS,Domain Name System)

    其实是一个联机分布式数据库系统(最早服务器很少的时候,直接一个hosts文件搞定,现在相当于设计了一个庞大的数据库系统罢了),采用C/S模式;使用UDP传输域名解析请求和响应报文;

     解析方式:递归解析(不解析出来不罢休,这个DNS服务器不行就换另一个)和反复解析(让客户反复解析);

    域名分顶级,本地,根域名等,对应的服务器也不一样,然后形成解析算法;

    7.3  文件传输协议(FTP)

    使用C/S模式,但比较复杂,使用控制连接和数据连接双重连接,并涉及5种进程;

    是一个交互式会话系统,每次调用FTP都会与服务器建立一个session(会话)

    控制连接和数据连接均使用TCP连接;

    控制连接的响应属于并发服务器方式;

    7.4  电子邮件

    使用SMTP和POP协议实现;

    SMTP负责发送,POP实现读取;

    整个实现,有邮件服务器专门服务;

    C/S模式,TCP连接;

    7.5  万维网

    B/S模式,是一个分布式的超媒体系统;

    采用统一资源定位符(URL)定位每一个文件;使用超文本传送(HTTP)实现超链接;


    八、网络安全  

    8.1  密码

    早期:替换密码,变位密码;

    现代:对称密钥密码体制(比如密码加密标准DES),公开密钥密码体制(公开加密密钥,但解密密钥私藏);——前者速度快,常用于大量数据的加密,后者广泛用于密钥分发,以及更容易实现数字签名;

    8.2  防火墙

    主要有两种技术:包过滤技术和代理服务技术;

    包过滤:对IP和TCP/UDP的首部进行IP包的过滤;缺点在于只能控制到IP地址和端口级别;

    代理服务技术:通过应用代理服务程序对应用层数据进行安全控制和信息过滤;

    8.3  VPN

    虚拟专用网:使用隧道技术和安全协议,是一种通信环境而不是一种新的网络类型;


    总结

  • 相关阅读:
    跨域资源共享 CORS 详解以及IIS中的配置方法
    c#创建文件夹时无法访问路径,路径拒绝访问
    C#接口在派生类和外部类中的调用
    .NET/C#识别用户访问设备
    另一个SqlParameterCollection中已包含SqlParameter
    Java中throw和throws的区别
    MySQL与Oracle的语法区别详细对比
    hibernte中用criteria实现not in功能的方法
    使用Hibernate SQLQuery执行原生SQL
    hibernate查询数据表char类型字段只返回一个字符
  • 原文地址:https://www.cnblogs.com/andy1202go/p/5824782.html
Copyright © 2011-2022 走看看