zoukankan      html  css  js  c++  java
  • 网络传输之网络协议

    神奇的网络协议

         之所以说神奇的网络协议,是因为网络本身就觉得很神奇。当我想要给一个小伙伴传输文件时,我们两个人看到的都是一样的界面,就像通过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的形式,转换为电信号,告诉电脑,有数据过来了。然后电脑接收到电信号,开始根据各种协议进行解析,将最初的文件数据包解析出来。

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

    这里写图片描述

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

  • 相关阅读:
    Android AHandle AMessage
    android java 与C 通过 JNI双向通信
    android 系统给应用的jar
    UE4 unreliable 同步问题
    UE4 difference between servertravel and openlevel(多人游戏的关卡切换)
    UE4 Run On owing Client解析(RPC测试)
    UE4 TSubclassOf VS Native Pointer
    UE4 内容示例网络同步Learn
    UE4 多人FPS VR游戏制作笔记
    UE4 分层材质 Layerd Materials
  • 原文地址:https://www.cnblogs.com/zll-0405/p/10786653.html
Copyright © 2011-2022 走看看