一、OSI概念模型与TCP/IP模型
二、网络的分层结构:
- 物理层(Physical Layer):物理层是整个网络通信的基础层,它负责传输比特流。在物理层中,主要关注的是如何在通信媒介上传输数据,包括电压、频率、光强度等物理特性。物理层还涉及数据的数字与模拟信号的转换,以及物理连接的建立和维护。
- 数据链路层(Data Link Layer):数据链路层通过物理连接实现点对点的直接通信。这一层的主要功能包括将比特组装成数据帧(Data Frame)、进行错误检测和纠正,以确保数据在物理层的可靠传输。数据链路层还负责流量控制和数据的访问控制。(工作在局域网中,通过源和目的地之间一系列路由器路由数据报,数据包含mac地址)
- 网络层(Network Layer):网络层负责在网络中寻址和路由数据包。该层的主要功能是确定数据包的最佳路径,实现不同网络之间的通信和数据包的传输。常用的网络层协议有IP(Internet Protocol)和ICMP(Internet Control Message Protocol)。(在广域网中,将数据包从一个网络分组传到另一个网络分组)
- 传输层(Transport Layer):传输层负责端到端的通信和数据传输。传输层提供了数据传输的可靠性和完整性,常用的传输层协议有TCP和UDP。TCP提供可靠的数据传输机制,并通过序号、确认和重传等技术来确保数据的可靠性;而UDP则是一种无连接的传输协议,适用于实时性要求高的应用场景。(主机收到数据后,将报文分发给各个进程)
- 会话层(Session Layer):会话层负责建立、管理和终止会话(session)。会话层在通讯实体之间建立连接,并在数据交换过程中处理同步和错误恢复。会话层还负责数据的流量控制和数据的分段等操作。
- 表示层(Presentation Layer):表示层负责数据的格式化、加密和压缩,以确保数据的可读性和可靠性。表示层的功能包括数据格式的转换、数据的加密解密和数据的压缩解压缩等,使得不同系统之间能够正确地解释和显示数据。
- 应用层(Application Layer):应用层为用户提供网络服务和应用程序访问。应用层包括各种网络应用协议,例如HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等。用户通过应用层可以直接与网络进行交互,访问各种网络资源和服务。
当我们把网络分层结构比喻成房子的建筑过程,可以更容易理解每一层的功能和作用:
- 物理层(Physical Layer):物理层就像是房子的地基和基础结构,负责支撑整个建筑并让房子稳固地立在地面上。
- 数据链路层(Data Link Layer):数据链路层就像是房子的墙壁和门窗,负责将房子内部的空间划分开来,保障每个房间之间的私密性和安全性。
- 网络层(Network Layer):网络层就像是房子中的管道系统,负责连接不同楼层的水管、电线等设施,确保各个房间之间能够互相通信和交换信息。
- 传输层(Transport Layer):传输层就像是房子中的电梯或楼梯,负责将人和物品从一个楼层快速、可靠地运送到另一个楼层,确保信息的顺利传输。
- 会话层(Session Layer):会话层就像是房子中的接待大厅,负责接待和引导进入房子的客人,协调客人之间的交流和互动。
- 表示层(Presentation Layer):表示层就像是房子的装修风格和布置摆设,负责将房子打造得美观舒适,让客人感到舒适和愉悦。
- 应用层(Application Layer):应用层就像是房子里提供的各种服务和设施,例如餐厅、健身房、娱乐室等,满足住户的各种需求和需求。
三、TCP和UDP区别
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的传输层协议,它们在网络通信中扮演着不同的角色,具有以下主要区别:
- 连接性:
- TCP是面向连接的协议,建立连接后进行数据传输,并保证数据的可靠传输。在传输数据之前,需要先建立连接,然后进行数据传输,最后释放连接。
- UDP是无连接的协议,每个数据包都是独立的,发送端发送数据包后不会确认是否到达目的地,也不会重传丢失的数据包。
- 可靠性:
- TCP提供高可靠性的数据传输,通过序列号、应答机制、重传机制等手段来确保数据的完整性和可靠性,适用于对数据准确性要求较高的场景。
- UDP不提供数据传输的可靠性保证,数据包一旦发送出去就不再管它,可能会出现丢包或乱序的情况,适用于实时性要求高、可以容忍少量丢包的场景。
- 数据量:
- TCP对数据包大小有限制,数据会被分割成多个包进行传输,同时TCP会控制传输速率以避免网络拥堵。
- UDP没有数据大小限制,适用于需要一次性传输大量数据的场景。
- 顺序性:
- TCP能够保证数据包按照发送顺序到达接收端,并重组正确的顺序,确保数据的完整性。
- UDP不保证数据包按照发送顺序到达接收端,接收端需要自行处理数据包的顺序。
总的来说,TCP适用于对数据传输可靠性要求高的场景,如文件传输、网页访问等;而UDP适用于实时性要求高、可以容忍少量数据丢失的场景,如实时视频、语音通话等。开发者在选择使用TCP还是UDP时,需要根据具体应用场景和需求来进行权衡和选择。
四、MAC地址
MAC地址(Media Access Control address)又称为物理地址,是数据链路层(OSI模型中第二层)的一个重要概念。MAC地址是用于识别网络设备(如计算机、路由器、网络打印机等)的唯一地址,类似于每台设备的身份证号码,在局域网内具有唯一性。
以下是关于MAC地址的一些基本信息:
- 格式:MAC地址通常由48位二进制数表示,通常以十六进制数形式展示,每个十六进制数对应4位二进制数。例如,00:1A:2B:3C:4D:5E。
- 唯一性:MAC地址在全球范围内应该是唯一的,即不同设备的MAC地址不会相同,这样可以确保网络中的每个设备都能被正确标识。
- 组成:MAC地址由两部分组成,前24位是厂商识别码(OUI,Organizationally Unique Identifier),用来标识设备生产厂商;后24位是该厂商分配给设备的唯一标识号。
- 用途:MAC地址主要用于在局域网中识别和定位设备,帮助网络设备进行通信时选择合适的目标设备。
- 获取:在大多数操作系统中,可以通过命令行工具(如ipconfig/ifconfig)或网络设置界面查看设备的MAC地址。
- 静态与动态:MAC地址可以是静态的(固定不变)或动态的(可更改)。有些网络设备允许用户手动修改MAC地址以增强安全性或实现特定功能。
总的来说,MAC地址是网络设备在局域网中的唯一标识,是数据链路层通信所必需的重要信息之一。在网络通信中,MAC地址被用来确定数据包从发送端到接收端的路径,确保数据传输的准确性和安全性。
五、TCP/IP、TCP、UDP区别
TCP/IP协议是一种网络通信协议套件,由TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)两个核心协议组成。而TCP和UDP则是TCP/IP协议套件中的两种主要传输层协议,用于在网络中传输数据。
下面简单介绍TCP/IP协议、TCP和UDP之间的关系:
- TCP/IP协议:
- TCP/IP协议是互联网所使用的基本协议套件,包括了多个协议,其中最重要的是TCP和IP。
- TCP/IP协议提供了一种可靠的、端到端的通信架构,适用于各种网络环境和应用场景。
- TCP(Transmission Control Protocol):
- TCP是TCP/IP协议套件中的一个传输层协议,提供面向连接的、可靠的数据传输服务。
- TCP保证数据传输的可靠性,通过序号、确认和重传机制来确保数据的完整性和可靠性。
- TCP适合对数据传输质量要求较高的应用,如文件传输、网页浏览等。
- UDP(User Datagram Protocol):
- UDP也是TCP/IP协议套件中的一个传输层协议,提供无连接的、不可靠的数据传输服务。
- UDP不保证数据传输的可靠性,不具备重传机制,适合对实时性要求较高的应用。
- UDP适用于音频/视频流、在线游戏等需要快速传输、实时性要求较高的场景。
总的来说,TCP/IP协议是网络通信的基础,包含了多个协议,其中TCP和UDP是传输层协议,负责在网络中传输数据。TCP提供可靠的数据传输服务,适合对数据完整性要求高的应用;UDP提供快速但不可靠的数据传输服务,适合实时性要求高的应用。在实际应用中,根据不同的需求可以选择使用TCP或UDP来进行数据传输。