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

计算机网络-网络原理初识

一、局域网和广域网

1、局域网LAN(Local Area Network)

局域网内的主机能方便的通信,又称内网,局域网和局域网之间未连接的情况下无法通信

常见组建局域网的方式是通过路由器或交换机

交换机:上面的口都是等价的,连上的电脑就构成了局域网

路由器:上面的口分为两种 ,WAN 口和 LAN 口

要构成局域网的电脑都连到LAN口上,WAN口连运营商给的网线

路由器下面的LAN口还可以继续连接交换机

可以认为交换机能够对路由器现有端口进行扩展,且交换机还再接交换机,基于上述网络结构,就可以构成一个非常庞大的网络结构

交换机和路由器区别:交换机工作在数据链路层,路由器工作在网络层

2、广域网(Wide Area Network)

通过路由器,将多个局域网连接起来,在物理层面上组成很大范围的网络

二、网络通信基础

1、IP地址

描述一个设备在网络上的位置

2、端口号

描述了一个主机上的哪个应用程序

有了IP就可以确定主机,但一个主机上会有多个程序在使用网络

主机收到网络数据就需要区分出是交给哪个程序使用数据

每个程序在进行网络通信过程中,都要有一个端口号,同一个主机上,程序之间使用的端口号还不能冲突。

进行一次网络通信过程中涉及的IP和端口各有两个

目的IP,目的端口,源IP,源端口

三、认识协议

1、概念

网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从 的一组约定、规则

最终体现为在网络上传输的数据包的格式。

发送方和接收方要提前商量好数据的格式,确定两者间能正确的通信

2、协议分层

网络通信协议拆分的多了之后也是分了很多层

把功能定位相似的协议放到同一层

上层协议会调用下层协议的功能

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

好处:1、上层协议直接使用下层协议即可,不用了解下层协议的细节

2、某一层协议进行替换后,对其他层没有影响

3、OSI 七层协议

应用层,表示层,会活层,传输层,网络层,数据链路层,物理层

4、TCP/IP 五层协议

应用层:应用程序

传输层:负责关注网络数据包的起点和终点

网络层:负责关注起点终点之间要走明条路

数据链路层:负责相邻节点之间的传输

物理层:通信过程中的基础设施

五层中下四层都是操作系统内核,硬件,驱动程序中已经实现好了

作为程序员在网络编程中影响到的仅有应用层

主机的操作系统内核实现了从传输到物理层的下四层内容

路由器实现网络层到物理层(下三层)

交换机实现数据链路层到物理层(下二层)

集线器只实现物理层

四、封装和分用

网络传输数据的过程中最核心的流程

1、封装

1、应用层

例如QQ

QQ从输入框中获取到用于输入的内容,就把该字符串构造成一个应用层的数据

QQ这样的程序内部没置了一个应用层协议,应用层数据包就是按照该应用层协议来构造

然后应用层,就会调用操作系统提供的api,把该数据包交给传输层

2、传输层

传输层就会把上述数据作为一个整体,再构造成一个传输层的数据包

涉及的协议为TCP和 UDP

构造数据包中添加报头的过程叫封装

UDP报头虽然不能保护数据,但是可以起到“贴标签”的作用,承载一些关键的用来转发数据的信息

UDP报头承载最重要的信息就是源端口和目的端口

把拼好的数据包,把该数据包交给下一层(网络层)继续封装(下层协议提供了一组 api 上层调用这个api,并且把刚才构造好的数据通过参数传过去,下层协议就可以处理该数据了)

3、网络层(核心协议:IP协议)

IP协议把传输层的数据包作为一个整体,再拼上IP协议的报头构成个IP数据包

IP报头包含一些辅助转发的关建信息(源IP和目的IP)

构成完整的IP数据包后,IP协议继续调用数据链路层的api,把数据交给数据链路层这里的协议

4、数据链路层(核心协议:以太网)

以太网是我们日常最常见的有线网络

以太网数据帧,也是以IP数据包为一个整体,在这个基础上添加帧头和帧尾

再往下去物理层

5、物理层(硬件设备)

把上述这样的以太网数据帧(二进制结构)转化光信号/电信号/电磁波进行发送

2、分用(处理接收到的数据)

1、物理层

接收到光信号/电信号/电磁波会把这些物理信号转为数字信号,得到以太网数据帧,进一步把该数据帧交给数据链路层处理

2、数据链路层(以太网)

按照以太网数据帧的格式来解析,取点其中的载荷,再交给上层协议

3、网络层(IP协议)

按照IP协议的格式来解析,取点其中的载荷,再交给上层协议

4、传输层(UDP/TCP)

按照UDP/TCP协议的格式来解析,取点其中的载荷,再交给上层协议

5.应用层(应用程序)

按应用程序内的应用层协议来解析数据

分用的过程就是封装的逆向过程

五、交换机和路由器

真实情况下两主机不会通过网线相连,而是通过一系列交换机和路由进行数据转发

经典交换机就只用封装分用到数据链路层

经典路由器就只封装分用网络层

1、交换机

交换机会把物理层的光电信号转为以太网数据帧交给数据链路层,交换机的数据链路层对上述数据进行解析

解析过程,一方面要取出载荷部分另一方面解析到帧头的关键信息,根据信息决定把数据往哪发送,据此构建出新的以太网数据帧

再把这个数据通过物理层发送出去

2、路由器

路由器先是从物理层拿到光电信号转为二进制数据交给数据链路层

数据链路层对上述数据进行解析拿到载荷交给网络层

路由器要通过IP报头的目的IP,知道接下来如何转发

取出的数据通过IP协议重新封装

交给数据链路层继续加上帧头帧尾

交给物理层转化为光电信号


http://www.kler.cn/a/383585.html

相关文章:

  • 基于C语言实现的图书管理系统
  • 容器内pip安装Apache Airflow的经历:如何重置初始密码
  • 少儿编程教育的多维度对比:软件类、硬件类与软硬件结合课程的选择
  • 【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
  • Python数据可视化seaborn
  • 【动手学电机驱动】STM32-FOC(3)STM32 三路互补 PWM 输出
  • yolo继续训练模型
  • 【Linux内存泄漏】自创pamp 内存快照比对定位内存泄漏【2024-11-07】
  • npm镜像的常用操作
  • 职场逆袭!学会管理上司,你也能成为职场赢家
  • C语言 | Leetcode C语言题解之第524题通过删除字母匹配到字典里最长单词
  • 代码随想录算法训练营第二十一天 | LeetCode93.复原IP地址、LeetCode78.子集、LeetCode90.子集II
  • RFID应急消防管控:科技与效率的完美结合
  • golang学习2
  • 轮播图【HTML+CSS+JavaScript】
  • ubuntu 之 压缩与解压缩(7zip,zip,tar.gz,rar...)
  • 从零开始学python 6(持续更新中ing)
  • 知识总结三
  • Webserver(4.3)TCP通信实现
  • 基于CNN-BiLSTM的时间序列数据预测,15个输入1个输出,可以更改数据集,MATLAB代码
  • V4L2 sub-devices 翻译
  • Python基础学习_01
  • Android 使用自定义注解标注当前类
  • STM32学习笔记-外部中断和外部时钟
  • 前端学习笔记—Vue3特性
  • web安全测试渗透案例知识点总结(下)——小白入狱