网络传输之网络协议
神奇的网络协议
之所以说神奇的网络协议,是因为网络本身就觉得很神奇。当我想要给一个小伙伴传输文件时,我们两个人看到的都是一样的界面,就像通过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的形式,转换为电信号,告诉电脑,有数据过来了。然后电脑接收到电信号,开始根据各种协议进行解析,将最初的文件数据包解析出来。
到这里,文件就算是传到对方那里了。
为什么要有协议呢?个人觉得是为了数据的安全。
但是其实是因为计算机网络本身就很复杂,如果想要实现联通全世界的话,就让本来复杂的事情,变得更加复杂。那么怎么办呢?就采用分层的办法,把复杂度慢慢降低,分成好几个不同的层次,这样就会变得简单了。
以上,就是网络传输的网络协议相关内容。而且以上大部分都是根据自己的理解所写,有可能有的地方有偏颇,还望指正
感谢您的阅读~