互联网协议知多少

文章目录

  • 互联网协议知多少
    • 互联网协议是啥呢/li>
    • 什么叫做协议/li>
    • 互联网协议能干啥/li>
    • 分层模型
      • 物理层
      • 数据链路层
      • 网络层
      • 传输层
      • 应用层
    • 总结
    • 欢迎点赞,关注,收藏

互联网协议知多少

互联网协议是啥呢/h2>

在解释这个问题前,我们来了解一下,什么是网络通信,没有网络通信,这个协议都没得玩了

  • 网络

用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的

  • 通信

人与人之间通过某种媒体进行的信息交流与传递

那么网络通信就不难理解了吧

网络通信 就是 通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。

局域网中最常用的有三个网络协议,我们在使用协议的时候,应根据需要来选择合适的网络协议

  • NETBEUI协议

NetBios增强用户接口,它是NetBIOS协议的增强版本

它不需要附加的网络地址和网络层头尾,可以很快有效且适用于只有单个网络或整个环境都桥接起来的小工作组环境

  • IPX/SPX

具有强大的路由功能,在复杂环境下具有很强的适应性,合于大型网络使用

  • TCP/IP协议

,

网络层的IP协议和传输层的TCP协议组成,他是能够在多个不同网络间实现信息传输的协议簇,是Internet最基本的协议

什么叫做协议/h2>

字面上理解,协议,就是我和你约定好规则,我们按照规则办事情,互联网协议是啥意思呢

互联网协议又是个啥

互联网协议知多少

互联网协议能干啥/h2>

网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合

它定义了通信时信息必须采用的格式和这些格式的意义。

大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽

平时我们说的,二层交换机协议,三层协议等等都是啥意思呢/strong>

例如一台设备上的第 与另一台设备上的第 进行通信的规则就是第 协议。

说到层级,我们分享一下互联网的分层模型

分层模型

互联网的逻辑实现被分成了很多层,每一层都有自己特有的功能,就像建房子,或者搭积木一样

需要一层一层的搭建,万丈高楼平地起,每一层都靠下一层支持。

平时作为用户,基本上接触到的只是最上面的那一层,也就是应用层,不知道或许是根本感受不到还有其他的层次

但是作为一个开发,我们还是要尽可能多的去详细了解每一层的原理,这样才能有效的指导我们的具体实践

开始放图~

互联网协议知多少

如上图,MAC地址通常用12个十六进制数表示,也就是说长度是48个二进制位

  • 前6个十六进制数是厂商编号
  • 后6个是该厂商的网卡流水号

有了MAC地址,你就可以上天了吗底咋传输/p>

互联网协议知多少

如图,一个包源MAC是,目的MAC是,那么,这个包会发到同局域网的所有朋友,每一个朋友都会读取这个包的数据,判断目的MAC地址和自己的MAC地址是否一致,

  • 若一致则处理
  • 若不一致,则丢弃

ARP协议来获取接受方的MAC地址,有了MAC地址之后,如何把数据准确的发送给接收方呢实这里以太网采用了一种很”原始”的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机都发送,让每台计算机读取这个包的”标头”,找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做”广播”(broadcasting)。

网络层

上面讲到包数据中写好源MAC,目的MAC,就可以在同一个局域网中找到接受方,可是如果是源机器和目的机器不在同一个网段的话咋整/p>

理论上依靠MAC地址,你电脑的网卡就可以找到身在世界另一个角落的某台电脑的网卡了,但是这种做法有一个重大缺陷就是以太网采用广播方式发送数据包,所有小伙伴都要去读你的这个包,效率低,且发送的数据只能局限在发送者所在的子网络

如果两台计算机不在同一个子网络,广播是传不过去的。

用咱们的小脑袋想一下,如果你发送的一个消息,世界上的每一个机器都能收到,那么网络得多拥堵啊

还是有办法解决滴

那就判断是不是在同一个子网嘛,

  • 如果是同一个子网络,就采用广播方式发送
  • 不是在同一个子网 , 那就采用路由方式发送

这个时候,就有了网络层

网络层引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络

这套地址就叫做网络地址,简称网址

那么网络层具体是咋传输数据的咧/strong>

我们要知道如下几个点

  • 每台计算机有了两种地址,一种是MAC地址,另一种是网络地址

  • 两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是网络管理员分配的

  • 网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡

因此,我们从上述描述就可以知道,我们在处理网络数据包的时候,肯定要先处理网络地址,再处理MAC地址,这也就是后面会说到的数据包的传输流程

数据链路层,用,协议用

那么,网络层,现在我知道了用网络地址,那么是用啥协议/strong>

使用,叫做。

协议所它所定义的地址,就被称为地址

现在广泛采用,这个版本规定,

  • 网络地址由32个二进制位组成
  • 通常用分成四段的十进制数表示地址,从0.0.0.0一直到255.255.255.255

互联网协议知多少

经过上面说到的 和 我们已经可以在互联网上任意两台主机上建立通信

可是基于网络和应用的复杂性,问题又来了

同一个设备上的多个应用程序都需要收发信息,我们咋区分哪一个数据包是给哪个程序的,又咋区分哪个数据包是哪个程序发出去的个咋整/strong>

比如说,同样是数据包,我们电脑上的 WX数据包,和QQ数据包,是咋区分出来的/p>

想一想,基于现有的协议肯定不够玩了,那就加码吧

添加一个参数,表示这个数据包到底供哪个程序(进程)使用。

此时,端口就出现了,

  • 它就是每一个使用网卡的程序的编号

  • 每一个端口号,标志一个可执行程序

  • 端口号是,0到65535之间的一个整数,正好16个二进制位

  • 0 – 1023的端口被系统占用,用户只能选用大于1023的端口

现在,万事俱备了,用,我们就能实现唯一确定互联网上一个程序,进而实现网络间的程序通信了

那么把这个端口号加入到数据包中,又催生出了一些协议,那就是传输层的协议

  • TCP协议
  • UDP协议

UDP协议,就是在数据前面加上端口号

UDP数据包,也是由”包头”和”数据”两部分组成:

  • ”包头”部分主要定义了发出端口和接收端口,一共只有8个字节
  • ”数据”部分就是具体的内容。总长度不超过65,535字节,正好放进一个IP数据包。

UDP协议的优点

  • 比较简单,容易实现

缺点

  • 可靠性较差,一旦数据包发出,无法知道对方是否收到

基于以上缺点,就有了TCP协议,来提高网络的可靠性

TCP协议优点

  • 能够确保数据不会遗失
  • 安全,可靠的传输

缺点

  • 过程复杂
  • 实现困难
  • 消耗较多的资源

TCP数据包没有长度限制,理论上可以无限长,可是为了保证网络的效率,通常的长度不会超过的长度,也就是小于,这也确保单个不必再分割。

关于TCP为什么可靠,什么措施来保证可靠的,TCP会涉及到哪些原理,我们后续的文章再详细分享

互联网协议知多少

总结

  • 简单介绍了网络通信,互联网协议
  • 介绍了网络五层模型的每个层级的产生原因,每一层对应的协议是如何出现的
  • 数据包在每个层级的封装过程

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

互联网协议知多少

好了,本次就到这里,下一次 分享GO的网络编程

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是小魔童哪吒,欢迎点赞关注收藏,下次见~

文章知识点与官方知识档案匹配,可进一步学习相关知识Go技能树首页概览1915 人正在系统学习中

来源:阿兵云原生

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月4日
下一篇 2021年5月4日

相关推荐