初识网络相关概念

目录

一、IP地址

1、概念

2、格式

3、特殊IP

二、端口号

1、概念

2、格式

三、协议

1、概念

2、五元组

3、协议分层

3.1 分层的好处

3.2 OSI七层模型

3.3 TCP/IP五层(四层)模型

四、封装和分用 

1、封装

2、分用

五、网络编程相关概念


一、IP地址

1、概念

IP地址主要用于标识网络主机、其他网络设备的网络地址。

简单理解就是,IP地址用来定位主机在网络中的位置~

IP地址类似于现实生活中,一个人的家庭住址~ 

2、格式

IP地址是一个32位的二进制数,通常用“.”把它分割为4部分,即a.b.c.d的形式~

其中,每个部分都是一个8位的二进制数(a,b,c,d都是0~255之间的十进制整数)~

3、特殊IP

127.*的IP地址用于本机环回测试(即本机到本机的网络通信),通常是127.0.0.1。

        通过IP地址,我们就可以确定数据是从哪一台主机传输到另一台主机,但是把数据传输到目标主机后,如何确定由哪个进程来接收数据呢?因此就有了端口号的概念~

二、端口号

1、概念

端口号可以标识主机中发送数据、接收数据的进程~

简单理解就是,端口号用来定位主机中的进程~

例如,我们在寄快递时,不光要写清楚收件人的地址(IP地址),还要写清楚收件人的姓名(端口号)~

2、格式

端口号是0~65535范围的数字,进程可以通过绑定一个端口号,来发送和接收数据。

(一个进程启动后,系统会随机分配一个端口)

注意:一个进程可以绑定多个端口号,但是两个不同的进程不能绑定同一个端口号~

        有了IP地址和端口号,就可以定位到网络中的唯一一个进程,但是网络通信是基于二进制0/1数据来传输,那么如何确定发送或接收的数据是什么类型呢?图片、视频、文本、其他?因此就需要使用网络协议来规定双方的数据格式。

三、协议

1、概念

协议,全称是网络协议,是网络通信经过的所有网络设备都必须共同遵守的一组约定、规则,只有遵守这个协议,计算机之间才能相互通信。

2、五元组

TCP/IP协议中,用五元组来标识一个网络通信:

(1) 源IP:标识源主机;

(2) 源端口号:标识源主机中,本次通信时,发送数据的进程;

(3) 目的IP:标识目的主机;

(4) 目的端口号:标识目的主机中,本次通信时,接收数据的进程;

(5) 协议号:标识发送进程和接收进程双方约定的数据格式。

3、协议分层

        由于实际中的网络通信非常复杂,需要约定的协议也非常复杂,因此大佬们通过协议的不同功能将协议进行了分层,并且约定:

(1) 上层协议调用相邻的下层协议(不能隔层调用);

(2) 下层协议给上层协议提供服务。

3.1 分层的好处

(1) 对协议进行封装,降低学习协议的成本,我们只学习需要的协议,而不必全部都学习;

(2) 方便维护,尤其是可以针对某层协议进行替换。

3.2 OSI七层模型

OSI七层模型既复杂又不实用,所以实际组建网络时,并不使用OSI七层模型。

3.3 TCP/IP五层(四层)模型

        TCP/IP模型就是把OSI七层模型中的上面三层合成为一个应用层,下面四层都一样,只是换了个说法~

每一层的作用

应用层:负责应用程序间沟通,我们的网络编程主要就是针对应用层。

传输层:端到端的传输,负责两台主机的传输。

网络层:点到点的传输,负责规划传输数据的路线。

数据链路层:相邻节点之间的传输方式。

物理层:底层基础设施,负责光/电信号的传递方式。

举个栗子:

张三在淘宝上下单一件商品后,商家就需要关心发件人信息和收件人信息(传输层)

快递公司就需要规划处一条合理的送货路线(网络层)

快递在每个中转站之间的运输方式可能也各不相同,可能是飞机运输、卡车运输……(数据链路层)

各种运输方式所需要的基础设施,如公路、铁路、航线……(物理层)

由于物理层是硬件方面的,其他四层是软件方面的,所以有些资料也称为TCP/IP四层模型~

四、封装和分用 

封装和分用描述了一次网络通信过程中是如何传输和接收数据的。

1、封装

假设我们通过主机A向主机B发生一条QQ消息:“Hello~”

主机A的发送过程:

应用层

QQ应用程序内部自己约定好一个应用层协议(具体内容我们无法知晓),当用户输入信息后,应用程序会把用户输入的字符串构造成约定好的应用层协议报文

假设QQ生成的报文是这样的:

接下来,QQ应用程序就会把生成的报文交给传输层协议处理。

传输层是操作系统内核实现的,应用程序通过代码调用操作系统提供的API,就可以把应用层的数据交给传输层~

传输层:

传输层中有很多协议,其中最典型的是TCP协议,以TCP协议为例:

TCP协议会在应用层传输过来的数据前面加上一个TCP的协议报头~

报头中包含很多信息,最关键的信息是源端口号和目的端口号~

传输层再把当前TCP数据报交给网络层进行处理。

网络层:

网络层中最典型的协议就是IP协议~

(这应该就是TCP/IP五层模型的名字由来吧,以两个典型的局部代指整体)

IP协议会把TCP传来的数据报视为一个整体,作为载荷部分,然后在前面再加上一个IP协议报头~

IP协议报头中也包含很多信息,其中最关键的信息是源IP和目的IP~

网络层再把当前IP数据包交给数据链路层处理。

数据链路层:

数据链路层中最典型的协议是“以太网”~

我们电脑上插的以太网线也是遵守“以太网”这个协议的,因此,以太网协议既管数据链路层,又管物理层。

数据链路层拿到IP数据包后,会在其前面加一个以太网数据帧的帧头,后面加一个帧尾。

数据链路层再把当前数据交给物理层进行处理。

物理层:

此时,数据已经组织好了,物理层就通过一些硬件设备(网卡)把这些数据的二进制bit流转换成光信号/电信号进行传输。

注意:不同的协议层对数据包有不同的叫法,在传输层叫做数据段,在网络层叫做数据报,在数据链路层叫做数据帧(可以不必特意区分)~

上述数据从上到下,层层添加信息的过程,就称为——封装

2、分用

分用就是封装的逆过程:把接收到的数据,从下到上,层层去掉信息的过程,就称为——分用

如果说封装是在进行“包装快递”的操作,那么分用就是“拆快递”的操作~

经过物理层、数据链路层、网络层、传输层的去信息处理之后,主机B的QQ应用程序最终就会收到主机A发来的QQ信息~

五、网络编程相关概念

1、发送端:在一次网络数据传输时,数据的发送方进程,称为发送端。发送端主机即网络通信中的源主机。

2、接收端:在一次网络数据传输时,数据的接收方进程,称为接收端。接收端主机即网络通信中的目的主机。

3、收发端:发送端和接收端两端,简称为收发端。

4、请求和响应:

一般来说,获取一个网络资源,涉及到两次网络数据传输:

第一次:请求数据的发送;

第二次:响应数据的发送。

5、服务器:在常见的网络数据传输场景下,把提供服务的一方进程,称为服务器,可以对外提供服务。

6、客户端:获取服务的一方进程,称为客户端。

7、常见的服务器客户端模型:

常见的场景下,客户端是指给用户使用的程序,服务端是提供用户服务的程序。

(1) 客户端向服务器发送请求;

(2) 服务器读取请求并解析,执行相应的业务处理;

(3) 服务器返回相应:发送业务处理结果;

(4) 客户端根据响应数据,展示处理结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃点橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值