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

    重要参考:网络基础之网络协议篇

    TCP/IP协议体系结构以及主要协议

    网络数据传输的原理,理解各站点间数据是如何传输的

    引子

    实现不同地点的通讯,有不同的标准,那么为了统一,所以大家就制定了统一的标准:英语。

    Internet实际上就是统一的标准,称为互联网协议(Internet Protocol Suite)。

    互联网协议的功能:定义计算机如何接入Internet,以及接入internet的计算机通信的标准。

    互联网协议按照功能不同分为tcp/ip四层tcp/ip五层osi七层

    用户接触的是最上面的应用层,越往下越接近硬件。

    每层运行常见物理设备 :

    开放系统互连参考模型——七层模型

    它从低到高分别是:物理层数据链路层网络层传输层、会话层、表示层应用层(物数网传会表应)

     

    物理层

    物理层(Physical Layer)是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输。

    简单理解:硬件基础,包括网卡、光纤等;主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0 。

    数据链路层

    数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思

    数据链路层的功能:定义了电信号的分组方式(以太网协议、mac地址、广播 )

    数据链路层实现的三大功能分别为:(1) 封装成帧(2) 透明传输(3) 差错控制

    网络层

    作用:提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。相当于发送邮件时需要地址一般重要。

    由于TCP/IP协议体系中的网络层功能由IP协议规定和实现,故又称IP层。

    传输层

    传输层的主要功能: 为端到端连接提供可靠的传输服务,为端到端连接提供流量控制,差错控制,服务质量(Quality of Service,QoS)等管理服务,具有传输层功能的协议:TCP 、SPX 、NetBIOS

    会话层

    会话层(Session Layer)负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。 主要为两个会话层实体进行会话(Session),而进行的对话连接的管理服务。

    表达层

    表达层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式。 为不同终端的上层用户提供数据和信息正确的语法表示变换方法。如文本文件ASCII格式和EBCDIC,用于表示数字的1S或2S补码表示形式。

    应用层

    应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。

    数据传输过程

     

    TCP/IP五层模型

    五层模型实际上把OSI七层简化:将应用层、表示层和会话层 合并为应用层

    TCP/IP协议体系四层模型

     TCP/IP体系结构的优点:

    1. 结构简化,7层变成4层,但是功能没有减少

    2. 每一层独立有联系,独立是指那一层出现问题不会影响到其它层的工作,联系是因为上层又使用下层协议提供的服务。

    1、数据链路层

    功能:实现了网卡接口的网络驱动程序,以处理数据在物理媒介(如以太网、令牌环等)上的传输。

    常用协议:

    (1)ARP(地址解析协议):它实现IP地址到物理地址(通常是MAC地址,通俗的理解就是网卡地址)的转换。

    (2)RARP(逆地址解析协议):顾名思义,它和ARP是相反的,它是实现从物理地址到IP地址的转换。

    那有人就会问它们的用途是什么呢???

    ARP用途:网络层使用IP地址寻找一台机器,而数据链路层则是使用物理地址寻找一台机器,因此网络层必须先将目标机器的IP地址转化成物理地址,才能使用数据链路层提供的服务。

    RARP用途:RARP协议仅用于网络上的某些无盘工作站,因为缺少储存设备,无盘工作站无法记录自己的IP地址,然而通过RARP就可以看到从物理地址到IP地址的映射。

    2、网络层

    功能:实现数据包的选路和转发

    常用协议:

    (1)IP协议(英特网协议)据数据包的目的IP地址来决定如何将它发送给目标主机。如果数据包不能直接发送给目标主机,那么IP协议为它寻找一个合适的下一跳路由器,将数据包交给路由器来转发,多次之后数据包将到达目标主机,或者因发送失败而被丢弃。

    (2)ICMP协议是网络层的另一个重要协议,它是IP协议的重要补充,主要用于检测网络连接。

    8位类型:将ICMP报文分为两大类:一类是差错报文,比如目标不可达(类型值为3)和重定向(类型值为5);另一类是查询报文,用来查询网络信息。

    有的ICMP报文还用8位代码字段细分不同的条件。比如代码值0表示网络重定向,代码值1表示主机重定向。

    16位校验和:对整个报文(包括头部和内容部分)进行循环冗余校验(CRC)。

    注意:ICMP协议并非严格意义上的网络层协议,因为它使用了处于同一层的IP协议提供的服务,而一般来说,上层协议使用下层协议提供的服务。

    3、传输层

    功能:为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。

    主要协议:

    (1)TCP协议(传输控制协议):为应用层提供可靠的、面向连接的和流式服务。

    (2)UDP协议(用户数据报协议):为应用层提供不可靠的、无连接的和数据报服务。(TCP和UDP协议的详解和区别将在下一篇详讲)

    (3)SCTP协议(流控制传输协议)它是为在英特网上传输电话信号而设计的,这里不再细说。

    4、应用层

    功能:负责处理应用程序的逻辑,比如文件传输,名称查询和网络管理等

    注意:数据链路层、网络层、传输层复制处理网络通信 细节,所以这些部分必须稳定且高效,因此它们都在内核空间实现(如上图二),而应用层在用户空间中实现,因为它负责众多逻辑,在内核中实现的话,则会使内核变得非常庞大。也有少数服务器程序是在内核中实现,这样代码就不用在用户空间和内核空间中来回切换(主要是数据的复制)提高了工作效率。

    常用协议:

    (1)OSPF(开放最短路径优先)协议:是一种动态路由更新协议,用于路由器之间的通信,以告知对方各自的路由信息。

    (2)DNS(域名服务)协议:提供机器域名到IP地址的转换。

    (3)telnet协议是一种远程登陆协议,使我们能在本地完成远程任务。

    (4)HTTP协议(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。

    数据传输过程

    数据封装以后:

    应用层一个数据从一台主机应用程序上发出后,

    传输层根据协议选择传输方式,如选择TCP协议,则在数据前面加上自己的头部,

    到达网络层后,网络层又选择协议,再加上自己的头部信息交给下一层,

    再到数据链路层后加上以太网头部后成为一个以太网帧,经过路由转发,到达目标主机后有一层层的根据头部信息选择协议,然后去掉各自的头部,一层层的交给上一层,最终到达目标主机的应用程序上。

    一个vue的UI库:https://github.com/houfee/light-ui,如果对您有帮助,请star ^-^
  • 相关阅读:
    c++析构函数、虚析构函数、纯虚析构函数详解
    php实现设计模式之 策略模式
    php实现设计模式之 简单工厂模式
    记录一下工作中碰到的一些有用的命令
    预估高并发下API服务器数量
    囧啊!!时间戳转化为时间出错php
    php 实现hash表
    php 中使用cURL发送get/post请求,上传图片,批处理
    redis虚拟内存
    redis主从同步
  • 原文地址:https://www.cnblogs.com/houfee/p/9811881.html
Copyright © 2011-2022 走看看