本篇文章主要是对网络初学的概念进行解释,可以让你对网络有一个大概整体的认知。
文章目录
一、简单认识网络
1、1 什么是网络
1、2 网络分类
二、网络模型
2、1OSI七层模型
2、1、1 简单认识协议
2、1、2 OSI七层模型解释
2、2 TCP/IP五层(或四层)模型
三、网络传输基本流程
3、1 报头
3、1、1 什么是报头
3、1、2 报头用来干什么的
3、2 网络传输流程
四、IP地址
五、端口号
六、MAC帧地址
七、套接字
🙋♂️ 作者:@Ggggggtm 🙋♂️
👀 专栏:计算机网络 👀
💥 标题:网络基础入门💥
❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景
一、简单认识网络
1、1 什么是网络
网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来,形成一个相互通信和共享资源的系统。
网络互联:把多台计算机互相连接起来,进行互相传输数据,进而完成数据共享。没有网络之前的你:
在没有网络的情况下,数据也可以传输。可以通过使用数据线将两台设备(如计算机、手机或存储设备)直接连接在一起,可以实现数据传输。或者通过使用磁带或光盘等媒介来进行数据传输。不过这样传输的成本比较高。
有了网络的你:
1、2 网络分类
网络可以是局域网(LAN)、城域网(MAN)或广域网(WAN),也可以是互联网(Internet)。他们又有什么区别呢?如下详细解释:
局域网(LAN):局域网是指在一个相对较小的区域范围内建立的计算机网络。它通常覆盖一个办公楼、学校或者是家庭等局部区域。局域网的主要特点是传输速度快、延迟低,并且用于连接同一组织内部的计算机和设备。例如,一家公司内部多台电脑通过路由器或交换机连接在一起形成的网络就是局域网。
城域网(MAN):城域网是指连接位于同一个城市或者地理范围内的不同机构、公司或校园网络的计算机网络。城域网的覆盖范围比局域网要广,它可以通过光纤、无线电或其他传输介质来连接各个网络设施。城域网的主要特点是传输距离较长,覆盖范围广,一般用于满足互联网接入的需求或者连接企事业单位之间的网络通信。
广域网(WAN):广域网是指跨越较大地理范围的计算机网络,它通常由多个局域网或城域网互相连接而成。广域网可以覆盖多个城市、省份甚至国家之间的分支机构或办公地点,并且利用互联网等公共网络进行数据传输。广域网允许远程地点的计算机和用户之间实现高速、可靠的连接,以满足远程办公、数据共享和协作等需求。
互联网(Internet):互联网是指全球范围内相互连接的计算机网络。它由无数的局域网、城域网以及广域网组成,通过标准化的通信协议进行数据交换和共享。互联网使得全球各地的计算机和用户能够相互通信、共享信息和资源。它提供了丰富的服务和应用,包括电子邮件、万维网(World Wide Web)、文件传输、远程登录和即时通信等。作为全球最大的计算机网络,互联网已经成为现代社会中不可或缺的一部分。
通过网络,用户可以与他人进行远程通信、获取信息、共享文件和资源等。网络基础设施包括网络协议、路由器、交换机、光纤等技术和设备,它们协同工作以确保数据能够在不同计算机之间传输和交换。
二、网络模型
2、1OSI七层模型
2、1、1 简单认识协议
什么是协议呢?协议是指多方之间达成的一种约定或规定,用于指导各方在特定情况下的行为和相互之间的关系。在网络中,为了确保数据传输的有效性、互联互通、统一标准、安全性和资源管理,网络也有属于自己的协议。我们接着往下看。
在实际定制网络协议时,是以层状划分的。为什么要分层呢?通信的场景复杂。其次通过分层,完成了不同协议之间的解耦,也便于了人们对其进行维护。
我们先思考一下:从我们的计算机通过网络发送一条信息到你的计算机,怎么保证数据在传输过程中不丢失呢?其次,传输过程中是怎么安全找到你的计算机呢?传输过程中是分段传输的,怎么解决下一跳主机的问题呢?这些都是由不同协议来保证的。OSI七层模型中就包含了网络协议。下面我们来看OSI七层模型。
2、1、2 OSI七层模型解释
什么是OSI七层模型?用来干什么的?
- OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
- 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
- OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
- 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
OSI(Open Systems Interconnection)七层模型是一种将计算机网络通信划分为不同层次的框架,每一层具有特定的功能和职责。下面是对OSI七层模型各层的详细解释:
物理层(Physical Layer):物理层是最底层的一层,它负责传输数据的物理介质,如电缆、光纤等。物理层的主要任务是转换比特流(bits)为信号,并控制传输介质的物理连接。
数据链路层(Data Link Layer):数据链路层负责将物理层传输的原始数据流转换为帧(Frame),并提供可靠的点对点数据传输。它在通信实体之间建立了逻辑连接,并通过差错检测和纠正机制来保证数据的可靠性。
网络层(Network Layer):网络层通过IP(Internet Protocol)地址识别不同主机和网络之间的路径选择,以实现数据包的路由和转发。它负责将数据分割为数据包,并通过寻址、路由和流量控制等机制来确保数据的正确传输。
传输层(Transport Layer):传输层负责提供端到端的可靠、无差错的数据传输服务。它通过协议(如TCP、UDP)和端口号来实现进程之间的通信,并提供流量控制、拥塞控制和错误恢复等功能。
会话层(Session Layer):会话层为网络中两个应用程序之间建立和维护通信会话,并管理会话的控制和同步。它提供了会话的建立、维护和终止,以及数据传输的同步点标记和恢复机制。
表示层(Presentation Layer):表示层负责数据的格式化和表示,确保不同系统之间的数据能够正确解释和理解。它处理数据的加密、压缩和转换等操作,以便于应用层的交互和共享。
应用层(Application Layer):应用层是最高层也是最接近用户的一层,它提供了用户与网络服务的接口。应用层包含了各种网络应用和协议,如HTTP、FTP、SMTP等,用于实现特定的网络功能和服务。
具体也可看下图理解:
2、2 TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
- 物理层: 负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层(物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP四层模型)。
- 数据链路层: 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网, 无线LAN等标准。交换机(Switch)工作在数据链路层.
- 网络层: 负责地址管理和路由选择。例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层.
- 传输层: 负责两台主机之间的数据传输。如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机。
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
三、网络传输基本流程
3、1 报头
3、1、1 什么是报头
什么是报头呢?在计算机网络通信中,报头(Header)是一部分数据包的固定结构,它包含了关于该数据包的元信息和控制信息。报头位于数据包的前部,用于标识和管理数据包的传输。
报头通常由多个字段组成,每个字段用于存储特定类型的信息。下面是一些常见的报头字段及其功能:
目标地址字段:指示接收数据包的目标设备或主机的地址。这个地址可以是物理地址(如MAC地址)或逻辑地址(如IP地址)。
源地址字段:标识发送数据包的源设备或主机的地址。
协议字段:指示数据包使用的协议类型,例如TCP(传输控制协议)或UDP(用户数据报协议)。
长度字段:指明整个数据包的长度,包括报头和数据部分。
校验和字段:用于校验数据包在传输过程中是否出现了错误。接收端可以通过计算校验和来验证数据包的完整性。
服务质量字段:用于指示数据包的优先级和处理要求,例如差错检测、传输延迟、带宽需求等。
标记字段:存储一些额外的控制或标识信息,用于特定的协议或网络处理。
3、1、2 报头用来干什么的
报头在通信协议中的作用非常重要,它承载了传输过程中所需的元信息和控制信息。以下是报头的主要作用:
标识和定位:报头中的目标地址字段和源地址字段用于标识和定位数据包的接收方和发送方。通过指定目标地址,数据包可以准确地传递给目标设备或主机。
数据处理和路由:报头中的协议字段指明了数据包所使用的传输协议,如TCP、UDP等。不同的协议可能需要进行不同的数据处理和路由方式,因此报头能够帮助网络设备正确地处理和路由数据包。
错误检测和纠正:校验和字段可以用于验证数据包在传输过程中是否出现了错误。接收端可以通过计算校验和来检测数据包的完整性,并且对于出现错误的情况,一些纠错技术可以根据校验和字段的信息来恢复原始数据。
服务质量管理:报头中的服务质量字段可以指示数据包的优先级和处理要求。这有助于网络设备在网络拥塞或负载高的情况下,根据不同的服务质量需求进行优先级处理,保证关键数据的传输效果。
特定协议需求:某些协议可能需要特定的控制或标识信息来辅助数据包的处理和传输。报头中的标记字段可以承载这些额外的控制信息,以满足特定协议的需求。
通过解析报头中的字段信息,网络设备和计算机能够理解和处理数据包,识别其源和目标,并根据需要采取适当的操作,比如路由转发、错误检测、数据重组等。报头在网络通信中起着非常重要的作用,确保数据包按照正确的方式传输并被正确处理。
3、2 网络传输流程
网络传输流程如下图:
客户在应用层发送数据,为了数据的安全、完整和网络之间的路径选择等问题,必须从上往下经过应用层、传输层、网络层、链路层,再通过局域网发送给对方。在经过每层时,都会添加对应报头。
数据包封装和分用:
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),也就是报头。称为封装(Encapsulation).
- 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理
其中添加报头的原因如下:
数据识别和标识:在数据传输中,报头 (Header) 包含关于数据的元信息,比如数据类型、数据长度、传输协议等。通过添加报头,可以对数据进行识别和标识,确保接收方能够正确地解析和处理数据。
协议规范:不同的数据传输协议通常会规定报头的格式和内容,以便确保传输的正确性和可靠性。报头中可能包含有关源地址、目标地址、校验位等必要信息,这些信息使得数据能够按照协议规范进行有效的传输。
数据完整性校验:在数据传输过程中,为了确保数据的完整性,通常会使用校验和或哈希值等方式对数据进行校验。报头中可以包含校验和或哈希值等信息,接收方在接收到数据后可以根据报头中的校验信息验证数据的完整性,以避免数据损坏或篡改的情况。
数据流控制和错误处理:报头中可能还会包含有关数据流控制和错误处理的信息,比如序列号、确认号等。这些信息可以用于在数据传输过程中进行流量控制、处理丢包和重传等情况,从而提高数据传输的可靠性和效率。
跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。具体如下图:
四、IP地址
IP地址是Internet Protocol Address的缩写,它是用于在互联网上唯一标识和定位设备的一组数字。IP地址由32位二进制数或4个八位二进制数组成的十进制数表示。
它分为两部分:网络地址和主机地址,网络地址用于标识所连接的网络,而主机地址则用于标识具体的设备。
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地址的主要目的是扩展互联网的地址空间,以支持未来更多的设备连接。
这些是示例IP地址,实际上,每个设备在网络中都有一个唯一的IP地址,以便进行通信和数据传输。
五、端口号
端口号是用于标识在一台设备上运行的不同网络应用程序或服务的数字标识符。它是一个16位的数字,可以是0到65535之间的任意值。当一个应用程序或服务需要通过网络进行通信时,它会打开一个特定的端口,并侦听该端口上的连接。这个侦听过程称为绑定(binding)。当其他设备或应用程序尝试连接到此端口时,操作系统会将连接转发给已经绑定到该端口的应用程序进程。
因此,可以说端口号和进程之间存在一对一的映射关系。一个特定的端口号通常与一个特定的进程或应用程序相关联。而且,一个端口号只能与绑定一个进程。当网络通信发生时,数据包会通过端口号被正确地路由至相应的进程,以确保通信的正确进行。
同一台设备上的不同进程可以绑定不同的端口号。这样就使得多个应用程序能够同时进行网络通信,而无需担心冲突。每个进程可以通过独立的端口号进行区分和识别,从而实现并发的网络通信。
下面是两个示例来详细解释端口号:
HTTP通信使用的端口号是80。 当您在浏览器中输入网址并访问一个网站时,浏览器会与服务器进行HTTP通信。在这个过程中,浏览器将通过端口号80发送请求,以与服务器上运行的Web服务器进行通信。Web服务器接收到请求后,会将相应的网页内容返回给浏览器,并通过端口号80将响应发送回浏览器。因此,端口号80在这种情况下用于标识HTTP通信。
FTP通信使用的端口号是21。 当您使用FTP客户端与远程服务器进行文件传输时,通常使用的端口号为21。FTP客户端通过端口号21与FTP服务器建立连接,并发送指令来上传、下载或删除文件。端口号21被FTP协议保留,用于标识FTP通信。
每个端口号都有特定的作用和用途,例如常见的端口号有:
- 20和21:FTP
- 22:SSH
- 25:SMTP(用于发送电子邮件)
- 53:DNS(域名系统)
- 80:HTTP
- 443:HTTPS
六、MAC帧地址
MAC帧地址是Media Access Control Address的缩写,也称为物理地址或硬件地址。它是一个用于在局域网中唯一标识网络适配器(如网卡)的48位二进制数。每个网络适配器都有一个唯一的MAC地址,它由厂商在生产时烧录到适配器中。MAC帧地址用于在局域网中寻找目标设备,它是数据链路层的一部分,用于将数据包从源设备传输到目标设备。在以太网中,MAC地址是数据包在局域网中传输所必需的信息。
举例说明MAC帧地址的结构和作用,假设有两台计算机A和B进行通信:
计算机A的网卡上配置了MAC地址为 00:11:22:33:44:55,计算机B的网卡上配置了MAC地址为 AA:BB:CC:DD:EE:FF。
当计算机A希望将数据包发送到计算一个以太网帧,并包含以下字段:
- 目标MAC地址:设置为计算机B的MAC地址(AA:BB:CC:DD:EE:FF)。
- 源MAC地址:设置为计算机A的MAC地址(00:11:22:33:44:55)。
- 其他帧头字段(例如帧类型等)和数据。
计算机A将该帧发送到网络,经过交换机等设备转发,最终到达计算机B的网卡。
计算机B接收到该帧后,会检查目标MAC地址与自己的MAC地址是否匹配。如果匹配,则认为该帧是发给自己的,继续解析帧中的其他字段和数据。
通过这个过程,MAC帧地址起到了两个重要的作用:
唯一标识设备:每个网络设备(如网卡)都有一个唯一的MAC地址,用于在局域网中识别和寻址设备。这是因为以太网是一个共享介质的网络,通过MAC地址可以准确地将数据包传送到目标设备。
确保交付:通过将目标MAC地址设置为接收方的MAC地址,数据包可以被有针对性地转发到正确的设备,确保数据包的正确交付。
七、套接字
套接字(Socket)是计算机网络编程中用于实现网络通信的一个抽象概念。它提供了一种编程接口,允许不同计算机之间通过网络进行数据传输和通信。
具体来说,套接字可以看作是通信的两个端点,一个是服务器端的套接字,另一个是客户端的套接字。通过套接字,服务器端和客户端可以相互发送和接收数据。
在网络通信中,套接字使用网络协议(如TCP/IP、UDP等)来完成数据的传输和通信。根据所使用的网络协议的不同,套接字可以分为两种类型:
流套接字(Stream Socket,也称为面向连接的套接字):基于TCP协议,提供可靠的、面向连接的通信。使用流套接字时,数据可以按照发送的顺序和完整性进行传输,确保数据的准确性。流套接字的通信方式类似于电话通信,需要在通信前先建立连接。
数据报套接字(Datagram Socket,也称为无连接的套接字):基于UDP协议,提供不可靠的、无连接的通信。使用数据报套接字时,数据以数据包的形式进行传输,不保证数据的顺序和完整性。数据报套接字适用于一次性发送不需要可靠传输的数据。
后续也会对套接字的使用和细节进行详细解释。