🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁
🦄 个人主页——🎐个人主页 🎐✨🍁
🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁
感谢点赞和关注 ,每天进步一点点!加油!
目录
一、什么是网络
二、互联网的组成
三、计算机网络分类
3.1 按照网络的作用范围分类
3.2 按照网络的使用者进行分析
四、虚拟互连网络
五、计算机网络体系结构
六、TCP/IP五层(或四层)模型
七、实体、协议、服务和服务访问点
八、IP地址
九、MAC帧地址
十、套接字
十一、帧
一、什么是网络
网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来,形成一个相互通信和共享资源的系统。
网络互联:把多台计算机互相连接起来,进行互相传输数据,进而完成数据共享。
二、互联网的组成
互联网的拓扑结构虽然非常复杂,并且在地理上覆盖了全球,但从其工作方式上看,可以划分为以下两大块:
(1)边缘部分 由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
(2)核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
三、计算机网络分类
3.1 按照网络的作用范围分类
(1)广域网WAN(Wide Area Network)广域网的作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。连接广域网各结点交换机的链路一般都是高速链路,具有较大的通信容量。本书不专门讨论广域网。
(2)城域网MAN(Metropolitan Area Network)城域网的作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离约为5~50km。城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前很多城域网采用的是以太网技术,因此有时也常并入局域网的范围进行讨论。
(3)局域网LAN(Local Area Network)局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10Mbit/s以上),但地理上则局限在较小的范围(如1km左右)。在局域网发展的初期,一个学校或工厂往往只拥有一个局域网,但现在局域网已非常广泛地使用,学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。我们将在第3章3.3至3.5节详细讨论局域网。
(4)个人区域网PAN(Personal Area Network)个人区域网就是在个人工作的地方把属于个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无线个人区域网WPAN(Wireless PAN),其范围很小,大约在10m左右。
通过网络,用户可以与他人进行远程通信、获取信息、共享文件和资源等。网络基础设施包括网络协议、路由器、交换机、光纤等技术和设备,它们协同工作以确保数据能够在不同计算机之间传输和交换。
3.2 按照网络的使用者进行分析
(1)公用网(public network) 这是指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。
(2)专用网(private network) 这是某个部门为满足本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如,军队、铁路、银行、电力等系统均有本系统的专用网。
公用网和专用网都可以提供多种服务。如传送的是计算机数据,则分别是公用计算机网络和专用计算机网络。
四、虚拟互连网络
从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:
(1)物理层使用的中间设备叫做转发器(repeater)。
(2)数据链路层使用的中间设备叫做交换机、网桥或桥接器(bridge)。
(3)网络层使用的中间设备叫做路由器(router)。
(4)在网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。
(a)表示有许多计算机网络通过一些路由器进行互连。由于参加互连的计算机网络都使用相同的网际协议IP(Internet Protocol),因此可以把互连以后的计算机网络看成如图(b)所示的一个虚拟互连网络(internet)。所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP协议的虚拟互连网络可简称为IP网(IP网是虚拟的,但平常不必每次都强调“虚拟”二字)。使用IP网的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议,等等)。如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网(Internet)。
如下是学校的网络拓扑结构:
五、计算机网络体系结构
OSI(Open System Interconnect),即开放式系统互连。 一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型。
OSI参考模型也采用了分层结构技术,把一个网络系统分成若干层,每一层都去实现不同的功能,每一层的功能都以协议形式正规描述,协议定义了某层同远方一个对等层通信所使用的一套规则和约定。每一层向相邻上层提供一套确定的服务,并且使用与之相邻的下层所提供的服务。从概念上来讲,每一层都与一个远方对等层通信,但实际上该层所产生的协议信息单元是借助于相邻下层所提供的服务传送的。因此,对等层之间的通信称为虚拟通信。
分层可以带来很多好处。如:
(1)各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。
(2)灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,甚至可以将这层取消。
(3)结构上可分割开。各层都可以采用最合适的技术来实现。
(4)易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统
变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。
(5)能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。
分层时应注意使每一层的功能非常明确。若层数太少,就会使每一层的协议太复杂。但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。通常各层所要完成的功能主要有以下一些(可以只包括一种,也可以包括多种):
①差错控制 使相应层次对等方的通信更加可靠。
②流量控制 发送端的发送速率必须使接收端来得及接收,不要太快。
③分段和重装 发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
④复用和分用 发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
⑤连接建立和释放 交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
分层当然也有一些缺点,例如,有些功能会在不同的层次中重复出现,因而产生了额外开销。
六、TCP/IP五层(或四层)模型
按照一般的概念,网络技术和设备只有符合有关的国际标准才能大范围地获得工程上的应用。但现在情况却反过来了。得到最广泛应用的不是法律上的国际标准OSI,而是非国际标准TCP/IP。这样,TCP/IP就常被称为是事实上的国际标准。
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
物理层: 负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层(物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP四层模型)。
数据链路层: 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网, 无线LAN等标准。交换机(Switch)工作在数据链路层.
网络层: 负责地址管理和路由选择。例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层.
传输层: 负责两台主机之间的数据传输。如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机。
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
七、实体、协议、服务和服务访问点
当研究开放系统中的信息交换时,往往使用实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则就定义了发送者或接收者所要完成的操作,例如,在何种条件下,数据必须重传或丢弃。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。也就是说,下面的协议对上面的实体是透明的。
其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称之为“服务”。上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中称为服务原语。
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP(Service Access Point)。服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口,有点像邮政信箱(可以把邮件放入信箱和从信箱中取走邮件),但这种层间接口和两个设备之间的硬件接口(并行的或串行的)并不一样。OSI把层与层之间交换的数据的单位称为服务数据单元SDU(Service Data Unit),它可以与PDU不一样。例如,可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU。
八、IP地址
参加互连的计算机网络都使用相同的网际协议IP(Internet Protocol),使用IP网的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议,等等)。如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网(Internet)。
整个的互联网就是一个单一的、抽象的网络。IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。IP地址的结构使我们可以在互联网上很方便地进行寻址。
所谓“分类的IP地址”就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中
- 第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。
- 第二个字段是主机号(host-id),它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。
当连接到互联网上时,你的设备会被分配一个IP地址,以便在网络中唯一标识和定位你的设备。 IP协议有两个版本,IPv4和IPv6。以下是两个示例IP地址的解释:
- IPv4地址:192.168.0.1 这是一个常见的IPv4地址格式,由四个八位二进制数组成,通过点分十进制表示。在这个示例中,192.168.0.1是一个IP地址,其中192.168.0表示网络地址部分,而1则表示主机地址部分。这个IP地址可能用于一个局域网中的路由器或计算机。
- IPv6地址:2001:0db8:85a3:0000:0000:8a2e:0370:7334 IPv6地址是下一代IP地址标准,采用128位二进制数表示,并使用冒号分隔。在这个示例中,2001:0db8:85a3:0000:0000:8a2e:0370:7334是一个IPv6地址,它包含了网络地址和主机地址信息。IPv6地址的主要目的是扩展互联网的地址空间,以支持未来更多的设备连接。
九、MAC帧地址
MAC帧地址是Media Access Control Address的缩写,也称为物理地址或硬件地址。它是一个用于在局域网中唯一标识网络适配器(如网卡)的48位二进制数,使用16进制的表示,一个16进制数对应4个二进制数,所以mac地址常常有12个数字,12*4=48位,其中,前6位数字代表厂商,后6位数字表示厂商生产的唯一标识。每个网络适配器都有一个唯一的MAC地址,它由厂商在生产时烧录到适配器中。MAC帧地址用于在局域网中寻找目标设备,它是数据链路层的一部分,用于将数据包从源设备传输到目标设备。在以太网中,MAC地址是数据包在局域网中传输所必需的信息。
举例说明MAC帧地址的结构和作用,假设有两台计算机A和B进行通信:
- 计算机A的网卡上配置MAC地址为 00:11:22:33:44:55,计算机B的网卡上配置MAC地址为 AA:BB:CC:DD:EE:FF。
- 当计算机A希望将数据包发送到计算一个以太网帧,并包含以下字段:
- 源MAC地址:设置为计算机A的MAC地址(00:11:22:33:44:55)。
- 其他帧头字段(例如帧类型等)和数据。
- 目标MAC地址:设置为计算机B的MAC地址(AA:BB:CC:DD:EE:FF)。
3. 计算机A将该帧发送到网络,经过交换机等设备转发,最终到达计算机B的网卡。
4. 计算机B接收到该帧后,会检查目标MAC地址与自己的MAC地址是否匹配。如果匹配,则认为该帧是发给自己的,继续解析帧中的其他字段和数据。
通过这个过程,MAC帧地址起到了两个重要的作用:
- 唯一标识设备:每个网络设备(如网卡)都有一个唯一的MAC地址,用于在局域网中识别和寻址设备。这是因为以太网是一个共享介质的网络,通过MAC地址可以准确地将数据包传送到目标设备。
- 确保交付:通过将目标MAC地址设置为接收方的MAC地址,数据包可以被有针对性地转发到正确的设备,确保数据包的正确交付。
十、套接字
套接字Socket 是指通过软件来实现作为插口或者插槽,一端插在客户端,一端插在服务端。Socket 编程进行的是端到端的通信,往往意识不到中间经过多少局域网,多少路由器,因此,能设置的参数也只能是端到端的协议之上网络层和传输层。
- 在网络层:Socket 函数需要指定是 IPV4 还是 IPV6,分别对应设置为 AF_INET 和 AF_INET6。
- 在传输层:需要指定是 TCP 还是 UDP 。TCP 协议是基于数据流的,所以设置为 SOCK_STERAM,而 UDP 是基于数据包的,所以设置为 SOCK_DGRAM。
所有的网络通信,站在普通人的角度,都是人和人之间的通信;站在技术人员的视角,我们学的网络通信, 本质是进程间通信 !
IP仅仅是解决了 两台物理机器 间相互通信,但是怎样使双方用户能看到发送和接收的数据呢?—— 端口号,用来唯一标识一台机器上唯一的一个进程。
综上, IP + PORT = 能够标识互联网中的唯一一个进程,那么互联网中各自 唯一的一对 进程就可以进行进程间通信。如果把整个网络看做一个大的OS,所有的网络上的上网行为,基本都是在这样一个大的OS内进行 进程间通信 。
套接字 socket = I P 地址 + p o r t 端口号 = socket IP 地址 + port端口号
TCP连接 = {socket1, socker2} = {(IP1, port1), (IP2, port2)}
进程具有独立性,进程间通信的前提是:让不同的进程,看到同一份资源 —— 网络。
另外,一个进程可以绑定多个端口号;但是一个端口号不能被多个进程绑定。
十一、帧
数据在数据链路层上是以帧(Frame)为单位传输的,帧由几部分组成,不同的部分执行不同的功能。
我们可以把帧理解称物流中的快递单,上面含有目的地址,源地址等信息,帧也一样。 帧包括目的地址、源地址、类型、数据、帧校验序列。目的地址就是数据要发往的地方;源地址就是数据从哪发的;帧分为空帧、关键帧、普通帧、过渡帧;帧校验序列是检查传输过程中,数据是否发生了变换。
目的地址和源地址均有6个字节,类型2个字节,数据是46~1500个字节(1500是MTU,最大传输单元,就是在数据传输的过程中,一次性最多可以传输1500),所以帧长的范围就是64-1518。
参考链接:
原文链接:计算机网络入门——MAC地址、帧_mac帧_Future用户已存在的博客-CSDN博客
原文链接:网络基础入门(网络基础概念详解)_Ggggggtm的博客-CSDN博客
【Network】网络编程套接字 —— socket编程
文章摘录内容来自《计算机网络》 第七版,谢希仁