【计算机网络原理】初始网络基础

news2024/11/15 2:34:43

文章目录

  • 1. 网络发展史
    • 1.1 单机时代
    • 1.2 网络互连
      • 局域网 LAN
      • 广域网 WAN
  • 2. 网络通信基础
    • 2.1 IP 地址
    • 2.2 端口号
    • 2.3 协议
    • 2.4 五元组
    • 2.5 协议分层
      • 2.5.1 OSI七层模型
      • 2.5.2 TCP/IP五层模型
    • 2.6 封装和分用
      • 2.6.1 数据封装(发送方情况)
      • 2.6.2 数据分用(接收方情况)
  • 总结


1. 网络发展史

1.1 单机时代

指最早计算机出现时, 计算机之间是相互独立的.
在这里插入图片描述

1.2 网络互连

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。

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

数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。

于是,根据网络互连的规模不同,可以划分为局域网和广域网。

局域网 LAN

局域网,即 Local Area Network,简称LAN。Local 即标识了局域网是本地,局部组建的一种私有网络。

局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

局域网组建网络的方式有很多种:

1. 基于网线直连
在这里插入图片描述

2. 基于集线器组建
在这里插入图片描述

3. 基于交换机组建

在这里插入图片描述

4. 基于路由器和交换机组建
在这里插入图片描述

广域网 WAN

广域网,即 Wide Area Network,简称WAN。

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。

这样城市和城市,国家和国家的网络之间都可以连接起来。
在这里插入图片描述

2. 网络通信基础

大致了解网络是什么, 它的发展史之后, 接下来我们就认识一些网络中的基本概念.

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。

那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。

2.1 IP 地址

IP 地址就是用来描述一个设备在网络中的虚拟位置, 每一个上网的设备在网络中都会有一个自己的 IP 地址.

概念

IP 地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP 地址用于定位主机的网络地址。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

格式

IP 地址是一个32位的二进制数,通常被分割为4个 “8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110. 通常会用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)如:100.4.5.6.

2.2 端口号

现在 IP 地址解决了网络通信时,如何定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要端口号来标识。

概念

在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人 (端口号) , 简单来说就是用来区分一台主机上的不同应用程序.

格式

端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

注意事项
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

常见端口号

21端口:FTP 文件传输服务
22端口:SSH协议、SCP(文件传输)、端口号重定向
23/tcp端口:TELNET 终端仿真服务
25端口:SMTP 简单邮件传输服务
53端口:DNS 域名解析服务
69/udp:TFTP
80/8080/3128/8081/9098端口:HTTP协议代理服务器
110/tcp端口:POP3(E-mail)
119端口:Network 
123端口:NTP(网络时间协议)
135、137、138、139端口: 局域网相关默认端口,应关闭
161端口:SNMP(简单网络管理协议)
389端口:LDAP(轻量级目录访问协议)、ILS(定位服务)
443/tcp 443/udp:HTTPS服务器
465端口:SMTP(简单邮件传输协议)
873端口:rsync
1080端口:SOCKS代理协议服务器常用端口号、QQ
1158端口:ORACLE EMCTL
1433/tcp/udp端口:MS SQL*SERVER数据库server、MS SQL*SERVER数据库monitor
1521端口:Oracle 数据库
2100端口:Oracle XDB FTP服务
3389端口:WIN2003远程登录
3306端口:MYSQL数据库端口
5432端口:postgresql数据库端口
5601端口:kibana
6379端口:Redis数据库端口
8080端口:TCP服务端默认端口、JBOSS、TOMCAT、Oracle XDB(XML 数据库)
8081端口:Symantec AV/Filter for MSE
8888端口:Nginx服务器的端口
9000端口:php-fpm
9080端口:Webshpere应用程序
9090端口:webshpere管理工具
9200端口:Elasticsearch服务器端口
10050端口:zabbix_server 10050
10051端口:zabbix_agent
11211端口:memcache(高速缓存系统)
27017端口:mongoDB数据库默认端口
22122端口:fastdfs服务器默认端口

2.3 协议

现在有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?

网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串 "你好!" , 如何标识发送的数据是文本类型,及文本的编码格式呢?

所以, 基于网络数据传输时,还需要使用协议来规定双方的数据格式。

概念

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

  1. 语法:即数据与控制信息的结构或格式;类似打电话时,双方要使用同样的语言:普通话
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。类似打电话时,说话的内容。
  3. 时序,即事件实现顺序的详细说明。时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。

协议(protocol)最终体现为在网络上传输的数据包的格式。

作用

为什么需要协议?就好比我们与别人互相约定好在哪里见面,什么时候见面,这就是一种提前的约定,也可以称之为协议。

在这里插入图片描述

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

  • 因为计算机生产厂商有很多;
  • 计算机操作系统,也有很多;
  • 计算机网络硬件设备,还是有很多;
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是 网络协议;

2.4 五元组

在 TCP/IP 协议中,通常用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式

五元组在网络通信中的作用,类似于发送快递:

在这里插入图片描述

2.5 协议分层

对于网络协议来说,往往分成几个层次进行定义。

分层的作用

为什么需要网络协议的分层?

分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。

在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):

  • 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  • 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

协议分层, 主要有两种模式.

  • OSI 七层模型
  • TCP/IP 五层模型

2.5.1 OSI七层模型

OSI 七层模型既复杂又不实用, 所以 OSI 七层模型并没有落地实现, 现在也只会在教科书上见到. 实际组建网络时, 只是以 OSI 七层模型设计中的部分分层, 也即是以下 TCP/IP 五层模型来实现.

2.5.2 TCP/IP五层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  • 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  • 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

在这里插入图片描述
物理层我们考虑的比较少, 因此很多时候也可以称为 TCP/IP 四层模型.

2.6 封装和分用

封装和分用是网络传输数据时的基本流程, 每次网络传输都要进行这俩个过程.

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部 (header),称为封装 (Encapsulation)。
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。

2.6.1 数据封装(发送方情况)

我们就简单拿给好友发送一条qq消息为例, 当然真实的数据封装过程, 肯定还会比较复杂.

1. 应用层

QQ应用程序, 从输入框中获取到你要发送的消息, 构造成一个数据报(根据应用层的协议) , 通常很多应用程序中都会自定义应用层协议.

在这里, 我们假设 QQ 的应用层协议是这样的 发送人QQ号, 接收人QQ号, 时间, 消息内容, 所谓构造应用层数据报, 就是按照一定的格式进行字符串拼接, 发送方和接收方此格式需要达成一致.

在这里插入图片描述

当构造好数据报后, 应用程序就会调用传输层提供的接口, 将上述数据交给传输层进行处理.

2. 传输层

传输层协议有很多种, 其中最主要的就是 TCP 和 UDP 协议, 此处我们假设使用 UDP 协议.

上面我们将数据从应用层传到了传输层, 交给了 UDP, 于是 UDP 协议就会按照自己的协议格式, 生成一个 UDP 数据段.

在这里插入图片描述
UDP 不关心应用层数据里面内容是什么, 只会把应用层传来的数据当成字符串, 构造出一个 UDP 数据段来.

此时, 传输层会把构造好的 UDP 数据段, 进一步的交给网络层.

3. 网络层

网络层最主要的协议是 IP 协议. IP 协议也会根据自己的格式, 将传输层传来的数据段构造成一个 IP 数据报. 同样 IP 协议也不关心其中内容是什么, 只是单纯的把他当成一个字符串, 在这基础上再拼接一个 IP 报头.

在这里插入图片描述
然后, 网络层就会将数据报传给数据链路层.

4. 数据链路层

传到数据链路层后, 此时以太网, 会针对 IP 数据报, 进行进一步的封装, 添加一个帧头和一个帧尾, 构造出一个数据帧来. 同样, 以太网也不关心其中内容是什么.

在这里插入图片描述
上述这样的数据帧, 还需要进一步交给物理层.

5. 物理层

物理层指的就是我们的一些硬件设备, 比如网卡, 现在收到了数据链路层传来的数据帧. 本质上都是二进制的数据 (由 1010 构成的), 硬件设备就需要对上述数据进行转换了. 通过光电信号等等. 具体如何转换, 我们在此不仔细研究.

到这里, 我们就完成了发送过程.

一图总结

在这里插入图片描述

2.6.2 数据分用(接收方情况)

作为接收方, 我们是如何收到对方发送的 QQ 消息的呢?

1. 物理层

物理层收到光电信号, 就会对收到的信号进行解调, 就会得到一串 1010 的二进制数据序列, 也就是以太网数据帧.

在这里插入图片描述
解调后的数据帧就要被交给上一层, 数据链路层.

2. 数据链路层

数据链路层的以太网协议, 就会针对这个数据进行解析. 进行 “掐头去尾”.

在这里插入图片描述
此时将载荷部分取出来, 交给上层网络层.

3. 网络层

网络层的 IP 协议针对这个数据报进行解析, 去掉 IP 报头, 取出载荷, 进一步交给传输层.

在这里插入图片描述
根据网络层 IP 报头中的某个字段, 就可以知道当前这个载荷是一个 UDP 数据段, 于是便将其交给 UDP 处理.

4. 传输层

UDP 也是会针对数据段进行解析, 去掉段头, 取出载荷, 交给应用层的某个应用程序.

在这里插入图片描述
UDP 段头中, 有一个字段是用来记录目的端口的, 根据目的端口即可找到对应的应用程序.

5. 应用层

当 QQ 程序接收到这个数据后, 就会按照 QQ 的应用层协议, 进行解析.

在这里插入图片描述
进而将这里的数据显示到界面上, 这样接收方就收到了消息, 并且有时间信息, 内容信息等等.

一图总结
在这里插入图片描述


总结

✨ 本文主要讲解了计算机网络的一些基础知识, 网络的发展史, IP 地址, 端口号, 协议等等, 还重点讲述了网络传输时的封装和分用.
✨ 想了解更多计算机网络的知识, 可以收藏一下本人的计算机网络学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1107104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这是不是你们都在找的免费又好用的配音网站?

随着人工智能技术的不断发展和普及,AI配音软件也越来越多地进入人们的视野。它可以帮助我们快速地将文字转换成语音,让我们的工作变得更加高效和便捷。在本文中,我将介绍一款非常实用而且免费的AI配音网站,超级简单好用&#xff0…

C++string的使用

CSDN的uu们,大家好。这里是C入门的第十六讲。 座右铭:前路坎坷,披荆斩棘,扶摇直上。 博客主页: 姬如祎 收录专栏:C专题 目录 1.构造函数 1.1 string() 1.2 string(const char* s) 1.3 string(const …

Cinema 4D云渲染一分钟动画要多少钱?如何进行Cinema 4D云渲染?看完就懂了

1.为什么Cinema 4D要使用云渲染? 近年来,Cinema 4D在实现视觉效果方面取得了很大的进展。但是,随着视觉效果的复杂化,渲染的工作量也相应增加,导致渲染时间变长。在这种情况下,云渲染平台就能…

Linux嵌入式系统开发之路:从小白到大牛

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 嵌入式系统开发是一个充…

Spring framework Day22:Aware接口

前言 在Spring框架中,有许多接口和类都有一个非常重要的作用——让我们能够更方便地构建应用程序和管理组件。其中,Aware接口就是其中一个非常重要的接口之一。通过实现该接口,我们可以让Spring容器感知到特定的组件和资源,并进行…

媒体转码和输出软件:Media Encoder 2024中文版

想要高效地转码、优化输出吗?那就来尝试全新的Media Encoder 2024吧!Media Encoder是Adobe公司出品的一款媒体转码和输出软件,可以帮助您快速、高效地将多种格式的视频和音频转换为所需的输出格式。 全新的Media Encoder 2024提供了更加智能…

【CANoe】XML Test Module使用实例

文章目录 一、实操步骤1、增加XML Test Module节点2、配置XML Test Module节点3、XML Test Module节点增加CAPL脚本(.can文件)4、文件夹结构5、使用仿真节点开始测试6、测试结果与测试报告7、同理,在Test Setup也可如此操作 一、实操步骤 1、增加XML Test Module节…

使用conda install一直卡在solving environment的解决方法

使用国内镜像源,但install仍旧一直卡在solving environment,超过10分钟就不用等了; 检查C:\Users\UserName 路径下的.condarc文件 将这个defaults这一行删掉即可

【Linux-常用命令-基础命令-复制-copy-命令-笔记】

【Linux-常用命令-基础命令-复制文件-copy-命令-笔记】 1、前言2、操作3、自己的实践 1、前言 最近,在使用Linux的时,使用相关基础命令是,总是容易忘记,上网一搜,大部分都写的比较繁琐,我就找下复制命令&a…

【算法设计与分析qwl】04 NP-hard——只是举例几个,货郎,双机调度,01背包

NP-hard问题: 有效算法是 输入规模的多项式时间算法。 这些问题的难度处于可有效计算的边界。 算法数据结构程序设计 例4 货郎问题 建模与算法: 解是一个排列, 0-1背包问题: 建模: 双机调度: 建模&#x…

【PPT技巧】如何将多张幻灯片打印在一张纸上?

PPT页面很多,想在打印的时候,多张幻灯片放置在同一页面,也就是打印在一张纸上,如何设置呢? 首先,打开需要打印的PPT文件,点击菜单选项卡【文件】,然后在弹出的页面中点击【打印】选…

单链表经典OJ题:找出链表的中间节点

题目: 给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 图例: 解法: 解法1: 先遍历链表确定链表节点的数量,然后再找到中间位置的节点 解法2: 快慢…

Linux性能优化--补充

14.1. 性能工具的位置 本书描述的性能工具来源于Internet上许多不同的位置。幸运的是,大多数主要发行版都把它们放在一起,包含在了其发行版的当前版本中。表A-1描述了全部工具,提供了指向其原始源位置的地址,并注明它们是否包含在…

百度地图高级进阶开发:圆形区域周边搜索地图监听事件(覆盖物重叠显示层级\图像标注监听事件、setZIndex和setTop方法)

百度地图API 使用百度地图API添加多覆盖物渲染时,会出现覆盖物被相互覆盖而导致都无法触发它们自己的监听;在百度地图API里,map的z-index为0,但是触发任意覆盖物的监听如click时也必定会触发map的监听; 项目需求 在…

6.7 案例分析与实现

思维导图: 6.7 案例分析与实现 #### 案例6.2: 六度空间理论 【案例分析】 - **背景介绍**: 六度空间理论提及在任意两人之间最多仅有6个人的连接。尽管这一理论被广泛提及并得到了某种程度的验证,但从科学角度看,它仍然只是一…

模型的选择与调优(网格搜索与交叉验证)

1、为什么需要交叉验证 交叉验证目的:为了让被评估的模型更加准确可信 2、什么是交叉验证(cross validation) 交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为验证集。然后经过…

C/C++面试常见问题——指针和引用的区别

首先想要理解指针和引用的区别,我们要明确什么是指针,什么是引用 一,指针和引用的基本概念及特性 指针是一个特殊变量,其中存储着所指向变量的地址 指针主要有以下特性: 1. 在使用时需要*解引用 2. sizeof(指针)的…

关于我对 jeecg-boot 的项目理解、使用心得和改进建议

一句话总结: JeecgBoot帮助我提升了后端技术水平,入门了前端,让我在公司内部慢慢能够成长为全栈开发。 一、项目理解 JeecgBoot 项目的核心理念是快速开发、低代码、易扩展。它采用了前后端分离的架构,后端使用Spring Boot Myba…

5.覆盖增强技术——PUCCHPUSCH

PUSCH增强方案的标准化工作 1.PUSCH重复传输类型A增强,包括两种增强机制:增加最大重复传输次数,以及基于可用上行时隙的重复传输次数技术方式。 2.基于频域的解决方案,包括时隙间/时隙内跳频的增强 3.支持跨多个时隙的传输块&…

spring配置文件第一行导致读取配置失败

遇到读取配置存在问题,尤其当配置到第一行 通过spring执行测试类,没有问题,但是相同配置启动项目时,老找不到JdbcTemplate 使用配置: spring.shardingsphere.datasource.namesmaster,slavespring.shardingsphere.dat…