欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:题目解析
目录
- 👉🏻一些常见网络设备
- 👉🏻网络协议(栈)
- 👉🏻协议分层
- OSI参考模型每个层的作用
- TCP/IP参考模型每个层的作用
- 👉🏻局域网和广域网
- 局域网数据碰撞
- 在局域网中,多台主机是怎么进行通信的?
- IP地址和MAC地址
- 路由
- 👉🏻报文
- 封装和解包
👉🏻一些常见网络设备
当谈及网络设备时,路由器、交换机和集线器是最常见的三种设备。它们在网络中扮演着不同的角色和功能
-
路由器(Router):
- 路由器是用于连接不同网络并在它们之间传输数据的设备。
- 它能够理解网络地址,并根据这些地址决定如何将数据包转发到目标网络。
- 路由器还负责在不同网络之间进行数据包的路由选择和转发,使得数据能够正确地从源端传输到目标端。
-
交换机(Switch):
- 交换机是用于在局域网中连接多台计算机并实现数据交换的设备。
- 它能够学习和记忆不同设备的MAC地址,并根据这些地址将数据帧转发到目标设备。
- 交换机可以根据需要在不同端口之间发送数据,从而实现设备之间的直接通信,提高了局域网的数据传输效率。
-
集线器(Hub):
- 集线器是较早期的网络设备,用于在局域网中连接多台计算机以实现数据共享。
- 它会将从一个端口接收到的数据广播到其他所有端口,无法实现对数据的有针对性传输。
- 由于其广播特性,使用集线器会导致网络中出现较多的碰撞和数据冲突,因此在现代网络中已经被交换机所取代。
综上所述,路由器用于连接不同网络并进行数据包的路由选择和转发,交换机用于连接局域网中的多台设备并实现数据交换,而集线器则是较为落后的设备,用于简单的局域网连接。在实际网络中,交换机已经成为主流的局域网连接设备,而路由器则用于不同网络之间的连接和数据传输。
👉🏻网络协议(栈)
网络协议栈是指在计算机网络中用于实现网络通信的一系列协议的层次化结构。这些协议按照其功能被分为不同的层次,每个层次负责处理特定的网络通信任务,从物理传输到应用层的数据处理都有相应的协议层次来完成。
网络协议是计算机网络中用于在不同设备之间进行通信和数据交换的约定和规范。网络协议定义了数据传输的格式、顺序、错误检测和纠正方法等,以确保不同设备之间可以互相理解和协同工作。以下是一些常见的网络协议:
-
TCP/IP协议:TCP/IP协议是互联网所使用的核心协议,包括传输层的TCP(传输控制协议)和UDP(用户数据报协议)以及网络层的IP(Internet协议)。TCP协议提供可靠的、面向连接的数据传输,而UDP协议则提供无连接的数据传输。IP协议则负责在网络中寻址和路由数据包。
-
HTTP协议:HTTP(超文本传输协议)是用于在Web浏览器和Web服务器之间传输超文本文档的应用层协议。它是建立在TCP协议之上的无状态协议,用于传输HTML页面、图片、视频等资源。
-
FTP协议:FTP(文件传输协议)是用于在客户端和服务器之间传输文件的协议。它提供文件上传、下载、删除等功能,并可以通过用户名和密码进行身份验证。
-
SMTP协议:SMTP(简单邮件传输协议)是用于在邮件客户端和邮件服务器之间传输电子邮件的协议。它定义了电子邮件的传输规则,包括发件人地址、收件人地址、主题等信息。
-
DNS协议:DNS(域名系统)协议是用于将域名解析为IP地址的协议。当用户输入一个域名时,DNS协议将该域名解析为相应的IP地址,以便进行网络通信。
这些是计算机网络中一些常见的网络协议,它们共同构成了互联网的基础,确保了不同设备之间的顺畅通信和数据交换。在程序员开发网络应用时,对于不同网络协议的理解和应用至关重要,可以根据实际需求选择合适的协议来实现特定的功能。
👉🏻协议分层
协议分层是指将网络通信中的功能划分为不同的层次,每个层次负责特定的功能,并通过定义接口来实现层与层之间的通信。这种分层设计使得网络通信的复杂性得以简化,同时也提高了系统的灵活性和可维护性,有效地促进了不同厂商、组织或个人开发的网络设备和应用之间的互操作性。
在计算机网络中,最常见的协议分层模型是OSI(开放系统互连)参考模型和TCP/IP模型。这两种模型都将网络通信分为多个层次,每个层次负责不同的功能,如数据传输、错误检测、路由等。下面是这两种模型的主要层次:
-
OSI参考模型(Open Systems Interconnection Reference Model):
- 应用层(Application Layer)
- 表示层(Presentation Layer)
- 会话层(Session Layer)
- 传输层(Transport Layer)
- 网络层(Network Layer)
- 数据链路层(Data Link Layer)
- 物理层(Physical Layer)
-
TCP/IP模型:
- 应用层(Application Layer)
- 传输层(Transport Layer)
- 网际层(Internet Layer)
- 网络接口层(Network Interface Layer,也称为数据链路层和物理层)
通过协议分层,不同层次之间能够相互独立地进行开发、升级和维护,同时也降低了系统复杂度。每个层次的功能明确定义,使得在网络发展和应用扩展时更容易增加新的功能或替换现有的功能。此外,协议分层模型还促进了标准化和互操作性,使不同厂商的设备和软件能够在网络中顺畅地通信。因此,协议分层在计算机网络中扮演着至关重要的角色。
☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️☄️
OSI参考模型和TCP/IP模型都是用于指导和规范计算机网络通信的分层模型,但它们有一些主要的区别。下面简要介绍它们之间的关系和主要区别:
-
关系:
-
OSI参考模型(Open Systems Interconnection Reference Model)是由国际标准化组织(ISO)制定的一个概念性的网络体系结构,旨在标准化计算机网络体系结构并促进不同厂商设备的互连。它是一个七层模型,每一层都有特定的功能,如物理传输、数据链路、网络、传输、会话、表示和应用。
-
TCP/IP模型是实际使用最广泛的网络协议体系结构,它是根据实践总结而来的,将网络通信分为四个层次:应用层、传输层、网际层和网络接口层。TCP/IP模型实际上是基于实践发展而来,不同于OSI模型的理论性。
-
-
区别:
-
层次数量不同:OSI模型包含了七个层次,而TCP/IP模型只包含了四个层次。OSI模型更为详细和复杂,而TCP/IP模型更加简洁且贴近实际应用需求。
-
发展历史不同:OSI模型是在20世纪80年代由ISO提出的,但并没有被广泛采纳;而TCP/IP模型则是在实践中逐步发展起来的,并成为了互联网的核心协议体系。
-
应用领域不同:OSI模型更多地用于学术研究和网络设计中,而TCP/IP模型则更贴近实际应用,是互联网所采用的主要协议体系。
总的来说,OSI参考模型是概念性的、理论性的网络体系结构,而TCP/IP模型是在实际应用中被广泛采用的网络协议体系结构。它们各自有着不同的特点和定位,在网络设计和实施中可以根据具体需求选择适合的模型来指导网络通信的实现。
-
OSI参考模型每个层的作用
以下是OSI参考模型中每个层的作用:
-
应用层(Application Layer):
- 应用层是最接近用户的一层,提供网络服务和应用程序之间的通信。
- 该层负责处理特定的应用程序细节,如
文件传输
、电子邮件
、远程登录
等。
-
表示层(Presentation Layer):
- 表示层主要负责
数据的转换
、加密和压缩
,以便在不同系统上进行交换。 - 它处理数据格式问题,确保一个系统的数据能被另一个系统理解。
- 表示层主要负责
-
会话层(Session Layer):
- 会话层建立、管理和终止会话或连接,以确保应用程序之间的通信。
- 在数据传输过程中处理错误恢复和同步问题。
-
传输层(Transport Layer):
- 传输层主要负责端到端的通信和数据传输。
- 提供了数据传输的可靠性和完整性,同时也负责数据的分段和重组。
-
网络层(Network Layer):
- 网络层负责在不同网络之间进行
路由选择
和转发数据包
。 - 它定义了逻辑地址(IP地址)和路由选择的算法。
- 网络层负责在不同网络之间进行
-
数据链路层(Data Link Layer):
- 数据链路层负责在直接相连的节点之间传输数据帧。
- 处理物理层传输错误,确保数据的可靠传输。
-
物理层(Physical Layer):
- 物理层负责定义传输介质、电气特性和物理连接。
- 将比特流通过通信介质传输,并确保发送端和接收端的物理连接。
TCP/IP参考模型每个层的作用
TCP/IP参考模型是一个四层模型,包括应用层、传输层、网络层和数据链路层。以下是TCP/IP参考模型每个层的作用:
-
应用层(Application Layer):
- 应用层是最靠近用户的一层,提供各种应用程序之间的通信服务和网络资源访问。
- 包括HTTP、FTP、SMTP等协议,用于实现不同应用程序之间的通信。
-
传输层(Transport Layer):
- 传输层提供端到端的数据传输服务,负责数据的分段和重组,并确保数据的可靠传输。
- 主要协议有TCP(传输控制协议)和UDP(用户数据报协议)。
-
网络层(Internet Layer):
负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规
划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层. -
数据链路层(Link Layer):
- 数据链路层负责在直接相连的节点之间传输数据帧。
- 包括物理寻址、数据帧的封装和解封装、以太网协议等。
- 负责设备之间的数据帧的传送和识别. 例如
网卡设备的驱动
、帧同步
(就是说从网线上检测
到什么信号算作新帧的开始)、冲突检测
(如果检测到冲突就自动重发)、数据差错校验
等工作. 有以太
网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层
总的来说,TCP/IP参考模型中的每个层都扮演着特定的角色,协同工作以实现网络通信。应用层提供用户接口和各种应用服务,传输层负责数据的传输和可靠性,网络层处理数据包的路由选择,数据链路层则负责物理层面的数据传输。这种分层结构使得网络通信更加高效、可靠,并且被广泛应用于互联网和局域网等网络环境中。
一般而言
- 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
- 对于一台路由器, 它实现了从网络层到物理层;
- 对于一台交换机, 它实现了从数据链路层到物理层;
- 对于集线器, 它只实现了物理层;
👉🏻局域网和广域网
🌈基本概念
局域网(LAN,Local Area Network)是指在相对较小的地理范围内建立的网络,通常局限于建筑物、办公室、校园等小范围内部署。LAN通常由一组相互连接的计算机和网络设备组成,用于实现资源共享(如打印机、文件等)和数据传输。局域网的传输速度较·、安全性高,适合用于组织内部的数据交换和资源共享。
而广域网(WAN,Wide Area Network)则是覆盖更广泛地理范围的网络,通常涵盖跨越城市、国家甚至全球的范围。WAN通过使用专用的连接设备(如路由器
、调制解调器)来连接不同地点的局域网或个人计算机,实现远程通信和数据传输。广域网的传输距离较远,但相对于局域网来说传输速度可能会慢一些,同时也存在一定的安全风险。
总的来说,局域网适用于小范围内部的网络通信和资源共享,而广域网则适用于连接不同地点之间的远程通信和数据传输。
局域网数据碰撞
局域网数据碰撞是指在局域网中,当两个或多个设备同时尝试通过共享的传输介质发送数据时,这些数据包在传输介质上产生冲突的现象。在以太网中,这种碰撞可能会导致数据丢失和网络传输效率下降。
在较早期的以太网中,采用的是CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议。当设备准备发送数据时,它首先会侦听传输介质,如果传输介质处于空闲状态,就开始发送数据。但是,如果两台设备几乎同时发送数据,它们的数据包就会在传输介质上发生碰撞。一旦检测到碰撞,参与碰撞的设备会进行退避操作,然后在一段随机时间后重新尝试发送数据。
现代的以太网技术和设备已经大大减少了数据碰撞的发生。例如,通过交换机等设备实现了分段局域网,从而避免了大部分数据碰撞的问题。因此,对于当前的网络环境来说,数据碰撞并不是一个常见的问题。
💥生活中我们遇到的 局域网数据碰撞
在一个区域中存在大量的人群同时使用设备发送数据,会导致局域网资源(比如共享的无线频谱或有线网络带宽)被抢占,从而增加数据碰撞的可能性。当多个设备同时尝试发送大量数据时,就会出现竞争和碰撞,导致数据包丢失和需要重新传输,从而降低网络的传输效率和速度
在局域网中,多台主机是怎么进行通信的?
在局域网中,多台主机可以通过以下几种方式进行通信:
-
广播通信:广播是一种简单而有效的通信方式,其中一台主机向局域网内的所有其他主机发送消息。广播通信可以让一台主机向整个网络传达信息,比如ARP(地址解析协议)请求和DHCP(动态主机配置协议)分配IP地址等。
-
单播通信:单播通信是指一台主机向另一台特定的主机发送数据。在局域网中,数据包会直接发送到目标主机的MAC地址,而不会传送给其他主机。
-
组播通信:组播通信是一种一对多的通信方式,其中一台主机向一个特定组内的多台主机发送数据。只有加入特定组的主机才能接收到组播消息。
-
点对点通信:点对点通信是指两台主机之间直接建立连接进行通信,可以通过直接指定目标主机的IP地址或MAC地址来实现。
IP地址和MAC地址
IP地址和MAC地址是计算机网络中用于标识和定位设备的两种不同类型的地址。
1. IP地址(Internet Protocol Address):
- IP地址是用于在网络中唯一标识和定位计算机或其他网络设备的逻辑地址。
- IP地址是在网络层使用的,用于在Internet协议(IP)网络上标识设备的位置。
- IPv4地址由32位二进制数字组成,通常以点分十进制表示(例如,192.168.1.1);IPv6地址由128位二进制数字组成,通常以冒号分隔的十六进制表示(例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
- IP地址是在互联网上进行路由和寻址的基础,它允许数据在网络中正确地路由到目标设备。
2. MAC地址(Media Access Control Address):
- MAC地址是网络接口控制器(NIC)上的硬件地址,用于唯一标识网络设备。
- MAC地址是在数据链路层使用的,用于在局域网内唯一标识设备。
- MAC地址通常是一个48位的十六进制数(例如,00:1A:2B:3C:4D:5E)。
- MAC地址是设备出厂时固定的,用于在局域网中进行设备的唯一标识和寻址。
总的来说,IP地址用于在全球范围内唯一标识和定位设备,而MAC地址用于在局域网内唯一标识设备。在数据传输过程中,源设备使用目标设备的IP地址进行路由,而在局域网内,则使用目标设备的MAC地址进行寻址和传输。
🍴IP地址和MAC地址虽然都用于标识网络设备,但它们之间有一些关键的区别:
-
唯一性:
- IP地址在全球范围内必须是唯一的,以确保在互联网中准确定位和通信。每台设备连接到网络时都会被分配一个唯一的IP地址。
- MAC地址在局域网范围内是唯一的,但并不要求在全球范围内唯一。每个网络接口设备(如网卡)在出厂时就被分配了一个唯一的MAC地址。
-
作用层次:
- IP地址工作在
网络层
,用于在Internet协议(IP)网络上唯一标识和定位设备。 - MAC地址工作在
数据链路层
,用于在局域网内唯一标识设备。MAC地址主要在局域网内的通信中起作用。
- IP地址工作在
-
范围:
- IP地址具有更广泛的范围,用于在全球范围内进行设备的唯一标识和寻址。
- MAC地址的范围相对较小,仅用于在局域网内唯一标识设备。
总体来说,IP地址比MAC地址具有更广泛的标识范围,因为IP地址用于全球范围内的互联网通信,而MAC地址主要用于局域网内的设备唯一标识。IP地址帮助全球互联网中的数据包路由到正确的目标设备,而MAC地址则用于局域网内设备之间的直接通信。
路由
路由是指在网络中将数据包从源节点传输到目标节点的过程。在计算机网络中,路由是通过网络设备(如路由器)根据特定的算法和路由表来确定数据包的最佳传输路径的过程。
具体来说,路由涉及以下几个方面:
-
路由器:路由器是网络中用于转发数据包的设备。路由器根据数据包的目标地址和网络状况选择最佳的路径将数据包从源节点传输到目标节点。
-
路由表:路由表是路由器上存储的信息,其中包含了网络中可达目标地址的路径信息。路由表中通常包括
目标网络地址
、下一跳路由器
以及出接口
等信息。 -
路由协议:路由协议是网络设备之间交换路由信息的约定。常见的路由协议包括RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、BGP(Border Gateway Protocol)等。
-
最佳路径选择:路由器通过路由表中的信息和路由算法选择最佳的路径将数据包传输到目标节点。最佳路径选择通常考虑因素包括路径的成本、延迟、带宽(带宽是指网络通信中可用的最大数据传输速率)等。
-
分组转发:一旦确定了最佳路径,路由器就会按照路由表中的信息将数据包转发到下一个路由器或目标节点,直到数据包到达目标节点。
👉🏻报文
在计算机网络中,报文(Message)是指在网络中传输的数据单元,可以是文本、图像、音频、视频或其他形式的数据。报文是信息在网络中传输的基本单位,它包含了发送方要传输的数据内容,并经过网络传输到接收方。
报文通常由两部分组成:
-
报头(Header):报头包含了与数据传输相关的控制信息,比如
源地址
、目标地址
、数据长度
、校验和
等。报头的作用是帮助网络设备正确地路由和传输数据。 -
数据部分(Payload):数据部分包含了实际要传输的内容,可以是文本、文件、图像或其他类型的数据。数据部分是报文中实际承载信息的部分。
当网络中的数据像快递员送货一样,报文就好比是快递包裹的内容和地址标签。
想象一下,你要给朋友寄一份礼物,你把礼物放进一个包裹里,然后在包裹上写上朋友的地址和你的地址作为寄件人。这个包裹就好比是一个报文,里面装着你要传输的数据,而地址标签则相当于报头,上面写着发送方和接收方的信息,以及其他必要的控制信息。
现在,这个包裹被交给快递员,快递员根据地址标签将包裹送到朋友那里。在网络中,数据包也是通过路由器、交换机等设备根据报头信息进行传输,确保数据能够准确到达目的地。
假设快递员在送包裹的过程中遇到了一些问题,比如路上堵车或者迷路了,这就好比网络中可能出现的数据传输延迟或丢包情况。但最终,只要快递员按照地址标签上的信息将包裹送到了正确的地方,你的礼物就能成功送达给朋友。
封装和解包
在网络传输数据时,封装(Encapsulation)和解包(Decapsulation)是指数据在网络设备之间传输时所进行的处理过程。
-
封装(Encapsulation):在发送端,当数据从应用程序生成后,网络协议栈会将数据依次封装成不同的协议数据单元。比如,在 TCP/IP 协议栈中,数据会被封装成数据报(Datagram),然后再在数据报中添加
IP 头
,形成 IP 数据报,接着再在 IP 数据报中添加TCP
或UDP 头
,最终形成了 TCP 或 UDP 数据段。这个过程就是封装过程,也称为封装或封装。 -
解包(Decapsulation):在接收端,网络设备会按照相反的顺序逐层解开封装,提取出原始的应用层数据。比如,先是从 TCP 或 UDP 数据段中提取数据,再从 IP 数据报中提取数据,最终得到原始的数据报,这个过程就是解包过程,也称为解封或解封装。
封装和解包过程是网络通信中非常重要的一部分,它们确保了数据能够在网络中正确地传输和到达目的地。每一层协议的封装和解包过程都是按照特定的规则和格式进行的,以确保数据在网络中能够被正确处理和传输。理解封装和解包的过程有助于深入理解网络通信的工作原理和网络协议栈的结构。
为什么要进行封装🤔
封装在网络通信中具有重要的作用,主要原因如下:
-
实现数据传输:封装将数据按照不同层次的协议格式进行打包,使得数据能够在网络中传输。通过封装,数据被转换成符合网络传输规范的格式,方便在网络设备之间传递和处理。
-
提供多层次的抽象:网络协议栈采用分层的设计,每一层负责不同的功能。封装使得每一层只需关注自己的协议头信息和数据部分,而不需要了解其他层次的细节,实现了多层次的抽象,提高了系统的灵活性和可维护性。
-
增加网络安全性:通过封装,可以在数据中添加各种控制信息、校验和认证数据,以确保数据在传输过程中的完整性和安全性。例如,在 IP 数据报中添加校验和字段可以帮助检测数据在传输中是否发生损坏或篡改。
-
路由和转发:封装为网络设备提供了识别数据流的标识符和路由信息,帮助网络设备正确地转发数据包到目标地址。每一层的协议头包含了必要的信息,使得网络设备能够根据这些信息来决定数据包的下一跳路径。
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长