• 关于计算机网络


     计算机网络为什么分层?

            由于在实际的计算机网络中,两个实体之间的通信情况非常复为了降低通信协议实现的复杂性,而将整个网络的通信功能划分为多个层次(分层描述),每层各自完一定的任务,而且功能相对独立,这样实现起来较容易。

    每一层专注于自己的事情,达到解耦合。

    在计算机网络中,每一层的协议负责的工作都是不一样的,也就对应有了不同设备来处理(二层设备、三层设备)。同时,对下层的变化进行封装,这里有必要理解深刻一点。物理层只关心 0 和 1 是如何传输的,而对他们所表达的内容毫不关心;往上一层,数据链路层只关心数据帧是否准确地送到了对应MAC地址的目的主机,而不关心是通过光纤也好,同轴电缆也好,wifi也好,只要目的主机收到的数据帧没错就ok;继续往上,同理。

     计算机网络分层的好处?


    各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。
    灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。
    当某层提供的服务不再需要时,甚至可以将这层取消。
    结构上可分割开。各层都可以采用最合适的技术来实现。
    易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。
    能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。

    各层之间传输的数据格式 

    物理层:主要是处理机械的、电气的和过程的接口,以及物理传输介质等,是面向硬件的,传输的基本单元是比特。
    数据链路层:对来自网络层的数据进行封装形成数据帧,是传输数据的物理媒。数据帧是数据链路层的传输的基本单元。
    网络层:网络层的传输数据的单元式数据包或分组。来自传输层的TCP或UDP报文段到达网络层时也要经过网络层协议的再次封装,网络层为ip协议,该层也定义了IP规范。
    传输层:传输层数据传输的单元是报文段,来自应用层的报文到达传输层是由传输层协议再次封装,形成TCP或UDP报文。
    应用层:应用层都是以原始的数据传输的,应用层使用不同的协议对数据封装形成报文。如HTTP报文,DNS报文,FTP报文。

     计算机网络中的协议

    应用层HTTP

    主要协议 http 1.0 非持久性 

    但是http1.1以后支持建立连接发送多个请求

     http和https的区别

    一、传输信息安全性不同
    http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
    https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。
    二、连接方式不同
    http协议:http的连接很简单,是无状态的。
    https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。
    三、端口不同
    http协议:使用的端口是80。
    https协议:使用的端口是443.
    四、证书申请方式不同
    http协议:免费申请。
    https协议:需要到ca申请证书,一般免费证书很少,需要交费
     

    应用层主要解决通过应用进程的交互来实现特定网络应用的问题

    应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。“应用层"的作用,就是规定应用程序的数据格式。
    应用层协议众多,dns、ntp、http,https,ftp,ssh,tftp,snmp,pop,imap、smtp、Telnet等等
      举例来说,UDP或TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层”。这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。

    传输层TCP/IP

    网络通信实际上是两台计算机中的进程与进程之间的通信,下面三层是解决计算机与计算机之间的联系,TCP是解决进程与进程之间的联系。

    TCP 

    TCP协议的三次握手和四次挥手详解_淘小欣的博客-CSDN博客_tcp协议三次握手和四次挥手 
    HTTP承载在TCP之上。打个比喻,网络是路,TCP是跑在路上的车,HTTP是车上的人。每个网站内容不一样,就像车上的每个人有不同的故事一样。

     

     

    TCP是传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

    TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是一种可靠的的运输服务,但是正因为这样,不可避免的增加了许多的开销,比如确认,流量控制等。对应的应用层的协议主要有 SMTP,TELNET,HTTP,FTP 等。

    三次握手

     

    客户端告诉服务器 我要连接

    服务器回应 可以连接

    然后客户端建立连接

      四次挥手

     

    客户端主动关闭 告诉服务器我要关闭

    服务器确认两次 是否关闭 是否真的关闭

    然后客户端回应 真的关闭 至此四次挥手

    TCP消息的可靠性传递

    流量控制

    TCP提供的一种机制可以让发送方根据接收方的实际接受能力控制发送的数据量( 利用滑动窗口机制可以很方便地在TCP连接上实现发送方流量控制。通过接收方的确认报文中的窗口字段,发送方能够准确地控制发送字节数。)

    拥塞控制

    当网络发送拥塞时,tcp会自我牺牲降低发送数据量,于是就有了拥塞控制,避免填满整个网络。

    • 慢开始:先将拥塞窗口大小设置为1,在获取ACK顺利的情况下每次拓宽2倍
    • 拥塞避免:让拥塞窗口大小每次增1
    • 快重传:收到三次重复数据包的ACK后,立刻重新发送该数据包后面一个数据包
    • 快恢复:快重传之后直接从阈值开始增加拥塞窗口大小

    重传机制

    • 超时重传
    • 快速重传
    • SACK
    • D-SACK

    超时重传 重传机制的其中一个方式,就是在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的 ACK 确认应答报文,就会重发该数据,也就是我们常说的超时重传。

    网络层(IP)

    IP地址是互联网为连入互联网内的每台计算机分配的一个独一无二的标识,就像现实中我们每个人的地址。通过IP地址,我们可以在互联网中准确找到目标计算机,并与其建立通信。

    数据链路层(MAC)

    MAC地址并不是对电脑而言的,而是针对网卡的,计算机上有几个网卡,就有几个MAC地址。

    使用IP地址的IP数据报一旦交给数据链路层就加上MAC地址封装成MAC帧,在实际的传送过程中,使用的源地址和目的地址都是MAC地址。 

    主机H1的IP数据报(网络层)向下交给数据链路层就被封装成MAC帧从HA1到HA3,然后路由器R1收到MAC帧后,向网络层传输并且解封去掉MAC帧的首部,就能看到IP,然后路由器进行路由选择,继续前面的传到数据链路层封装成MAC帧,如此循环直到到达目的主机所在的路由器然后发送给目的主机。(这里是用ARP协议将IP地址转换成MAC地址的) 

  • 相关阅读:
    【无标题】
    java中springBoot+oss基础使用
    【蒸汽冷凝器型号和PI控制】具有PID控制的蒸汽冷凝器的动力学模型(Matlab&Simulink)
    说说 Spring 定时任务如何大规模企业级运用
    Flink 开发环境搭建
    能链智电,“重”症在身
    kafka面试连环问(2),你能撑到哪一问?
    6.8完全二叉树的节点个数(LC222-E)
    爱上开源之DockerUI-自建Docker镜像仓库实战
    使用 gperftools 分析程序内存占用情况
  • 原文地址:https://blog.csdn.net/weixin_58473601/article/details/125551480