【网络编程】网络基础(一)

news/2024/11/30 7:42:30/

文章目录

  • 一、计算机网络背景
    • 1.网络发展
    • 2.认识 "协议"
  • 二、网络协议初识
    • 1.协议分层
    • 2.OSI七层模型
    • 3.TCP/IP五层(或四层)模型
  • 三、网络传输基本流程
    • 1.网络传输流程图
    • 2.数据包首部(报头)
    • 3.数据包封装和分用
      • 封装
      • 分用
    • 4. 跨局域网主机通信
  • 四、网络中的地址管理
    • 1.认识IP地址
    • 2.认识MAC地址

一、计算机网络背景

1.网络发展

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

起初,计算机是以单机模式被广泛使用,这种方式也被称为独立模式。

在这里插入图片描述
随着计算机的发展,人们不再局限于独立模式,而是将一个个计算机连接起来,形成一个计算机网络。连接多台计算机实现信息共享,同时还嗯个在两台物理位置较远的机器之前进行数据传输。
网络互联: 多台计算机连接在一起, 完成数据共享;
在这里插入图片描述
局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;
在这里插入图片描述
这里所谓的“局域网”和“广域网”都是一个相对的概念,我们可以把一个宿舍看成一个“局域网”,也可以把一个学校看成一个“局域网”。
在这里插入图片描述

2.认识 “协议”

在计算机通信领域,有着各种各样的协议,协议本身就是一种预定。我们来通过下边一个例子来理解协议是什么:

当我们在学校时,想要联系我们的父母,有时可能是为了保平安,有时可能是为了给父母要生活费,有时也可能是为了其他的事情,但是话费太贵了,但是如果打电话没有接通就不会扣费,所以我们提前与家里有了下边的约定:
1.如果电话响一声,说明是在给家里保平安。
2.如果电话响两声,说明是没有生活费了,需要家里打钱过来。
3.如果电话响三声以上,就可能是其他的事情,这时父母就要接听电话了。
有了上边的约定,父母甚至可以不接听电话就知道我们想要做什么,大大提高了效率,这就是协议的作用。

在这里插入图片描述

简单来说,协议就是计算机和计算机之间通过网络实现通信时视线达成的一种“约定”。这种约定对于不同的厂商,不同的软硬件,只要遵守这一个协议,就可以实现网络通信。

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

二、网络协议初识

1.协议分层

关于协议的分层,我们通过下边打电话的例子来解释一下,在此,我们只考虑语言层和通话设备层的这两个分层的情况:
在这里插入图片描述
我们可能认为与对方通话就是直接把声音传输过去,其实我们对话是通过电话把声音转换为电子信号,此时的语言层和通话设备层是分离的,那就意味着我们此时将通话语言从汉语变为英语也可以进行对话,把设备有电话改为无线电也是可以的。
但是在实际的网络通信更加复杂,可能是多层的。


操作系统要对协议进行管理,就需要先描述再组织。
协议的本质就是软件,软件就可以进行分层。
其实协议也是分层的。

信息传输需要以下问题:

1.如何处理数据
2.如何处理丢包问题
3.目标主机的定位问题
3.下一跳的位置

其实如何处理数据就是应用层的要解决的问题,而处理丢包就是传输层的问题,目标主机的定位就是网络层的问题,而解决下一跳的位置就是数据链路层的问题。

2.OSI七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解.

在这里插入图片描述
而OSI模型只是一个参考模型,对于各层都只是有一个粗略的界定,并没有具体实现协议和接口,而后序有很多人根据七层模型实现了具体的协议和接口,例如TCP/IP协议。

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

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

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

在这里插入图片描述
通过OSI七层模型和TCP/IP五层模型作对比,其实下三层都是相同的,只是将OSI七层模型中的应用层,表示层,会话层合并成为了应用层。其实传输层和网络层是嵌在操作系统内部的,我们在应用编写程序,实际上还是使用系统调用接口来编写的。
物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型.
一般而言

对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器, 它实现了从网络层到物理层;
对于一台交换机, 它实现了从数据链路层到物理层;
对于集线器, 它只实现了物理层;

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);

三、网络传输基本流程

1.网络传输流程图

在这里插入图片描述
上图可以看作两个主机之间进行网络传输,当客户在应用层发送某个信息时,不会直接通过应用层将数据发给服务器,而是先建立TCP连接,传输给TCP层,再进行IP模块的处理,最后交给数据链路层,通过以太网传输给服务端,再逐步向上递交,最后传输给服务器。但是在此处有一个最重要的部分就是报头,也就是数据首部


2.数据包首部(报头)

在每个数据分层中,在发送数据时都会发送一个数据首部,也就是报头,包含了协议中一些必要的信息,例如要发送到目标主机的地址,目标线程的端口号等等,从下一层看,报头和上一层的数据统一被看作数据。
在这里插入图片描述
例如在应用层会在应用层数据的基础上加上应用层报头,传递给传输层之后,应用层的数据和应用层报头统一被看作数据,再加上传输层的报头后之后才会交给网络层。

3.数据包封装和分用

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

封装

每一层都会对数据与报头进行封装,最后在以太网传输时,就会包含每一层的的相关信息,在进行分包解用时,就会知道应该交给上一层的哪一个协议。

在这里插入图片描述

分用

而进行分用时,从以太网传输过来的数据帧,已经包含了之前每一层的相关信息,例如目标主机,目标端口号,要传输到上一层的协议。所以进入链路层之后,到网络层就可以根据以太网首部中的类型进行选择要把数据传输给谁。
在这里插入图片描述

4. 跨局域网主机通信

如果两个主机在一个局域网内部,就一定可以进行通信,例如上图中,客户端和服务器可以进行通信,但是下图就有所不同,客户端和服务器在不同的局域网中,所以为了解决这个问题,就有了路由器。
在这里插入图片描述

每个路由器都会有一个路由表,表中每条路由表项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一跳路由器,或者不再经过别的路由器而直接可以到达目的地。
路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。最终将数据包通过最优路径转发到目的地。

在这里插入图片描述
由于以太网和令牌环网属于不同的通信标准,所以在在以太网处加的报头和令牌环网处加的报头是不同的,如果直接传输,那肯定是不能识别的,所以必须通过路由器来路由,路由器和客户端属于一个局域网,与服务器也属于一个局域网,所以可以互相通信,当数据帧从以太网传输给路由器之后,解包到网络层,再添加报头给令牌环驱动程序再通过令牌环网传输给服务端,所以路由器起到了一个中间传输的作用。
在这里插入图片描述


在此处,我们也可以发现对网络进行分层有另外一个好处,哪怕处于不同的局域网,在上层看来,并没有什么不同的,在网络层以上数据和报头都是相同的,只是在数据链路层添加的报头不同,这就有点像Linux下一切皆文件的概念,可能底层是不同的硬件,但是在上层看来都是一个一个的文件结构体,只是在使用时在驱动层去使用每个不同的函数,就是达到访问某个硬件的目的。

在这里插入图片描述

四、网络中的地址管理

1.认识IP地址

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

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

2.认识MAC地址

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

那么IP地址和MAC地址有什么联系和区别呢?

例如,我们现在要从陕西西安前往新疆喀什旅游,我们的出发地就是西安,目的地就是喀什,这就类似于IP地址,我们只需记录源IP和目的IP,这在路途中是不变的,是一个大方向,而在数据链路层的MAC地址就是变化的,要以这个IP地址为大方向,选择路途中一次次的小方向,例如先从想西安到兰州,再从兰州前往张掖,其实这个地址就是MAC地址,MAC地址是一直变化的,每次的地址是有链路层根据IP地址选择的。

在这里插入图片描述
在Linux中使用ifconfig指令也可以查看本台主机的IP地址
在这里插入图片描述


http://www.ppmy.cn/news/587164.html

相关文章

笔记本CPU利用率卡在16%不动弹的一点解决心得

有时候我的笔记本电脑开机后巨卡顿,开啥都慢,打开任务管理器一看CPU利用率卡在16%上不动弹。网上搜一圈发现没几个人提过这事儿,今天说下我常用的解决方法,也算给遇到相同难题的人留点经验吧。 仅就我这种情况而言,是因…

电脑内存爆满,使用率超过90%

今天突然发现电脑内存爆满,使用率超过97%,但是并没有发现占用内存高的软件,后来网上搜索发现了一个可能解决方法: 更新驱动 用360驱动大师更新完后,内存恢复正常,下降到14%。 大概10天后: 后…

CPU使用率低 内存使用率高

电脑时不时的卡死,尤其是你有点什么事情想做的时候,真的是要疯了。 打开资源管理器一看,CPU使用率只有百分之十几,物理内存使用率却高达九十几!这是啥原因呢?之前还真没想过这个问题。现在整理一下&#xf…

计算机内存加速,电脑内存使用率过高怎么加速

电脑内存使用率过高怎么加速 随着电脑的使用时间越长,电脑会变得很慢。那么电脑内存使用率过高怎么加速呢?下面就让jy135小编来告诉大家吧,欢迎阅读。 1、电脑内存使用率过高的原因有多种多样,其中一个可能的原因是电脑物理内存太小。对于一…

戴尔windows10桌面计算机,戴尔笔记本自带的win10系统怎么进行优化?

戴尔笔记本原厂的win10系统想要优化一些,该怎么优化呢?下面我们就来看看戴尔笔记本自带的win10系统优化的方法。 如有装360电脑管家的不要修复漏洞补丁体验优化等操作,不建议安装金山毒霸或鲁大师。 1、桌面——右键——个性化——主题——右…

戴尔服务器一直显示配置内存,dell服务器内存故障解决及排查

如果系统可以运行,请运行相应的诊断检测程序。有关可用的诊断测试,请参阅使用系统诊断程序。如果诊断程序指示出现故障,请按照诊断程序提供的更正措施进行操作。 如果系统无法运行,请关闭系统和连接的外围设备,并断开系…

DELL R720系统内存指南

该文章摘自于:http://www.dell.com/support/article/cn/zh/cndhs1/SLN153646/zh#issue3,仅供个人作为笔记使用 PowerEdge R720系统内存指南 目录: R720系统内存指南 最小/最大内存容量 内存模块安装指南/安装规则 内存模式特定指南 卸下/安装…

Dell(戴尔)笔记本加装内存条后出现警告:“Warning Message : Alter!The amount of system memory has changed”

Dell(戴尔)笔记本加装内存条后出现警告:“Warning Message : Alter!The amount of system memory has changed”,点击“continue”后开不了机。 昨天给自己的笔记本加装了一块内存条,开机之后就…