网络基础

一、协议:

协议:减少通信成本用于形成快速共识,本质是一种约定。

定好协议,但是你用频率表示01,我用强弱表示01,就好比我用中国话,你用葡萄牙语⼀样,虽 然大家可能遵守的一套通信规则,但是语言不同,即是订好了基本的协议,也是无法正常通信的

计算机之间的传输媒介是光信号和电信号,通过"频率"和"强弱"来表示0和1这样的信息,要想传递各种不同的信息,就需要约定好双方的数据格式。

所以,完善的协议,需要更多更细致的规定,并让参与的⼈都要遵守。

• 计算机生产厂商有很多;

• 计算机操作系统,也有很多

• 计算机网络硬件设备,还是有很多。

• 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议。

二、分层:多视角,同层直接交流,不同层可替换,解耦。

1.OSI七层模型:

OSI(OpenSystemInterconnection,开放系统互连)七层网络模型称为开放式系统互联参考 模型,是⼀个逻辑上的定义和规范。

• 把网络从逻辑上分为了7层.每一层都有相关、相对应的物理设备,比如路由器,交换机。

• OSI七层模型是⼀种框架性的设方法,其最主要的功能使就是帮助不同类型的主机实现数据传输; • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

• 但是,它既复杂又不实用,所以我们按照TCP/IP四层模型来讲解.

2.TCP/IP五层(或四层)模型:

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的网络来完成自己的需求.

• 物理层:负责光/电信号的传递方式.比如现在以太网通用的网线(双绞线)、早期以太网采用的的同 轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最⼤大传输速率、传输距离、抗干扰性等.集线器(Hub)工作在物理层。

• 数据链路层:负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步(就是说从网线上 检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等⼯作.有以太网、令牌环网,无线LAN等标准,交换机(Switch)工作在数据链路层。

• 网络层:负责地址管理和路由选择.例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由).路由器(Router)工作在网络层。

• 传输层:负责两台主机之间的数据传输.如传输控制协议(TCP),能够确保数据可靠的从源主机发送 到目标主机。

• 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等.我们的网络编程主要就是针对应用层。

简单总结一下就是数据链路层找路由器,网络层定位目标主机,传输层传数据,最后应用。

3.再识协议:

用TCP/IP协议解决网络长距离问题。TCP协议能分层是因为问题能被分层

协议本质就是约定好的结构体,用结构体来描述组织报文和对应的层。

现在主机A发送12个字节给主机B,操作系统是用C语言写的,所以双方的网络代码一样,左边有一个这样的结构体右边也有,主机B收到这12个字节然后强转为这个约定好的结构体类型就知道每个字段是什么含义,可以利用双方的结构体是什么类型这就是协议。

因为协议栈是分层的,所以每层都有双方约定好的协议,同层之间互相可以认识对方的协议。

三、网络传输基本流程:

1.mac地址:

MAC地址⽤来识别数据链路层中相连的节点,用来定位目标主机,解决当下要去哪里的问题。

• 长度为 48 比特位,即 6 个字节.⼀般用(08:00:27:03:fb:19) 16 进制数字加上冒号的形式来表示。

• 在网卡出厂时就确定了,不能修改.mac地址通常是唯⼀的(虚拟机中的mac地址不是真实的mac地 址,可能会冲突;也有些网卡支持用户配置mac地址)。

• windows>ipconfig/all

多种局域网通信标准+一种广义网通信标准。

以太网中,任何时刻,只允许一台机器向网络中发送数据。

• 如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞。

• 所有发送数据的主机要进行碰撞检测和碰撞避免。

• 没有交换机的情况下,⼀个以太⽹就是⼀个碰撞域 • 局域⽹通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标mac地址判定。

• 这里可以试着从系统角度来理解局域网通信原理 初步明白了局域网通信原理,再来看同⼀个网段内的两台主机进行发送消息的过程:

而其中每层都有协议,所以当我进行上述传输流程的时候,要进行封装和解包

从上往下封装,从下往上解包:

•报头部分,就是对应协议层的结构体字段,我们一般叫做报头。

• 除了报头,剩下的叫做有效载荷

• 故,报文=报头+有效载荷

• 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame). • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装 (Encapsulation)。

•首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。

• 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的"上层 协议字段"将数据交给对应的上层协议处理

任何协议除了应用层,报头必须要能做到和有效载荷进行分离的能力。报头中必须包含如何将自己的有效载荷交付给上层的哪一个具体协议。

封装和解包就是入栈和出栈。

从今天开始,我们学习任何协议,都要先宏观上建立这样的认识:

•要学习的协议,是如何做到解包的?只有明确了解包,封包也就能理解。

•要学习的协议,是如何做到将自己的有效载荷,交付给上层协议的?

主机之间通信本质是两个协议栈在通信。

IP地址,标识主机的唯一性

路由器:发现不是发送给自己局域网的主机就发给它。

2.ip地址:

ip协议有两个版本, 指IPv4和IPv6。

• IP 地址是在 IP 协议中,用来标识网络中不同主机的地址。

• 对于 IPv4 来说,IP 地址是一个 4 字节,32 位的整数;。

• 我们通常也使用"点分十进制"的字符串表示IP地址,例如:数字表示一个字节,范围是 192.168.0.1,用点分割的每一个 0-255,跨网段的主机的数据传输.数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

对比IP地址和Mac地址的区别:

• IP地址在整个路由过程中,一直不变(目前,我们只能这样说明,后面在修正)。

• Mac地址一直在变。

• 目的IP是一种长远目标,Mac是下一阶段目标,目的IP是路径选择的重要依据,mac地址是局域⽹ 转发的重要依据 提炼IP网络的意义和网络通信的宏观流程。

相关推荐
0和1的舞者2 小时前
《网络编程核心概念与 UDP Socket 组件深度解析》
java·开发语言·网络·计算机网络·udp·socket
华普微HOPERF2 小时前
Matter协议,如何赋能智能家居构建跨生态的互操作网络?
网络·智能家居
河南博为智能科技有限公司3 小时前
动环监控终端-守护变电站安全运行的智能核心
运维·服务器·网络·物联网
无心水3 小时前
【Python实战进阶】5、Python字符串终极指南:从基础到高性能处理的完整秘籍
开发语言·网络·python·字符串·unicode·python实战进阶·python工业化实战进阶
Top`4 小时前
两个服务之间传递的数据本质上是字节码(Byte Stream)
网络
dyxal4 小时前
非对称加密:彻底解决密钥分发难题的数字安全革命
服务器·网络·安全
少云清6 小时前
【功能测试】4_Web端抓包 _网络知识
网络·功能测试·抓包
观望过往8 小时前
WebSocket 技术全解析:原理、应用与实现
网络·websocket·网络协议
mohesashou9 小时前
HCIP作业(OSPF综合实验)
网络·智能路由器