网络中的一些基本概念

文章目录

  • 一、IP地址
  • 二、端口号
  • 三、协议
    • 3.1协议分层的作用
    • 3.2协议的封装和分用
      • 3.2.1封装
      • 3.2.2分用

一、IP地址

IP地址描述了一个设备在网络上的地址,计算机中使用32位4个字节的数字来表示这个地址,一般会把IP地址表示成4个0~255之间的十进制数字并且用3个.进行分割,这叫点分十进制。比如:192.168.2.100。

二、端口号

端口号用于区分一个主机上不同的应用程序。不同的程序可以关联/绑定到不同的端口号,一个端口号只能被一个程序绑定,但一个程序可以绑定多个端口号。端口号是一个2个字节的整数,2个字节表示0 ~ 65535,0一般不使用,1 ~ 1023这个范围的端口号系统有特殊用途,写程序时不应该占用。

三、协议

协议是一种约定,约定通信双方按照什么样的方式来传送数据。上层协议调用下层协议,下层协议给上层协议提供支持。协议分层:将具有类似作用的网络协议分到同一层。

3.1协议分层的作用

①通过协议分层可以让多个层次之间可以进行很好的交互配合,多个协议之间就不容易混乱。
②协议分层之后,上层和下层彼此之间就进行了封装,使用上层协议不必过多关注下层,使用下层协议也不必过多关注上层。
③每一层协议都可以根据需要灵活地替换。

3.2协议的封装和分用

3.2.1封装

①应用层:比如在微信应用程序中,微信会把用户输入的“你好”信息打包成一个应用层的数据包(这个数据包实际上是字符串拼接,数据包比如包含源微信、目的微信、发送时间、发送内容等,数据包约定的格式相当于应用层协议,应用层协议往往是根据具体的场景具体的需要由程序员自主决定)。
②传输层:对应用层数据包进行打包变成传输层的数据包。这里的打包过程本质上是字符串拼接,在应用层数据包的基础上拼接上传输层的包头。传输层的典型协议:TCP、UDP。比如传输层拼接上的包头就是UDP包头,包头之后的内容就是UDP的载荷,UDP包头中最关键的信息就是“源端口”和“目的端口”,UDP包头不是文本字符串而是二进制数据。在传输层数据包叫“数据段”。
③网络层:对传输层数据包进行打包变成网络层的数据包。网络层最主要的协议是IP协议。比如在传输层数据包前面拼接上IP包头,包头之后的内容就是IP的载荷,IP包头包含很多重要的属性,其中最重要的属性是源IP和目的IP。在网络层数据包叫“数据报”。
④数据链路层:对网络层数据包进行打包变成数据链路层的数据包。数据链路层比较典型的协议是以太网协议。比如在网络层数据包前面拼接上以太网包头,在网络层数据包后面拼接上以太网包尾,包头和包尾之间的内容叫载荷,以太网包头最重要的信息是源MAC地址和目的MAC地址(MAC地址也是用来描述一个设备在网络上的地址的)。在数据链路层数据包叫“数据帧”。
⑤物理层:把上述数据转换成二进制的01序列,通过光/电信号进行传输。

数据发送出去之后就会经过一系列的交换机和路由器进行转发,数据到达目的主机之后目的主机就要对数据进行分用。

3.2.2分用

①物理层:把光/电信号转换成二进制数据,得到以太网数据包(数据帧),把这个数据交给数据链路层对应的协议进行处理。
②数据链路层:通过以太网协议,针对以太网数据包(数据帧)进行解析。这个解析过程会解析出包头和包尾以及中间的载荷,把载荷进一步交给网络层的协议来处理。
③网络层:IP协议进一步针对这个网络层数据包(数据报)进行解析,去掉包头拿到载荷,再把载荷数据交给传输层。
④传输层:UDP协议针对这个传输层数据包(数据段)进行解析,去掉包头拿到载荷,把载荷进一步交给应用层(根据端口号来区分把数据交给哪个应用程序)。
⑤应用层:微信这个程序进一步解析数据,这个解析过程按照程序员自定义的应用层协议来展开,最终取出“你好”这个信息显示到界面上。

你可能感兴趣的:(网络)