网络原理初识

网络原理初识

网络发展历程

独立模式

一开始电脑之间是相互独立的,并没有网络的概念

网络互联

根据网络互联的规模不同,就分为了局域网(LAN) 和 广域网(WAN)

局域网(local area network)是在一定的空间范围内进行电脑联机

广域网(wide area network) 通过路由器, 将多个局域网连接起来

IP地址

IP地址主要是用于识别网络主机 其他网络设备的网络地址, 也就是说, ip地址是用来定位主机的网络地址

回环地址: 127.0.0.1

端口号

在网络通信中, ip地址是用于识别主机地址网络,端口号是识别主机中发送 数据 接收数据的进程的, 也就是说, 端口号用于定位主机中的进程

网络协议

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
例如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互
通信交流。通常由三要素组成:

  1. 语法:即数据与控制信息的结构或格式;
    类似打电话时,双方要使用同样的语言:普通话

  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
    语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
    类似打电话时,说话的内容。

  3. 时序,即事件实现顺序的详细说明。
    时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
    协议(protocol)最终体现为在网络上传输的数据包的格式。

简单来说,协议是一种约定, 发送方和接收方约定好, 按照特定的格式进行传输

协议有很多并且也很复杂,这就不是很好

所以可以把这些协议按照相应的功能进行分层

协议分层

上层协议调用下层协议

下层斜体给上层协议提供服务

不能隔层调用

当前的网络分层主要是两种典型的分法:

OSI 七层

TCP/ IP五层(四层)

OSI七层

image-20221009133149416

TCP/ IP协议

OSI主要是存在于教科书上的,显示生活中还是主要是TCP/IP协议为主,所以是重点,之后会重点进行讲解

image-20221009133419108

其实OSI与TCP/IP协议最下面的四层是一样的,只是表述不同

OSI协议上面的三层合成一个就变成了TCP/IP的应用层了

应用层 : 应用程序

传输层 : 端与端的传输

网络层 : 点与点的传输

数据链路层: 相邻节点的传输

物理层 : 底层基础设施

最后一层是物理层,属于硬件,对于程序员来说,可以不用管物理层,所以有的资料上说, TCP/IP只有四层,但是最好还是记得五层

插一个小知识点: 缓存cache

在有些比较复杂的计算, 耗时会比较久, 为了提高速度,减少计算次数, 就可以把重复的计算结果记录下来, 这种用于记录结果的数据结构就叫做缓存(cache), 广义上说,动态规划也就是一种缓存,本质就是记录中间的结果

封装与分用

进行数据传输的时候,到底是如何进行的呢?

这就要用到TCP/IP七层协议了

假设当前A在2022年10月29号的20点给B发了一条微信"hi",这条数据到底是如何 传输的?

封装

一.应用层

微信程序已经约定好了一种应用层协议(自定义协议),具体是怎么约定的,我们不得而知,假设是按照下面的自定义协议

image-20221030111756869

微信的应用程序会将这个数据报交给传输层协议 ,进行进一步处理

二.传输层

传输层是操作系统内核实现的, 操作系统会提供一些API给应用程序调用, 就能将应用层的数据交给传输层(交给了操作系统内核)

这里的操作系统提供的API叫做socket api

所以的API 全名叫做application programing interface

应用程序变成接口, 所谓的API就是别人写好的一组类/方法,给我们直接来调用

传输层里面有很多的协议, 最典型的就是TCP协议, 此处就以TCP协议为例

TCP协议要在之前数据的基础上, 加上TCP的数据报头,之前的部分看做是载荷部分(palyload)

image-20221030112914815

TCP数据报头之后就要交给网络层处理了

三.网络层

在网络层中也是有很多的协议,其中最典型的就是IP协议

IP协议会把之前的这个TCP数据报看做是载荷部分, 在前面加上IP协议报头

image-20221030113112170

在IP协议中有很多的信息,最关键的就是源IP和目的IP

构造好IP数据报之后,IP协议继续将整个数据报交给数据链路层

上面提到的传输层的TCP协议和网络层的IP协议里面都有很多的信息,后面会重点讲解

四.数据链路层

数据链路层的协议也很多,最主要的就是"以太网协议"

电脑差插上网线, 这个网线叫做以太网线,也是遵守以太网协议的

以太网协议既管数据链路层,又管物理层

以太网协议会将之前的这个数据报看做是载荷部分,在前面和后面分别加上帧头和帧尾

image-20221030114027551

接下来,数据链路层就会将上面的数据报交给物理层

五.物理层

数据已经组织好了,通过物理层的网卡将上述的二进制bit刘, 转换成光信号/电信号,并进行传输

以上的五个步骤,数据从上到下, 层层添加信息的过程叫做"封装"

分用就是封装的逆过程

举一个例子:

封装就是一步一步打包快递

分用就是一步一步拆快递

分用

具体的分用过程 :

六.物理层

接收方的网卡收到的光信号/电信号,就把这个数据交给了数据链路层,又以太网协议负责解析

七.数据链路层

当前拿到了以太网数据帧,由以太网协议,去掉帧头和帧尾,取出载荷部分

将取出的载荷部分交给网络层

image-20221030114748650

八.网络层

IP协议达到数据报,去掉IP报头,得到载荷部分,交给传输层

image-20221030114911026

九.传输层

传输层TCP协议对数据报进行解析, 去掉TCP报头,交给应用层

image-20221030115016790

十.应用层

微信程序对数据报进行解析, 取出其中的信息显示在界面上

这就完成了A给B发送微信的整个过程

以上的过程只是描述了发送发和接受方的封装与分用, 实际上传输还有很多的中间过程, A和B之间不是一个网线直连,所以中间还要经过交换机/路由器进行转发,所以真实的过程只会更加复杂.

上层协议调用下层协议,下层协议给上层协议提供服务

这里相邻的层是可以相互交互的,但是不能跨层

以上就是关于网络部分的初识,主要是介绍一下关于网络协议的概况,后面会具体展开介绍网络协议的细节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值