~~网络编程(二):层级初识~~

进击のpython

*****

网络编程——层级了解


前面也提到了,就是计算机们要是想互相玩耍,就必须要接入internet

  • 物理层

    最起码你得连接网线吧(说用无线的稍一稍),连接的网线就是物理层

    还有什么光缆啊,电缆啊,无线电波啊什么杂七杂八的,他能干什么呢?

    你想啊,这个电啊,有两种状态,高和低,那也就对应着计算机的二级制1和0

    那我们就可以根据高低电平的变化来传输数据

    毕竟1和0也是带有数据的嘛!那物理层的作用就出来了!

    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0


  • 数据链路层

    数据链路层,你可以不用太纠结,你只需要知道他是干什么的就行

    我们刚才啊,在物理层知道了我们将信息通过1,0传输

    但是单纯的1,0是没有意义的,我们必须要有个规定

    规定一下电信号多少位一组,每组是什么意思才行

    那,这个工作就交给了数据链路层

    数据链路层的功能:定义了电信号的分组方式

    而这里,就用到了我们的第一个协议:以太网协议

    以太网协议是用来干什么的呢?

    假设我要给你发快递,除了要把东西打包以外

    是不是还要写寄件人收件人和寄货信息呢?

    那计算机怎么知道你就是你呢??

    于是大家一研究,得了!就用每个电脑独一无二的mac信息当作信息识别吧

    并且在发送信息之前,在信息的开头添加发送人的mac信息,收信人的mac信息,还有数据类型

    这一坨信息,我们就管他叫报头.


    现在信息打包了,我要怎么发出去呢???

    现在的信息传播方式是"广播方式"

    什么叫广播?

    咱俩在一个有很多人的屋子

    然后我就嗷唠(喊)一嗓子!"XXX你的快递!"

    然后你听到了,也嗷唠(喊)一嗓子!"我在这捏!"

    然后我就把东西给你了!这种方式就叫广播!

    你也看到局限性了吧,你要是不在这个屋子

    那我喊完了你也听不到,那信息就没办法传达

    这个屋子就是计算机的局域网!

    所以,以太网的信息传输是在局域网内展开的


  • 网络层

    那看完数据链路层你就有疑问了,那我不在同一个局域网,怎么办?

    也就是说,如果在同一个局域网,我就广播,如果不在同一个局域网,我就有一种别的方法

    呐!网络层的作用出来了

    网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

    在这里我们要了解第二个协议:IP协议

    其实IP协议和以太网协议差不多(细分的话,自己去百度吧)

    他的作用就是找你在哪个屋子,然后好去吼你

    也是在我要传的信息前面加一个报头!

    这样我要传的信息就变成了 IP报头+以太报头+信息 这种形式了

    这里吧,应该详细的说一下,但是我建议你自己去查查

    锻炼一下自学能力好不啦铁汁


  • 传输层

    现在我通过上面的两层,指定能找到你了吧

    好,那我找到你了,我是不是把信息给你了?

    但是你打不开啊,因为我得传给你的QQ上才行啊

    那我把本该传给QQ的信息传给快播,那也不行啊

    那问题就来了,我如何在你那么多的应用里找到QQ呢?

    在计算机里啊,因为有网卡嘛,然后就把每个应用都分配个端口

    比如我的电脑的QQ的端口是80,那你的电脑的QQ的端口就也是80

    我这面的信息,再加上端口,传到你这,就通过端口来找你电脑上的应用

    这样就达到了应用之间的信息传递,诶嘿!传输层的作用就来了

    传输层功能:建立端口到端口的通信

    在这,我们还要知道两种协议:UDP协议和TCP协议

    这两种协议呢,稍后再说,现在你知道这有两种协议就行


  • 应用层

    应用层就很好理解了,就是你电脑里面的软件,放着的位置就是应用层


那其实我们这个顺序是接收的顺序

如果按照发送的来讲的话,就是把这个顺序倒过来

也就是说,我们一般发信息,是发出了这样的鬼东西

以太网头+IP头+UDP/TCP头+信息


*TCP*
*UDP*
posted @ 2019-07-31 00:00  吃夏天的西瓜  阅读(750)  评论(0编辑  收藏  举报