【LInux网络编程】网络基础知识(一)

一、网络协议

在这里插入图片描述

1.1、什么是协议

协议是双方共同遵守的约定和规则

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

一个简单的例子就是,协议就像是普通话,你说闽南语我听不懂,我说四川方言你听不懂,但是我们都听得懂普通话,所以我们之间的交流就需要用普通话

1.2、协议有什么用

网络中的协议是指在数据传输过程中通信双方需要遵循的规则和约定,它们规定了发送和接收数据时所使用的格式、数据包大小、传输速度、错误恢复、传输控制、数据加密等等一系列确保通信顺利完成和数据安全稳定的规范和约束。

网络协议的存在有以下几个重要的作用:

  1. 确保通信的正确性和可靠性,避免数据在传输过程中出现错误或丢失。

  2. 规范网络通信的方式,使得不同设备和系统可以互相通信和交流。

  3. 提高数据传输效率,避免网络拥堵和数据传输冲突。

  4. 保障网络的安全性,防止数据泄漏和黑客攻击。

因此,网络协议是网络通信的基础和关键,在保障网络安全和数据传输的同时,也提升了网络的效率和稳定性。

二、协议分层

2.1、为什么协议要分层

分层的目的:把复杂的协议系统分解成若干个独立的层次,每一层承担自己特定的任务,并且通过定义它们之间的接口和协议来协同工作,使得协议系统更加灵活和可定制,能够适应不同的应用场景和需求,同时还能够提高协议系统的可靠性和提高效率,降低维护成本。

  1. 简化系统:每一层的协议都只需要关心自己的任务,不需要理解整个协议系统的复杂性。这样可以降低了协议系统的复杂度,降低了系统的维护和开发成本。

  2. 易于扩展和升级:将协议系统分解成不同的层次,每一层都是相对独立的,可以根据不同的应用需求添加新的功能模块。

  3. 提高互操作性:将协议系统分层,每一层的协议都定义好了接口规范,不同的设备和系统只需要遵循这些规范,就可以相互通信和交流。

  4. 降低了错误的传播:由于每一层的协议都是相对独立的,因此如果某一层出现了故障或错误,对其它层的影响也会比较小,从而降低了错误的传播几率,提高了系统的可靠性。

2.2、OSI七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;

OSI七层模型

它既复杂又不实用; 所以我们计算机网络主要学的是TCP/IP五层(或四层)模型

2.3、TCP/IP五层(或四层)模型

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

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

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

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

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

TCP/IP五层模型模型

三、网络传输流程

3.1、基本知识

  1. 两台局域网的主机能够直接通信
  2. 协议每一层都有,每一个协议的最终表现就是协议都要有报头
  3. 协议通常是通过协议报头来表达的
  4. 每一份数据最终在被发送或者在不同的协议层中,都要有报头
  5. 报文=报头+有效载荷
  6. 封装:有效载荷+各层报头(用谁的协议加谁的报头)
  7. 解包:将报头和有效载荷分离的过程
  8. 分用:将有效载荷交给指定协议解包的过程

通信原理:每一台主机都有网卡,每一张网卡都有自己的MAC地址 ,全球唯一。
报头:可以理解为快递单 上面有从哪来到哪去 每层都有对应的解释

3.2、同一局域网的网络传输

封装:有效载荷+各层报头(用谁的协议加谁的报头)
解包:将报头和有效载荷分离的过程
分用:将有效载荷交给指定协议解包的过程

在这里插入图片描述
通过上图可以认为:

  1. 同层协议可以相互通信
  2. 也可以认为协议是先向下交付,在向上解包

3.3、跨网段的网络传输

跨网段的网络传输

  1. 同层协议在经过传输后看到的东西都是一样的
  2. 路由器既属于A局域网又属于B局域网,也可能属于更多的局域网,具体取决于有多少网络接口
  3. IP层与IP协议的作用:忽略底层驱动程序的差异性,让上层可以更好的通信
  4. 路由器内部就相当于一个IP层,数据从底层向上需要解包,从路由器向下又需要封装,通过这一过程,达到忽略底层驱动程序差异性的作用

四、数据包的封装和分用

4.1、数据封装过程图

在这里插入图片描述

4.2、数据分用过程图

在这里插入图片描述

五、网络中的地址

5.1、IP地址

IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

IP地址是用来标明发送主机和接受主机的,即从哪来,到哪里去,IP地址能为网络传输中的路由器提供方向

5.2、MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改.mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可 能会冲突; 也有些网卡支持用户配置mac地址).

MAC地址是用来路由的,即找方向,MAC地址在路由器内部的路由表中能找到,通过路由表可以用来传输数据到另一台MAC地址的主机,通过不断的MAC地址路由找到最终要到达的主机

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翻转的乌龟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值