网络结构模式

C/S 结构的分析

服务器-客户机模型

C/S(Client-Server)结构,即服务器-客户机结构,是一种常见的网络架构。在这种模型中,客户机和服务器通过网络连接,协同完成任务。客户机主要负责前端交互,向服务器发送请求并接收响应;服务器则处理来自客户机的请求,执行数据处理和存储等后端任务。

工作流程
  1. 连接与请求:客户机通过网络(通常是局域网或互联网)向服务器发送请求。
  2. 数据处理:服务器接收请求后,进行必要的数据处理或数据库操作。
  3. 响应:处理完成后,服务器将结果或数据回传给客户机。
  4. 展示结果:客户机接收数据后,对数据进行进一步处理(如计算或格式化)并展示给用户。
优势
  1. 利用客户端资源:C/S 结构能有效利用客户端的处理能力,部分计算任务可以在客户端完成,减轻服务器压力。
  2. 用户体验:客户端可以提供丰富和多样的用户界面,增强用户体验。
  3. 强大的事务处理:服务器端可以处理复杂的事务逻辑,确保数据的一致性和完整性。
  4. 高安全性:通过多级权限校验和控制访问,C/S 架构能提供较高的安全保障,适合需要高度安全控制的应用。
劣势
  1. 维护成本高:每台客户机都需要安装和维护专用软件,这增加了系统整体的维护难度和成本。
  2. 平台依赖性:客户端软件通常依赖特定的操作系统,限制了系统的可移植性和灵活性。
结论

C/S 架构因其能够提供稳定的性能和高安全性而被广泛应用,特别是在需要严格数据控制和高效事务处理的环境中。然而,随着技术的发展,许多应用开始采用更灵活的B/S(浏览器/服务器)架构以减少维护成本和提高系统的可扩展性。选择哪种架构,取决于具体的业务需求和技术条件。

C/S 结构应用实例
  1. 企业管理系统:如SAP和Oracle ERP系统,这些系统需求高度的安全性和复杂的业务逻辑处理,通常采用C/S结构。
  2. 银行系统:银行的交易处理系统,需要高安全性和高可靠性,一般采用C/S结构。
  3. 图形处理软件:如Adobe Photoshop,需要充分利用客户端的硬件资源来处理大量的图形数据。
  4. 电子邮件客户端:如Microsoft Outlook和Thunderbird,这些应用管理大量的本地数据并提供复杂的用户交互功能。
  5. 集成开发环境(IDE):如IntelliJ IDEA和Visual Studio,这些应用需要高性能的本地代码编辑和编译功能。

B/S 结构分析

浏览器/服务器模型简介

B/S(Browser/Server)结构,也称为浏览器/服务器模型,是随着Web技术的发展而兴起的网络结构模式。在B/S结构中,客户端主要通过Web浏览器与服务器进行交互。这种模型的关键在于简化客户端的角色,只需一个通用浏览器即可,而系统的核心功能则集中在服务器端实现,通常涉及数据库和Web服务器的密切配合。客户机上只要安装一个浏览器,如 Firefox 或 Internet Explorer,服务器安装 SQL Server、Oracle、MySQL 等数据库。浏览器通过 Web Server 同数据库进行数据交互。

工作流程
  1. 请求发送:用户通过浏览器发送请求到Web服务器。
  2. 服务器处理:Web服务器接收请求,并与后端数据库进行交互处理数据。
  3. 响应返回:处理后的数据被封装成Web页面或其他格式,通过HTTP/HTTPS协议发送回浏览器。
  4. 结果展示:浏览器接收到数据后呈现给用户,用户看到的可能是一个动态更新的Web页面。
优势
  1. 低维护成本:客户端只需维护浏览器,无需专门软件,降低了系统维护和升级的复杂性。
  2. 易于扩展:由于客户端几乎不承担计算负载,系统扩展主要在服务器端进行,容易实现横向扩展。
  3. 访问便利性:只要有网络连接,用户就可以在任何地点使用系统,提高了工作的灵活性。
  4. 开发和部署简单:开发者可以利用各种现成的Web技术和框架快速开发和部署应用。
劣势
  1. 通信成本高:每次操作都需要与服务器进行数据交互,增加了网络带宽的需求。
  2. 安全性问题:数据在互联网上的传输增加了被截取和篡改的风险。
  3. 个性化限制:通用浏览器限制了可以实现的个性化功能,可能无法满足所有用户的特定需求。 协议一般是固定的:http/https
  4. 响应速度:由于所有操作都依赖服务器处理,系统的响应速度可能受到服务器性能和网络延迟的影响。
结论

B/S架构以其开发简便、易于维护和强大的远程访问能力,在现代应用中得到广泛应用,尤其适合需要频繁更新和维护的大型企业应用。然而,对于需要高度个性化和强交互性的应用场景,可能需要考虑其他更适合的架构模式。选择合适的架构应基于具体的业务需求、安全需求和用户体验需求进行综合考虑。

C/S(客户端/服务器)结构和B/S(浏览器/服务器)结构各自有不同的适用场景,根据应用的具体需求、用户体验、安全要求和开发维护成本等因素选择最适合的架构。下面是一些采用C/S结构和B/S结构的应用类型的例子:

B/S 结构应用实例
  1. 电子商务网站:如Amazon和eBay,这些网站需要灵活的网页访问,允许用户在任何设备上进行购物。
  2. 社交媒体平台:如Facebook和Twitter,它们依赖于Web浏览器来提供动态内容更新和实时互动。
  3. 在线办公套件:如Google Docs和Microsoft Office 365,用户可以在浏览器中编辑文档,而无需本地安装软件。
  4. 客户关系管理系统(CRM):如Salesforce,主要通过Web界面提供服务,使得远程销售和客户服务团队可以方便地访问和管理数据。
  5. 在线教育平台:如Coursera和Khan Academy,提供在线课程和资源,依靠B/S结构易于维护和升级。

总的来说,C/S结构更适合对性能、安全性和复杂交互有高要求的应用,而B/S结构因其部署和维护简便、可在多种设备上运行等优点,更适合需要高度可访问性和易扩展性的应用。在选择架构时,需要综合考虑应用的具体需求和环境。

MAC地址是网络设备中的一个基本概念,重要的是它在网络通信中扮演的角色。下面详细解释MAC地址的概念、作用和重要性。

MAC地址

MAC 地址的概念

MAC地址(Media Access Control Address)是网络设备在制造时被分配的一个全球唯一的标识符。通常用于以太网和其他IEEE 802网络技术。MAC地址是一串48位的数字,通常表示为六组两位十六进制数,每组数之间用冒号(:)或者横线(-)分隔。例如:00-16-EA-AE-3C-40 或 00:16:EA:AE:3C:40。

MAC 地址的结构
  • 制造商识别号:MAC地址的前三组(例如,00-16-EA)称为组织唯一标识符(OUI),它指定了网络卡的制造商。这一部分由IEEE负责分配给硬件制造商。
  • 序列号:后三组(例如,AE-3C-40)是由制造商分配的,确保每块网卡的MAC地址在该制造商范围内是唯一的。
MAC 地址的功能
  1. 数据链路层的地址:在OSI模型的第二层——数据链路层,MAC地址用来确保数据准确地从一个网络接口传送到另一个网络接口。IP地址负责网络层的寻址,而MAC地址则是在本地网络环境中识别设备的方法。
  2. 封装与解封装:网卡在发送数据时,会在数据包上加上发送者和接收者的MAC地址,接收时解开这些信息,确保数据能送达正确的设备。
  3. 链路管理:MAC地址用于各种网络协议中,如ARP(地址解析协议),该协议帮助将网络层的IP地址转换为对应的MAC地址。
  4. 数据编码与译码:网卡还负责将数字信号编码与译码,确保数据能够在网络媒体上正确传输。
MAC 地址的唯一性与安全性

尽管MAC地址被设计为唯一的,但它可以在软件中被修改,这称为“MAC地址欺骗”。这种做法可能被用于网络安全测试,也可能被用于不正当目的,如绕过访问控制列表。

总的来说,MAC地址是每个网络设备的独特标识符,它允许网络上的设备在物理层面上进行唯一的识别和通信。虽然它在网络层(如IP网络)不可见,但在局域网中,它是实现数据传输的基础。

image-20240513221034308

以我的电脑为例,有六张网卡

image-20240513221807358

物理地址00-50-56-C0-00-08

image-20240513221942833

无线网卡是真实的mac地址

linux上查看mac地址

daic@daic:~/Linux$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.128.128  netmask 255.255.255.0  broadcast 192.168.128.255
        inet6 fe80::a650:6a3f:15c4:a819  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1c:d4:10  txqueuelen 1000  (Ethernet)
        RX packets 4670  bytes 5321576 (5.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3211  bytes 2761726 (2.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1424  bytes 2846370 (2.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1424  bytes 2846370 (2.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

IP地址

IP地址简介

IP地址(Internet Protocol Address),即互联网协议地址,是一个分配给网络中设备的数字标签。这种地址系统是IP协议的核心部分,允许不同网络设备通过因特网进行通信。IP地址不仅标识主机或其他网络设备,还帮助定位这些设备的地理位置。

IP地址的分类

IP地址通常分为几类,根据地址的第一个数字范围,IP地址分为A、B、C三种类型,每种类型的地址用于不同大小的网络。

A类地址
  • 范围:1.0.0.1 至 126.255.255.254
  • 网络数:126(2^7 - 2)
  • 每个网络的最大主机数:16,777,214
  • 私有IP范围:10.0.0.0 至 10.255.255.255
  • 应用:用于大型网络,如大型国际公司或提供者网络。
B类地址
  • 范围:128.0.0.1 至 191.255.255.254
  • 网络数:16,384(2^14)
  • 每个网络的最大主机数:65,534
  • 私有IP范围:172.16.0.0 至 172.31.255.255
  • 应用:适用于中型网络,如大学或大型企业。
C类地址
  • 范围:192.0.0.1 至 223.255.255.254
  • 网络数:2,097,152(2^21)
  • 每个网络的最大主机数:254
  • 私有IP范围:192.168.0.0 至 192.168.255.255
  • 应用:常用于小型网络,如小型企业或私人网络。
IP地址的表示方法

IP地址由32位二进制数构成,为了便于人类阅读和使用,通常采用点分十进制格式表示,如100.4.5.6对应的二进制为01100100.00000100.00000101.00000110。

IP地址的功能和重要性
  • 通信接口识别:每个接入互联网的设备都必须有一个唯一的IP地址,以确保信息能准确地发送和接收。
  • 网络设备定位:IP地址帮助网络中的设备找到彼此的位置,这是数据包路由和传输的基础。
  • 设备间互通:IP协议通过将不同类型的物理网络和设备统一到一个标准的地址系统下,解决了设备间的互通问题。

IP地址的这些特性使得它成为全球网络通信不可或缺的一部分,也是因特网能够迅速发展并广泛应用的技术基础之一。

IP地址编址方式

IP地址的设计原则是方便寻址和层次化构造网络。在最初的互联网地址结构中,一个IP地址被分为两部分:网络ID和主机ID。网络ID用于标识特定的网络,而所有连接到这个网络上的设备共享这个网络ID;主机ID则用于标识连接到网络上的具体设备,如工作站、服务器和路由器等。

IP地址分类

image-20240513224825975

IP地址被分为五类(A、B、C、D和E),以适应不同规模和需求的网络:

  • A类地址

    • 网络ID长度:8位(除去首位固定的0)
    • 主机ID长度:24位
    • 网络范围:1.0.0.0到126.0.0.0
    • 示例用途:非常大的网络,如国际企业或大型ISP
  • B类地址

    • 网络ID长度:16位(除去首两位固定的10)
    • 主机ID长度:16位
    • 网络范围:128.0.0.0到191.255.0.0
    • 示例用途:中等规模的网络,如大学或大公司
  • C类地址

    • 网络ID长度:24位(除去首三位固定的110)
    • 主机ID长度:8位
    • 网络范围:192.0.0.0到223.255.255.0
    • 示例用途:小型网络,如办公室局域网
  • D类地址

    • 用途:多播地址,用于多播群组(网络ID和主机ID不再区分)
    • 范围:224.0.0.0到239.255.255.255
  • E类地址

    • 用途:实验和未来使用,目前不分配给公共网络
    • 范围:240.0.0.0到255.255.255.255
分配和管理

A类、B类和C类地址的分配由互联网号码分配机构(如ICANN的IANA部门)全球统一管理,确保每个网络和主机的唯一性。而D类和E类地址主要用于特殊目的,不用于常规的网络通信。

特殊IP地址
  • 0.0.0.0:表示当前主机,用于特定的网络协议。
  • 255.255.255.255:局域网的广播地址,用于发送给当前子网中所有主机。
  • 127.0.0.1 - 127.255.255.255:用于回路测试,常见的是127.0.0.1,代表本机IP地址。

测试网络能不能联通

  • image-20240513224533360

    image-20240513224737988

  • E类IP地址(保留用于将来和实验使用):以“11110”开头的地址,如范围240.0.0.0至255.255.255.255。

现代网络中的变化

随着互联网的发展,传统的IP地址(IPv4)由于地址空间限制开始逐渐显得不足。IPv6的推出是为了解决这个问题,提供了几乎无限的地址空间,并采用了128位地址来支持更多的网络设备和服务。IPv6的引入也改变了地址的分配和管理方式,提供了更多的灵活性和扩展性。

子网掩码

子网掩码简介

子网掩码(subnet mask),也叫网络掩码、地址掩码或子网络遮罩,是一种用于指明一个 IP 地址哪些位表示子网标识,哪些位表示主机标识的技术。子网掩码不能单独存在,必须结合 IP 地址一起使用。它的唯一作用是将某个 IP 地址划分为网络地址和主机地址两部分。

子网掩码的结构

子网掩码是一个 32 位的地址,用于屏蔽 IP 地址的一部分,以区别网络标识和主机标识,并说明该 IP 地址是在局域网上还是在广域网上。子网掩码是通过逻辑运算,将 IP 地址划分为网络标识(Net.ID)和主机标识(Host.ID)。网络标识相同的两台主机在无路由的情况下才能相互通信。

子网掩码的作用

子网掩码主要有以下几个作用:

  1. 提高 IP 地址分配效率:在 IPv4 地址资源紧缺的背景下,子网掩码通过将 A、B、C 三类地址划分为若干子网,显著提高了 IP 地址的分配效率,有效解决了 IP 地址资源紧张的局面。

  2. 网络管理:在企业内网中,网管人员利用子网掩码将一个较大的网络划分为多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有效解决了网络广播风暴和网络病毒等网络管理方面的问题。

  3. 路由功能:子网掩码告知路由器地址的哪一部分是网络地址,哪一部分是主机地址,使路由器能够正确判断任意 IP 地址是否是本网段的,从而正确地进行路由。

子网掩码的表示方法

子网掩码按照 RFC950 定义,是一个 32 位的二进制数。其对应网络地址的所有位都置为 1,对应于主机地址的所有位都置为 0。例如,常见的子网掩码有:

  • 255.0.0.0(/8):用于 A 类地址
  • 255.255.0.0(/16):用于 B 类地址
  • 255.255.255.0(/24):用于 C 类地址

子网掩码的设定必须遵循一定的规则。与二进制 IP 地址相同,子网掩码由连续的 1 和 0 组成,1 的数目等于网络位的长度,0 的数目等于主机位的长度。这种做法的目的是让掩码与 IP 地址做按位与运算时用 0 遮住原主机数,而不改变原网络段数字,并且通过 0 的位数确定子网的主机数(2 的主机位数次方 - 2,因为主机号全为 1 时表示该网络广播地址,全为 0 时表示该网络的网络号,这是两个特殊地址)。

子网掩码在网络中的应用

通过子网掩码,能够表明一台主机所在的子网与其他子网的关系,使网络能够正常工作。在网络数据传输过程中,子网掩码帮助路由器确定数据包的目的地是本地网络还是需要转发到其他网络。例如,在局域网中,如果两台主机的网络标识相同,它们可以直接通信;如果不同,则需要通过路由器转发数据。

总结

子网掩码在 IP 地址管理和网络配置中起着至关重要的作用。它不仅提高了 IP 地址的分配效率,还在网络管理和数据路由中发挥了重要作用。理解子网掩码的原理和应用,对于网络工程师和 IT 管理人员来说,是非常重要的技能。

端口

端口简介

“端口”是英文“port”的意译,可以理解为设备与外界通讯交流的出口。端口分为虚拟端口和物理端口。

  • 虚拟端口:指计算机内部或交换机路由器内的端口,不可见,特指TCP/IP协议中的端口。例如,计算机中的80端口、21端口、23端口等。
  • 物理端口:又称为接口,是可见端口,例如计算机背板的RJ45网口、交换机路由器集线器等的RJ45端口。电话使用的RJ11插口也属于物理端口的范畴。

如果把IP地址比作一间房子,端口就是出入这间房子的门。IP地址的端口有65536个(即2^16)。端口通过端口号标记,范围从0到65535。端口其实就是缓冲区,有读缓冲区和

端口类型
  1. 周知端口(Well Known Ports)

    • 范围:0到1023
    • 这些端口紧密绑定于特定服务,例如80端口用于WWW服务,21端口用于FTP服务,23端口用于Telnet服务等。默认情况下,常见服务使用这些端口号,不需特别指定。
  2. 注册端口(Registered Ports)

    • 范围:1024到49151
    • 这些端口松散地绑定于一些服务,分配给用户进程或应用程序。这些进程通常是用户选择安装的应用程序,而不是已经分配了公认端口的常用程序。这些端口在未被服务器资源占用时,可以动态分配为源端口。
  3. 动态端口 / 私有端口(Dynamic Ports / Private Ports)

    • 范围:49152到65535
    • 动态端口一般不固定分配给某种服务,而是动态分配。
端口示例
  • 80端口:默认用于HTTP协议的Web服务。
  • 21端口:用于FTP(文件传输协议)服务。
  • 23端口:用于Telnet(远程登录)服务。
  • 139端口:用于NetBIOS与TCP/IP之间的通信,通常不可更改。
应用与管理

端口在网络通信中起着重要作用,通过端口号,计算机可以识别和管理不同的服务和应用程序。例如,当你在浏览器中输入网址时,如果没有指定端口号,默认会使用80端口进行通信。

使用端口号,可以在同一台计算机上同时运行多个网络服务。例如,Web服务器可以使用80端口,FTP服务器可以使用21端口,同时其他服务可以使用各自分配的端口号进行通信。

网络模型

OSI七层模型(Open System Interconnection)是国际标准化组织(ISO)制定的用于计算机或通信系统间互联的标准体系。这个模型将网络通信划分为七个层次,每个层次都有特定的功能和协议,确保数据能够顺利地从一个系统传输到另一个系统。以下是对OSI七层模型的详细介绍:

记忆:物数网传会表应

image-20240517072551974

  1. 物理层(Physical Layer)

    • 功能:主要定义物理设备标准,如网线接口类型、光纤接口类型、传输介质的传输速率等。
    • 作用:传输比特流(将1、0转化为电流强弱进行传输,到达目的地后再转化为1、0)。
    • 数据单位:比特(Bits)。
  2. 数据链路层(Data Link Layer)

    • 功能:建立逻辑连接、进行硬件地址寻址、差错校验等。
    • 作用:定义数据帧的格式化和物理介质访问控制,将比特组合成字节进而组合成帧,并使用MAC地址访问介质。
    • 数据单位:帧(Frames)。
  3. 网络层(Network Layer)

    • 功能:进行逻辑地址寻址,在不同地理位置的网络中提供连接和路径选择。
    • 作用:管理网络间的连接,使得从世界各地访问信息变得可能。
    • 数据单位:包(Packets)。
  4. 传输层(Transport Layer)

    • 功能:定义传输数据的协议和端口号,如TCP(传输控制协议)和UDP(用户数据报协议)。
    • 作用:将数据进行分段和传输,到达目的地后再进行重组。
    • 数据单位:段(Segments)。
  5. 会话层(Session Layer)

    • 功能:通过传输层建立数据传输通路,发起或接受会话请求。
    • 作用:在系统之间建立、管理和终止会话。
    • 数据单位:会话(Sessions)。
  6. 表示层(Presentation Layer)

    • 功能:数据的表示、安全、压缩。
    • 作用:进行数据的解释、加密与解密、压缩与解压缩,将计算机识别的数据转换成人类识别的数据(如图片、声音等)。
    • 数据单位:数据(Data)。
  7. 应用层(Application Layer)

    • 功能:为用户应用程序提供网络服务。
    • 作用:作为用户和网络服务的接口,支持诸如电子邮件、文件传输和终端仿真等应用。
    • 数据单位:数据(Data)。

每一层都有其特定的功能和作用,通过这些层次的协同工作,数据能够从发送端有效地传输到接收端,实现不同系统之间的互联互通。

TCP/IP四层模型

TCP/IP协议族是目前互联网中使用的主流协议体系,它通过简化和整合OSI模型的七层结构,将其压缩为四个层次:应用层、传输层、网络层和网络接口层。每个层次在整个网络通信中承担不同的功能,并通过各种协议实现这些功能。以下是对TCP/IP协议族四个层次的详细介绍:

记忆:数网传应

上层协议使用下层的服务

image-20240517073926997

1. 应用层(Application Layer)

应用层是TCP/IP协议栈的最高层,直接为应用程序提供服务。它整合了OSI模型的应用层、表示层和会话层功能。主要职责包括:

  • 提供应用程序服务:如电子邮件(SMTP协议)、万维网(HTTP协议)、文件传输(FTP协议)、远程登录(TELNET协议)等。
  • 数据处理:负责数据的加密、解密、格式化等。
  • 会话管理:建立和终止与其他节点的通信连接,优化网络资源使用。
2. 传输层(Transport Layer)

传输层负责端到端的数据传输和通信。它主要通过TCP和UDP两种协议来实现数据传输:

  • TCP(传输控制协议):提供可靠的、面向连接的通信。通过三次握手建立连接,保证数据按序传输且无丢失,适用于传输可靠性要求高的场景,如文件传输和网页浏览。
  • UDP(用户数据报协议):提供不可靠的、无连接的通信,不保证数据按序到达或不丢失,适用于实时性要求高但可靠性要求低的场景,如视频流和在线游戏。
3. 网络层(Network Layer)

网络层负责数据包在网络中的传输和路由选择,主要通过IP协议来实现。其主要功能包括:

  • IP地址管理:分配和管理IP地址。
  • 路由选择:决定数据包从源到目的地的最佳路径。
  • 数据包转发:将数据包从源网络传输到目标网络。
4. 网络接口层(Network Interface Layer)

网络接口层(也称为链路层)是TCP/IP协议栈的最低层,整合了OSI模型的物理层和数据链路层功能。其主要职责包括:

  • 物理传输:通过物理媒体(如电缆、光纤、无线电波)传输数据。
  • 数据帧传输:定义数据帧的格式,并负责数据帧的发送、接收和错误检测。
  • 硬件地址管理:使用MAC地址进行设备间的数据传输。
TCP/IP四层模型与OSI七层模型的对比
  • 应用层:TCP/IP的应用层合并了OSI模型的应用层、表示层和会话层。
  • 传输层:在两种模型中都作为独立的层,负责可靠的数据传输。
  • 网络层:在两种模型中都负责路由选择和数据包传输。
  • 网络接口层:TCP/IP的网络接口层合并了OSI模型的物理层和数据链路层。
总结

TCP/IP协议族通过简化层次结构,提高了协议的效率和实际应用中的可操作性。这种四层模型更为直接和实用,使得网络通信更加高效和成本更低,推动了互联网的广泛应用和发展。

协议

简介

协议是网络协议的简称,是通信计算机双方必须共同遵从的一组约定,包括如何建立连接、如何互相识别等。只有遵守这些约定,计算机之间才能相互通信和交流。网络协议的三要素是:语法(数据的格式和编码)、语义(控制信息和错误处理方式)、时序(事件顺序和速度匹配)。

为了确保数据能够在网络上从源传输到目的地,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol)。协议最终体现为在网络上传输的数据包的格式。协议通常分成几个层次进行定义,以便某一层协议的改变不会影响其他层次的协议。

常见协议

以下是各层常见的网络协议及其功能:

1. 应用层

应用层是为应用程序提供网络服务的层,常见的协议包括:

  • FTP(File Transfer Protocol):用于文件传输,支持文件的上传和下载。
  • HTTP(Hyper Text Transfer Protocol):用于超文本传输(包括图片,音频等),是Web浏览的基础协议。
  • NFS(Network File System):允许不同计算机之间通过网络共享文件系统。
  • SSH(Secure Shell)协议是一种用于计算机之间安全通信的协议,主要用于远程登录和其他网络服务的加密。SSH协议通过加密技术提供了一种安全的渠道,防止数据在传输过程中被窃听、篡改或伪造。
2. 传输层

传输层负责端到端的数据传输和通信,常见的协议包括:

  • TCP(Transmission Control Protocol):提供可靠的、面向连接的通信,保证数据按序传输且无丢失。
  • UDP(User Datagram Protocol):提供不可靠的、无连接的通信,不保证数据按序到达或不丢失。
3. 网络层

网络层负责数据包在网络中的传输和路由选择,常见的协议包括:

  • IP(Internet Protocol):负责数据包的路由和转发,是互联网的基础协议。
  • ICMP(Internet Control Message Protocol):用于发送控制消息和错误报告,如ping命令。
  • IGMP(Internet Group Management Protocol):用于管理多播组成员。
4. 网络接口层

网络接口层负责数据帧的传输和接收,常见的协议包括:

  • ARP(Address Resolution Protocol):将IP地址解析为物理地址(MAC地址)。
  • RARP(Reverse Address Resolution Protocol):将物理地址解析为IP地址。
分层定义的优势

分层定义协议的主要优势在于灵活性和模块化。每一层只需关注其特定的功能,当某一层的协议需要改进或替换时,不会影响到其他层次的协议。例如,应用层的改动不会影响传输层或网络层的工作。这样不仅提高了协议设计的效率,也使得网络系统更容易维护和升级。

daic@daic:~$ ps aux | grep sshd
root       1096  0.0  0.1  72304  5680 ?        Ss   07:18   0:00 /usr/sbin/sshd -D
root       2606  0.0  0.1 107792  6988 ?        Ss   08:57   0:00 sshd: daic [priv]
daic       2691  0.0  0.1 110088  5432 ?        S    08:57   0:00 sshd: daic@pts/0
daic       2730  0.0  0.0  16180  1080 pts/0    R+   09:01   0:00 grep --color=auto sshd
daic@daic:~$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1096/sshd           
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      2691/sshd: daic@pts 
tcp        0     36 192.168.128.128:22      192.168.128.1:5560      ESTABLISHED 2606/sshd: daic [pr 
tcp6       0      0 :::22                   :::*                    LISTEN      1096/sshd           
tcp6       0      0 ::1:6010                :::*                    LISTEN      2691/sshd: daic@pts 
unix  3      [ ]         STREAM     CONNECTED     99160    2691/sshd: daic@pts  
unix  2      [ ]         DGRAM                    99067    2606/sshd: daic [pr  
unix  3      [ ]         STREAM     CONNECTED     48792    1096/sshd            
unix  3      [ ]         STREAM     CONNECTED     99161    2606/sshd: daic [pr  

UDP协议

image-20240518070841207

  1. 源端口号:发送方端口号
  2. 目的端口号:接收方端口号
  3. 长度:UDP用户数据报的长度,最小值是8(仅有首部)
  4. 校验和:检测UDP用户数据报在传输中是否有错,有错就丢弃

TCP协议

image-20240518071019796

  1. 源端口号 (Source Port)

    • 发送方的端口号,用于标识发送数据的应用程序。
  2. 目的端口号 (Destination Port)

    • 接收方的端口号,用于标识接收数据的应用程序。
  3. 序列号 (Sequence Number)

    • 指示本报文段中第一个字节的数据序号。用于数据重组和确认。
  4. 确认序号 (Acknowledgment Number)

    • 表示期望收到对方下一个报文段中第一个字节的序号。用于确认已接收到的数据。
  5. 首部长度(数据偏移) (Header Length or Data Offset)

    • 表示 TCP 报文段首部长度,以 32 位(4 字节)为单位。指示数据部分相对于报文段起始处的位置。
  6. 保留 (Reserved)

    • 6 位长,保留给未来使用,目前应置为 0。
  7. 紧急 URG (Urgent)

    • 如果置 1,表明紧急指针字段有效,表示报文段中有紧急数据需要优先处理。
  8. 确认 ACK (Acknowledge)

    • 如果置 1,表明确认序号字段有效。在连接建立后,所有传输的报文段都必须将 ACK 置为 1。
  9. 推送 PSH (Push)

    • 如果置 1,表示发送方希望立即将数据推送到接收应用程序,而不是等待缓冲区填满后再传送。
  10. 复位 RST (Reset)

    • 用于复位连接。如果收到 RST 报文段,表示连接出现问题,需要重新建立连接。
  11. 同步 SYN (Synchronize)

    • 仅在三次握手建立 TCP 连接时有效。当 SYN = 1 而 ACK = 0 时,表示这是一个连接请求报文段。对方同意连接后,会回应一个 SYN = 1 和 ACK = 1 的报文段。
  12. 终止 FIN (Finish)

    • 用于连接释放。当 FIN = 1 时,表示发送方的数据已发送完毕,请求释放连接。
  13. 窗口 (Window)

    • 表示发送方的接收窗口大小,指示接收方能够接收的数据量,用于流量控制。
  14. 校验和 (Checksum)

    • 包含 TCP 首部和数据部分的校验和,用于检测传输过程中是否出现错误。
  15. 紧急指针 (Urgent Pointer)

    • 仅在 URG = 1 时有效,指出紧急数据的结束位置。即使接收窗口为零时,也可以发送紧急数据。
  16. 选项 (Options)

    • 可变长度,最长可达 40 字节。当不使用选项时,TCP 首部长度为 20 字节。选项字段用于扩展 TCP 协议的功能,如窗口缩放、时间戳等。

这些字段共同工作,确保 TCP 的可靠性、顺序性和流量控制,使数据能够可靠地从发送方传送到接收方。

IP协议

image-20240518073703307

IP 报文段字段详细解释

  1. 版本 (Version)

    • 指示 IP 协议的版本。通信双方必须使用相同版本的 IP 协议。目前最广泛使用的版本是 IPv4(版本号为 4)。
  2. 首部长度 (Header Length)

    • 表示 IP 首部的长度,单位是 32 位(4 字节)。
  3. 服务类型 (Type of Service, TOS)

    • 通常设为 0,用于指定数据包的优先级和服务质量,目前大多数应用中不使用。
  4. 总长度 (Total Length)

    • 表示 IP 报文段的总长度,包括首部和数据部分,单位为字节。
  5. 标识 (Identification)

    • 标识字段用于唯一标识每一个 IP 数据报片。IP 软件维护一个计数器,每生成一个新的数据报,这个计数器加 1,并将其赋值给标识字段。
  6. 标志 (Flags)

    • 标志字段有两个重要的标志位:
      • DF(Don’t Fragment):DF = 1 表示数据报不能被分片,DF = 0 表示允许分片。
      • MF(More Fragments):MF = 1 表示后续还有分片,MF = 0 表示这是最后一个分片。
  7. 片偏移 (Fragment Offset)

    • 表示某个分片在原始数据报中的相对位置,以 8 字节为单位。用于在接收端将分片重新组装。
  8. 生存时间 (Time to Live, TTL)

    • 表示数据报在网络中的生存时间,以跳数为单位。每经过一个路由器,TTL 值减 1,当 TTL 减为零时,数据报被丢弃。
  9. 协议 (Protocol)

    • 指示数据报携带的数据使用的协议,以便目的主机的 IP 层知道将数据部分交给哪个处理过程。常见的协议有 ICMP (1), IGMP (2), TCP (6), UDP (17), IPv6 (41)。
  10. 首部校验和 (Header Checksum)

    • 用于校验数据报的首部部分,确保数据在传输中没有损坏。不包括数据部分的校验。
  11. 源地址 (Source Address)

    • 表示发送方的 IP 地址。
  12. 目的地址 (Destination Address)

    • 表示接收方的 IP 地址。

这些字段共同作用,确保 IP 数据报能够在复杂的网络环境中有效传输,提供了数据包分片、重组、生存时间控制等重要功能。

以太网帧协议

image-20240518075450155

类型:0x800表示 IP、0x806表示 ARP、0x835表示 RARP

ARP协议

image-20240518075812400

  1. 硬件类型:1 表示 MAC 地址
  2. 协议类型:0x800 表示 IP 地址
  3. 硬件地址长度:6
  4. 协议地址长度:4
  5. 操作:1 表示 ARP 请求,2 表示 ARP 应答,3 表示 RARP 请求,4 表示 RARP 应答
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值