• 网络传输之网络协议


    神奇的网络协议

         之所以说神奇的网络协议,是因为网络本身就觉得很神奇。当我想要给一个小伙伴传输文件时,我们两个人看到的都是一样的界面,就像通过QQ,今目标发送文件时,文件传输速度,传到了多少,都是一样的,但是我们实际上却隔着千山万水。
    这篇文章就来说一说,是如何实现传输的。这篇文章,是郭凯师哥点燃了自己对这方面的兴趣,所以研究不深入,只是粗谈。
    网络传输需要知道几个概念
    - 应用层
    - 传输层
    - 网络层
    - 链路层
    - 物理层


    应用层

         在这个层次上,用到的协议有HTTP(Hyper Text Transfer Protocol,超文本传输协议,用于Web浏览器),FTP(File Transfer Protocol,用于文件传输),IMAP(Internet Mail Access Protocol,用于邮件发送),Telnet(Telecom munication net work Protocol,电信网络协议,用于远程控制)/DNS(Domain Name System,域名命名系统)
         这一层主要就是,比如说我要传一个文件给一个小伙伴,那么就要用到FTP,这个文件就是一个数据包,然后再在里面加入FTP协议的一些内容在里面,形成一个新的数据包,再往下一层传输

    传输层

         数据包从应用层传输过来之后,就到了传输层。传输层的协议就是TCP/UDP,如果是HTTP,FTP,IMAP,Telnet协议,那么传输层用到的协议就是TCP协议,因为它们都是以TCP协议为前提的。如果用到的是DNS协议,那么传输层用到的协议就是UDP协议,同样,DNS协议也是以UDP协议为前提。
         那么传输层起到了一个什么样的作用呢?是端口–端口的作用。
         举个例子,咱们在用电脑的时候,会有很多消息过来,有QQ的消息,有Foxmail的消息,有网页的消息,那么电脑是如何识别的呢?就是通过传输层的相关协议来识别的。
    数据包从应用层传输过来之后,将相关协议加在数据包里面,重新形成一个新的数据包,往下传输

    网络层

         对于网络层的协议,大家应该有所熟悉。IP协议,ARP协议,RARP协议,还有一个协议,我想不起来了,就暂时说这三个协议。
         我想要传输东西给别人,那么如何才能确保那个人就是我想要传给的人呢?利用IP和MAC地址。咱们都知道IP和MAC地址都是唯一的,所以这样就可以确定一个唯一的对象。
         所以当数据包来到网络层的时候,就将IP协议一些内容加到里面,形成一个新的数据包,继续向下传递。
         但是有时候,我们只知道IP地址,不知道对方的MAC地址,这怎么办呢?ARP协议就是来解决这个问题的。ARP协议和网关共同起作用,可以通过IP地址,知道MAC地址。
         那么如果我知道对方MAC地址,不知道IP地址呢?RARP协议就来解决这个问题。

    链路层

         网络层的数据包往下传递就到了链路层。这一层主要的协议就是Ethernet(以太网)协议。就是以太网,听到以太网,大家是不是都很清楚?没错,就是以太网协议。
         以太网协议,在这里的作用,我个人觉得,就是快递的作用,快递员知道每一个人的地址,每个人都可以把快递(数据包,注:说数据包不太准确,因为在链路层是以帧为单位传递数据的,这样说是为了和上面说法一致)给他,他呢,就把快递送到了你的手中。
         这就是链路层的作用。你只知道你要传输的IP和MAC地址,但是不知道具体位置,以太网协议告诉你!
         数据包里面再加上以太网协议的一些内容在里面,形成新的数据包,继续往下一层传输。

    物理层

         物理层。这一层大家都应该比较容易理解。一说物理,那肯定都是落实到了实体。物理层协议主要有RS-232,RS-449,IEEE802.3等
         数据包里面的数据以0和1的形式,转换为电信号,告诉电脑,有数据过来了。然后电脑接收到电信号,开始根据各种协议进行解析,将最初的文件数据包解析出来。

         到这里,文件就算是传到对方那里了。
         为什么要有协议呢?个人觉得是为了数据的安全。
         但是其实是因为计算机网络本身就很复杂,如果想要实现联通全世界的话,就让本来复杂的事情,变得更加复杂。那么怎么办呢?就采用分层的办法,把复杂度慢慢降低,分成好几个不同的层次,这样就会变得简单了。

    这里写图片描述

         以上,就是网络传输的网络协议相关内容。而且以上大部分都是根据自己的理解所写,有可能有的地方有偏颇,还望指正
         感谢您的阅读~

  • 相关阅读:
    atitit.js浏览器环境下的全局异常捕获
    atitit.事件驱动的总结attilax
    atitit.事件驱动的总结attilax
    1.1.1. Atitit Cocos2d-JS v3.x的问题
    1.1.1. Atitit Cocos2d-JS v3.x的问题
    Atitit html5 Canvas 如何自适应屏幕大小
    Atitit  如何让精灵控件运动
    Atitit html5 Canvas 如何自适应屏幕大小
    Atitit  如何让精灵控件运动
    atitit.日期,星期,时候的显示方法ISO 8601标准
  • 原文地址:https://www.cnblogs.com/zll-0405/p/10786653.html
Copyright © 2020-2023  润新知