一.协议的概念

1.1协议的概念

什么是协议 从运用的视点出发,协议可了解为“规矩”,是数据传输和数据的解说的规矩。假设,A、B两边欲传输文件。规定:

第一次,传输文件名,接纳方接纳到文件名,应对OK给传输方; 第二次,发送文件的尺度,接纳方接纳到该数据再次应对一个OK; 第三次,传输文件内容。同样,接纳方接纳数据完结后应对oK表明文件内容接纳成功。

由此,无论A、B之间传递何种文件,都是通过三次数据传输来完结。A、B之间构成了一个最简单的数据传输规矩。两边都按此规矩发送、接纳数据。A、B之间达成的这个彼此遵守的规矩即为协议

这种仅在A、B之间被遵守的协议称之为原始协议。当此协议被更多的人采用,不断的增加、改善、保护、完善。最终构成一个安稳的、完好的文件传输协议,被广泛运用于各种文件传输进程中。该协议就成为一个规范协议。最早的ftp协议便是由此衔生而来。

Tcp协议注重数据的传输Http协议着重于数据的解说。

Linux网络基础

1.2典型协议

  1. 物理层和数据链路层:

    • Ethernet(以太网):在局域网中传输数据的常用协议。
    • Wi-Fi:用于无线局域网(WLAN)的协议。
    • ARP(Address Resolution Protocol):用于将 IP 地址解析为物理 MAC 地址的协议。
    • PPP(Point-to-Point Protocol):用于点对点通讯的协议,常用于拨号衔接、DSL 等。
  2. 网络层:

    • IP(Internet Protocol):用于在网络中路由和传输数据的首要协议。
    • ICMP(Internet Control Message Protocol):用于网络故障排除和过错报告的协议。
    • IGMP(Internet Group Management Protocol):用于在 IP 多播中办理组成员的协议。
  3. 传输层:

    • TCP(Transmission Control Protocol):供给牢靠的、面向衔接的数据传输。
    • UDP(User Datagram Protocol):供给不牢靠的、面向无衔接的数据传输。
  4. 运用层:

    • HTTP(Hypertext Transfer Protocol):用于在 Web 中传输超文本的协议。
    • FTP(File Transfer Protocol):用于文件传输的协议。
    • DNS(Domain Name System):用于将域名解析为 IP 地址的协议。
    • SMTP(Simple Mail Transfer Protocol):用于电子邮件的传输。
    • POP3(Post Office Protocol version 3):用于电子邮件的接纳。

二.分层模型

Linux网络基础

2.1 OSI七层模型

OSI模型(Open Systems Interconnection model)是一种用于描绘核算机网络体系结构的概念结构。它将核算机网络通讯的不同方面区分为七个不同的层级,每个层级都担任特定的功用。以下是OSI模型的七个层级:

  1. 物理层(Physical Layer):担任传输比特流,描绘物理媒介的传输电气和物理特性。

  2. 数据链路层(Data Link Layer):处理帧(Frame)的传输和过错检测,确保牢靠的点到点传输。

  3. 网络层(Network Layer):处理网络中的数据包路由挑选、转发和操控。

  4. 传输层(Transport Layer):供给端到端的牢靠传输服务,并处理数据包的分段和重组。

  5. 会话层(Session Layer):担任树立、办理和停止运用程序会话。

  6. 表明层(Presentation Layer):处理数据的格局和编码,完成在不同体系中的数据格局之间的转换。

  7. 运用层(Application Layer):为用户供给网络运用服务,例如电子邮件、文件传输和远程登录等。

OSI模型供给了一种通用的参考结构,帮助人们了解和描绘核算机网络中不同层级的功用。它启发了许多规范和协议的规划,比如TCP/IP协议便是依据OSI模型进行规划的。

需求注意的是,实际上,并不是一切的网络都严厉遵从OSI模型的七层结构,而是更常用的TCP/IP模型,将其中的物理层和数据链路层合并为一个层级。但OSI模型仍然是核算机网络中的一个重要概念。

2.2TCP/UDP模型

TCP/IP模型是一种核算机网络体系结构,也是现代互联网所基于的核心协议体系。相比于OSI模型,TCP/IP模型将网络通讯区分为四个层级,详细如下:

  1. 网络接口层(Network Interface Layer):

    • 担任处理物理传输介质和网络设备之间的通讯,如以太网、Wi-Fi等。
    • 首要重视数据的包装、传输和接纳,以及物理寻址和数据帧的处理。
  2. 网络层(Internet Layer):

    • 运用IP(Internet Protocol)进行数据包的路由和传输。
    • 完成了互联网的核心功用,将数据包从源主机传递到方针主机,途径多个网络节点。
  3. 传输层(Transport Layer):

    • 供给端到端的数据传输服务,首要有TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。
    • TCP供给牢靠的、面向衔接的传输,UDP供给不牢靠的、无衔接的传输。
  4. 运用层(Application Layer):

    • 为用户供给网络运用服务,如HTTP、FTP、SMTP等。
    • 直接面向用户的运用程序,通过运用层协议与基层进行通讯。

TCP/IP模型是当时互联网中运用最广泛的网络体系结构,它供给了一种灵敏而可扩展的方法来完成网络通讯。虽然TCP/IP模型与OSI模型的层级区分不完全相同,但它们共同为网络通讯供给了重要的根底。

2.3通讯进程

Linux网络基础
TCP/IP通讯是基于TCP和IP协议的网络通讯进程,以下是TCP/IP通讯的扼要描绘:

  1. 树立衔接:

    • 在TCP/IP通讯中,客户端首先与服务器树立衔接,即建议一个衔接恳求。
    • 客户端发送一个特别的TCP报文段,称为SYN(同步)段,带有自己的初始序列号。
    • 服务器收到SYN段后,发送一个带有承认和同步标志的TCP报文段(SYN+ACK),将自己的初始序列号返回给客户端。
  2. 数据传输:

    • 在衔接树立后,客户端和服务器之间能够开端传输数据。
    • 数据被分割成适宜的大小的数据块,称为TCP报文段。
    • TCP协议为每个报文段分配一个序列号,并对每个接纳到的报文段进行承认。
  3. 数据的牢靠传输和流量操控:

    • 发送方将数据区分为较小的数据块,并为每个数据块分配序列号,并逐一发送。
    • 接纳方收到数据后,发送承认报文段(ACK)进行承认。
    • 发送方依据收到的承认进行重发或继续发送下一个数据块。
  4. 衔接停止:

    • 通讯完结后,客户端或服务器能够建议衔接的停止。
    • 建议停止的一方发送一个停止恳求报文段,即FIN(结束)报文段。
    • 接纳方收到停止恳求后,发送承认报文段进行承认。
    • 建议方收到承认后,发送最终的承认报文段,一起关闭衔接。

在TCP/IP通讯进程中,IP协议担任对数据进行分组和路由传输,将数据从源主机发送到方针主机。而TCP协议担任供给牢靠的、面向衔接的服务,确保数据的顺序、完好性和牢靠性。

需求注意的是,每个通讯步骤都或许面对网络推迟、数据丢失或其他过错,因此TCP/IP通讯具有必定的容错性和自适应才能,以确保数据的牢靠传输。

Linux网络基础

Linux网络基础

三.协议格局

3.1数据封装

Linux网络基础

在TCP/IP网络中,数据的封装是指即将传输的数据逐层封装成不同的协议数据单元(Protocol Data Units,PDU),以便在网络中进行传输。每一层协议都会在数据上增加自己的头部信息,构成一个封装的数据包,然后通过下一层传递。

以下是TCP/IP网络中数据的封装进程:

  1. 运用层封装:

    • 运用层协议(如HTTP、FTP)将上层数据封装成运用层数据报,增加运用层协议头部信息。例如,HTTP数据报中包含HTTP恳求或响应的数据。
  2. 传输层封装:

    • 传输层协议(如TCP、UDP)将运用层数据报封装成传输层数据段。
    • TCP会为数据段增加TCP头部信息,包含源端口号、方针端口号、序列号、承认号等。
    • UDP会为数据段增加UDP头部信息,包含源端口号、方针端口号以及长度和校验和等。
  3. 网际层封装:

    • 网际层协议(即IP协议)将传输层数据段封装成IP数据包。
    • IP数据包包含源IP地址、方针IP地址、协议类型及其他相关信息。
  4. 网络接口层封装:

    • 网络接口层协议(如以太网)将IP数据包封装为数据帧。
    • 数据帧包含源和方针MAC(物理)地址和以太网头部信息。

封装的进程是由发送端进行的,每一层协议都会在数据上增加相应的头部信息,构成一个完好的封装数据包。在传输进程中,这些封装的数据包会逐层解析,每个协议层都会处理相应的头部信息,然后将数据传递给高层协议,最终到达方针主机。

3.2以太网帧格局

Linux网络基础

以太网帧协议:依据mac地址,完结数据包传输 ARP协议:依据ip地址取得mac地址

3.3ARP数据报格局

Linux网络基础
ARP表(Address Resolution Protocol Table),也称为ARP缓存或ARP映射表,是在操作体系或网络设备中存储IP地址与MAC地址之间映射联系的表格。

ARP表用于在发送数据时,依据方针IP地址获取对应的MAC地址,然后完成在链路层上的直接通讯。当设备收到一个数据包时,它首先查看方针IP地址是否存在于自己的ARP表中,假如存在就直接运用相应的MAC地址,假如不存在则运用ARP恳求来获取方针设备的MAC地址,并将其增加到ARP表中,以便后续通讯运用。

ARP表中的每一项通常包含以下信息:

  • IP地址:设备的IP地址。
  • MAC地址:与IP地址对应的物理地址(MAC地址)。
  • 接口:设备与网络通讯的接口,如以太网接口。

ARP表是动态生成和保护的,它会跟着网络中设备的通讯不断更新。通常,ARP表中的条目会有一个存活时刻(TTL)约束,超越必定时刻没有运用就会被删去或更新。

能够运用指令行工具(如Windows的arp -a指令或Linux的arp -n指令)来查看设备上的当时ARP表内容。

总的来说,ARP表是用于存储IP与MAC地址之间映射联系的表格,它在完成网络通讯时起着重要作用。

3.4 IP段格局

Linux网络基础
下面是IPv4数据报的格局,整理成表格方式:

字段 长度(位) 描绘
版本 4 IP协议的版本号(通常为4,表明IPv4)
首部长度 4 IP头部的长度(单位为4字节,最小值为5,表明20字节的IP头部)
区分服务 8 数据报的服务质量要求,如优先级、推迟、带宽等
总长度 16 整个IP数据报的长度(包含IP头部和数据部分的字节数)
标识 16 用于仅有标识一个IP数据报的片段
标志 3 指示IP数据报的分片状况
片偏移 13 分片数据的相关于原始数据的偏移量(以8字节为单位)
生计时刻 8 数据报在网络中的最大生计时刻(跳数)
协议 8 标识上层协议(如TCP、UDP)或其他协议的类型
头部校验和 16 校验IP头部的完好性
源IP地址 32 源主机的IP地址
方针IP地址 32 方针主机的IP地址
选项 可变 用于扩展IP头部的功用
数据部分 可变 承载上层协议的数据

3.5TCP数据报格局

Linux网络基础

IP地址:能够在网络环境中,仅有标识一台主机。 端口号:能够网络的一台主机上,仅有标识一个进程。 IP地址+端口号:能够在网络环境中,仅有标识一个进程。 TCP(Transmission Control Protocol)数据报是TCP协议在网络通讯中传输数据的基本单位。TCP数据报由TCP头部和数据部分组成。

下面是TCP数据报的基本格局:

字段 长度(字节) 描绘
源端口号 2 发送端口号
方针端口号 2 接纳端口号
序列号 4 用于对TCP数据包进行排序和重组。表明从发送端宣布的第一个数据字节的序号。
承认号 4 表明期望收到的下一个数据字节的序号,用于承认已收到的数据。
数据偏移 4 表明TCP头部的长度,以32位字中的偏移量数表明。最小值为5,表明20字节的TCP头部。
保存 3 保存字段,保存将来运用
操控标志 9 用于操控TCP衔接的状况和操作,包含ACK、SYN、FIN等标志。
窗口大小 2 表明接纳方缓冲区的大小,用于流量操控和拥塞操控。
校验和 2 用于校验TCP头部和数据部分的完好性。
紧急指针 2 表明紧急数据的位置。紧急数据是指优先于正常数据进行传输和处理的数据。
选项和填充 可变 可选字段,用于某些特别功用和额外的操控选项。
数据部分 可变 承载运用层数据。

TCP数据报是TCP协议进行牢靠数据传输的基本单位。TCP通过序列号、承认号、校验和等机制来确保数据的牢靠性和正确性。一起,TCP还支撑流量操控、拥塞操控、衔接办理等功用。

四.C/S和B/S模型比对

Linux网络基础

C/S模型的优点:

  • 客户端具备较强的交互性和处理才能,能够供给更杂乱的用户界面和功用。
  • 数据处理和核算任务散布在客户端和服务器之间,能够完成更高的体系功用和功率。
  • 能够在客户端存储敏感数据,供给更高的安全性。

C/S模型的缺陷:

  • 需求在客户端装置专用的运用程序,增加了布置和保护的本钱。
  • 关于不同操作体系的客户端,需求分别开发和保护相应的客户端运用程序。
  • 关于大规模的用户拜访,或许需求投入更多的资源来支撑并发恳求。

B/S模型的优点:

  • 不需求装置专用的客户端运用程序,只需具备浏览器即可拜访运用程序和服务。
  • 能够跨渠道运用,减少了客户端兼容性和更新的问题。
  • 服务器担任数据处理和存储,坚持数据的一致性和会集办理。
  • 供给了可伸缩性和容易保护的特点,能够支撑大规模用户拜访。

B/S模型的缺陷:

  • 浏览器作为界面,关于某些杂乱交互和功用或许不行灵敏。
  • 依赖于网络衔接,关于网络传输的推迟和安稳性有必定的影响。
  • 需求在服务器上进行大量的核算和数据处理,或许对服务器的资源需求有必定要求。

综合来看,C/S模型适合需求杂乱交互和处理才能的运用,而B/S模型适合需求跨渠道、易于保护和大规模布置的运用。挑选哪种模型取决于详细的运用需求和功用要求。