当前位置: 首页 > news >正文

【Linux】网络基础1

文章目录

  • 网络基础1
    • 1. 计算机网络背景
      • 1.1 网络发展
    • 2. 认识协议
      • 2.1 网络协议
      • 2.2 OSI七层模型
      • 2.3 TCP/IP五层(或四层)模型
    • 3. 网络传输基本流程
      • 3. 1 数据报封装和分用
    • 4. 网络中的地址管理
      • 4.1 认识IP地址
    • 5. 认识MAC地址

网络基础1

1. 计算机网络背景

1.1 网络发展

独立模式:计算机之间相互独立

网络互联:多台计算机连在一起,完成数据共享

局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起

7ow7sy8zik-1691558754512.png

广域网WAN:将相隔千里的计算机都连在一起

image-20230809132611223

这里所谓的“局域网”和“广域网”都是相对的

2. 认识协议

“协议”就是一种约定

计算机生产的厂商很多,计算机的操作系统也很多,计算机的网络硬件也很多。怎么让这些计算机之间能够相互通信那?

就需要约定一个共同的标准,这就是“网络协议”

2.1 网络协议

4x8dve4se9-1691559118526.png

软件分层之后,每一层只关注自己同层的功能,只使用下层的接口,任何一层出现问题都不会影响到下一层,大大减少开发者的维护成本

高内聚、低耦合

2.2 OSI七层模型

它的最大优点是将服务、接口、协议三个概念明显的区分开来,但是它复杂又不实用,所以一般都谈TCP/IP四层模型

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

image-20230809133904848

3. 网络传输基本流程

网络传输流程图:

ynwdiud4ag-1691559801557.png

两台计算机TCP/IP协议通讯的过程如下:

image-20230809134415606

3. 1 数据报封装和分用

  1. 每一层都会把上一层给自己的数据,作为有效载荷
  2. 每一层都有自己的协议报头
  3. 对应的层 报头 + 有效载荷 = 发送的报文(封装)
  4. 在逻辑上同层协议都认为自己在和对方的同层协议通信
  5. 同层协议,能够相互认识对方的报头
image-20230809134838164

4. 网络中的地址管理

4.1 认识IP地址

IP协议有两个版本,IPV4和IPV6。对于IPV4来说,IP地址是一个四字节32位的整数

局域网通信的原理:

局域网任何时刻只允许一个人向局域网中发送消息,任何人要通信都要有一个唯一的标识符,对于计算机来说每台计算机都配有网卡。网卡在出厂的时候就写入了sn号,MAC地址全球唯一

5. 认识MAC地址

MAC地址是用来识别数据链路层中的相邻的节点,在网卡出厂时就已经确定了并且不能修改,mac地址是唯一的

  1. 先将数据通过操作系统,将数据发送到目标主机TCP/IP协议完成,IP可以标识互联网上的唯一的一台主机
  2. 在本主机收到的数据推送给上层指定的进程。端口号可以标识对应主机内唯一的一个进程
    送到目标主机TCP/IP协议完成,IP可以标识互联网上的唯一的一台主机
  3. 在本主机收到的数据推送给上层指定的进程。端口号可以标识对应主机内唯一的一个进程
  4. 计算机的大小端问题,如果两个计算机的大小端存数据的方式不一样,接收到的数据可能不太理想。所以规定网络序列必须是大端
http://www.lryc.cn/news/116473.html

相关文章:

  • HTML - Javascript - 原生的JS HTTP请求:实用主义的一篇文章
  • Intellij IDEA运行报Command line is too long的解决办法
  • 信号槽传输过程中指针所指对象的生命周期
  • c++ 递归锁的使用
  • Oracle TDE wallet
  • 多模态学习
  • Android学习之路(2) 文本设置
  • 手写springboot
  • 报错Uncaught (in promise) Error: Manifest request to...
  • 微信私域更好玩了
  • 基于ant-design的a-modal自定义vue拖拽指令
  • 【ES】笔记-模板字符串(template string)是增强版的字符串`${expresions}`
  • 利用 OLE 对象漏洞的 HWP 恶意文件浮出水面
  • 【CSS】倾斜按钮
  • js 正则表达式
  • 心理咨询预约管理系统javaweb医院挂号jsp源代码mysql
  • Linux中安装Node
  • 爬虫011_元组高级操作_以及字符串的切片操作---python工作笔记030
  • JVM虚拟机篇
  • Flutter 让软键盘不再自动弹起
  • k8s 自身原理 1
  • 在CPU上安装部署chatglm-6b实用经验分享
  • Mermaid系列之FlowChart流程图
  • 分享Java技术下AutojsPro7云控代码
  • 黑马机器学习day2
  • rosdep init || rosdep update || 出错?链接失败?换源!
  • 流量、日志分析分析
  • Go学习第八天
  • 算法练习--数值相关
  • RobotFramework的安装过程及应用举例