【关于网络的那些事儿~~~】

本文详细介绍了网络通信的基础知识,包括IP地址的32位整数与点分十进制表示,端口号的16位无符号整数及其范围,以及通信协议的重要性和作用。同时,阐述了协议分层的概念和好处,并通过实例展示了数据封装和分用的过程,帮助读者理解网络通信中的关键概念和技术。
摘要由CSDN通过智能技术生成

一、IP地址

描述了网络上的一个主机的位置

IP地址本质上是一个32位的整数,由于32位的整数不方便人来读和记忆,所以常见的操作是将这个32位的整数,按照每个字节(一个字节8位)分成四个部分,中间使用.分割。点分十进制

例如:123.139.170.255 代表的32位整数如下:

01111011 10001011 10101010 11111111

二、端口号

描述了一个主机上的某个应用程序.

端口号本质上是一个2个字节(16位)的无符号整数

范围是0-65535

三、协议

要想进行有效的通信,前提就是能够明确通信协议~~

本质上就是约定,发出来的数据是什么样的格式,接收方按照对应的格式来进行解析~~

四、协议分层

网络通信这个过程,其实很复杂,里面有很多很多细节。如果只是通过一个协议来约定所有的协议,这个协议就会非常庞大,复杂~~因此更好的办法就是把一个大的复杂的协议,拆成多个小的,更简单的协议,每个协议负责一部分工作~~

协议分层的好处:

以下图为例来解释分层协议的好处~~

 观察图可以看出在语言方面存在两种协议,即汉语和英语,在通信设备上也有两种协议,即无线电通信方式和连线电话方式。

好处一:每层协议不需要理解其它层协议的细节(更好的做到了封装)

打电话的人并不需要理解电话的工作原理,只需要协调两个人的语言;而通信设备并不需要听得懂两个人的语言,只需要协调双方使用的是同种设备进行通话~~

好处二:把对应层的协议替换成其他协议(更好的解耦合)

打电话的人,可以不使用有线电话,可以使用无线电话

打电话的人,也可以使用英语,不使用汉语~~

五、封装

举个栗子进行解释:

用户A在键盘上,输入了一个“hello”,想要将这个信息发送给B,按下发送键~~

应用层(QQ应用程序)

根据用户输入的内容,把数据构造成一个应用层的协议报文

例如下面这种格式的报文:

应用层协议就调用操作系统提供的API(称为Socket API),把应用层的数据,交给传输层(此时就已经进入操作系统内核了)

 传输层(操作系统内核)

根据传过来的数据,基于当前使用的传输层协议来构造一个传输层的协议报文,传输层最典型的协议,UDP,TCP,此处以TCP为例

 进行上述处理后,接下来就会把这个传输层的数据报,交给网络层

网络层(操作系统内核)

拿到了完整的传输层数据报,就会再根据当前使用的网络层协议(例如IP),再次进行封装~~把TCP数据报构造成IP数据报。还是添加上一个协议报头

 紧接着,当前的网络层协议,就会把这个IP数据报,交给数据链路层

数据链路层(驱动程序)

在刚才的IP数据报基础上,根据当前使用的数据链路层的协议,给构造成一个数据链路层的数据报.典型的数据链路层的协议,叫做“以太网”,就会构造成一个“以太网数据帧”

 此处比拟的总路径为:西安-》长春-》白城-》安广,代表着从西安去安广镇的路径,数据链路层里写的地址是相邻点之间的地址。

物理层(硬件设备)

物理层的任务,就是根据上述的以太网数据帧(其实就是一组0 1)把这里的0 1 变成高低电平,通过网线传输出去。或者把这里的0 1 变成高频/低频的电磁波,通过光纤/无线的方式传播出去~~

 通过以上步骤,可以视为将发送信息的一方所需要的操作进行逐个封装,进而发送出去~~

而B方收到信息后的一系列处理,将进行逐级的分用传达给B~~

六、分用


物理层(硬件设备,网卡)

B的主机的网卡感知到了一组高低电平~~然后就会把这些电平翻译成0 1 的一串数据~~

这一串 0 1 就是一个完整的以太网数据帧.

物理层就会把这个数据交给数据链路层进行处理~

数据链路层(驱动)

 数据链路层负责对这个以太网数据帧进行解析,去掉帧头和帧尾,取出里面的IP数据报,然后交给网络层协议

网络层(操作系统)

 网络层协议(IP协议)又会对这个IP数据报进行解析,去掉IP协议报头,取出里面的TCP数据报再交给传输层

传输层(操作系统内核)

 传输层协议(TCP)又会对这个TCP数据报进行解析,去掉TCP报头,取出里面的数据报,交给应用层~~

应用层(应用程序,QQ)

应用层就会调用Socket API 从内核中读取到这个应用层数据报~·再按照应用层协议进行解析~~

 最后根据解析结果给显示到窗口中。

上述过程即是分用的过程。

分用就是封装的逆过程,封装是从上往下,数据依次被加上了协议报头(包快递);分用是从下往上,数据依次被去掉协议报头(拆快递)。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值