TCP/IP协议、HTTP协议和FTP协议等网络协议简介

news2024/11/25 10:32:42

文章目录

    • 一、常见的网络协议
    • 二、TCP/IP协议
      • 1、TCP/IP协议模型被划分为四个层次
      • 2、TCP/IP五层模型
      • 3、TCP/IP七层模型
    • 三、FTP网络协议
    • 四、Http网络协议
      • 1、Http网络协议简介
      • 2、Http网络协议的内容
      • 3、HTTP请求协议包组成
      • 4、HTTP响应协议包组成

一、常见的网络协议

常见的网络协议主要包括TCP/IP协议、HTTP协议、FTP协议等。

二、TCP/IP协议

TCP/IP协议(Transmission Control Protocol/Internet Protocol)是互联网最基础的协议,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准,是Internet国际互联网络的基础。

TCP/IP协议的工作原理主要基于数据分割、封装成报文、IP寻址和路由选择以及数据传输等步骤。在发送数据时,发送方会根据应用层传输的数据,将数据分割成适当大小的数据段,并封装成包含发送方和接收方IP地址、端口号等必要信息的报文。然后,通过IP寻址和路由选择,将报文发送到目标主机。接收方在收到报文后,会进行相应的处理,还原数据并校验其完整性。

TCP负责发现传输的问题,并在发现差错时要求重新传输,直到所有数据都安全正确地传输到目的地。而IP则负责给因特网的每一台联网设备规定一个地址。这种分层结构和各种协议协同工作的方式,使得TCP/IP协议能够高效、可靠地处理网络通信。

TCP/IP协议是计算机网络通信中的核心,它确保了数据的准确传输和网络的稳定运行,为各种互联网应用提供了坚实的基础。

1、TCP/IP协议模型被划分为四个层次

网络接口层、网络层、传输层和应用层。这四个层次从底层到高层,每一层都负责不同的功能,共同实现网络通信。

  • 网络接口层(或称为链路层): 这是TCP/IP协议栈的最低层,负责接收IP数据报,并发送到指定的网络上。它还处理数据帧的发送和接收,包括数据的封装和解封装,以及物理地址(如MAC地址)的解析。网络接口层通常与特定的硬件和网络技术(如以太网、WiFi等)紧密相关。
  • 网络层: 网络层负责将数据包(IP数据报)从源主机路由到目标主机。它处理IP地址的解析和路由选择,确保数据包能够正确地到达目的地。网络层的主要协议是IP(Internet Protocol),它定义了数据包的格式和如何在网络上传输这些数据包。此外,ICMP(Internet Control Message Protocol)和其他协议也在这一层起作用,用于网络控制和错误报告。
  • 传输层: 传输层负责在源主机和目标主机之间建立、管理和终止会话。它提供了可靠的数据传输服务(如TCP)或不可靠的数据报服务(如UDP)。TCP提供了数据包的排序、确认和重传机制,确保数据的完整性和可靠性;而UDP则是一种无连接的协议,不保证数据的可靠性,但通常具有更低的延迟和更高的吞吐量。
  • 应用层: 应用层是TCP/IP协议栈的最高层,负责处理特定的应用程序细节。它定义了各种应用协议,如HTTP(用于Web浏览)、FTP(用于文件传输)、SMTP(用于电子邮件)等。这些协议规定了应用程序如何发送和接收数据,以及数据的格式和含义。

这四个层次协同工作,共同实现了TCP/IP网络中的通信。每一层都使用下一层提供的服务,并向上一层提供服务。这种分层结构使得TCP/IP协议栈具有高度的灵活性和可扩展性,能够适应各种不同的网络环境和应用需求。

2、TCP/IP五层模型

应用层、传输层、网络层、数据链路层和物理层。

  • 应用层: 所有用户所面向的应用程序的统称,如HTTP、FTP等协议都工作在这一层。
  • 传输层: 实现端到端的数据传输,主要协议有TCP和UDP。TCP提供可靠的数据传输服务,而UDP则是一种无连接的协议。
  • 网络层: 实现数据包在不同网络之间的传输,主要定义了IP地址格式,使用IP协议进行路由选择和转发。
  • 数据链路层(或称为网络接口层): 负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据报交给IP层。
  • 物理层: 将比特流转换为物理信号,并通过电缆、光纤等物理媒介进行传输。

3、TCP/IP七层模型

TCP/IP七层模型则更为详细,包括:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。在五层模型中,表示层和会话层的功能已经合并到了应用层。

  • 应用层: 网络服务与最终用户的一个接口,如HTTP、FTP、SMTP等协议。
  • 表示层: 数据的表示、安全、压缩,涉及格式如JPEG、ASCII、加密格式等。
  • 会话层: 建立、管理、终止会话,对应主机进程之间的会话。
  • 传输层、网络层、数据链路层和物理层的功能与五层模型中的相应层次相同。
  • 传输层: 实现端到端的数据传输,主要协议有TCP和UDP。TCP提供可靠的数据传输服务,而UDP则是一种无连接的协议。
  • 网络层: 实现数据包在不同网络之间的传输,主要定义了IP地址格式,使用IP协议进行路由选择和转发。
  • 数据链路层(或称为网络接口层): 负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据报交给IP层。
  • 物理层: 将比特流转换为物理信号,并通过电缆、光纤等物理媒介进行传输。

TCP/IP协议的四层模型,五层模型和七层模型都是对网络通信过程的一种抽象描述,帮助人们更好地理解和管理网络通信。

三、FTP网络协议

FTP(File Transfer Protocol,文件传输协议)是用于在网络上进行文件传输的一套标准协议。它工作在OSI模型的第七层,即应用层,并使用TCP传输而不是UDP。在客户与服务器建立连接前,需要经过一个“三次握手”的过程,确保客户与服务器之间的连接是可靠的,并且是面向连接的,为数据传输提供可靠保证。

FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。用户并不真正登录到自己想要存取的计算机上成为完全用户,而是可以用FTP程序访问远程资源,实现用户往返传输文件、目录管理以及访问电子邮件等,即使双方计算机可能配有不同的操作系统和文件存储方式。

FTP的工作原理主要包括客户端连接到FTP服务器、建立控制连接、用户身份验证、传输模式选择和执行文件传输等步骤。其中,传输模式可以是主动模式或被动模式,由服务器决定。在文件传输期间,数据连接用于在客户端和服务器之间传输文件数据。

FTP协议具有多种适用场合,包括传输大文件、网站维护、远程备份、多人协作以及跨平台传输等。例如,FTP可以快速传输大文件,支持断点续传,节省时间和成本;同时,它也可以方便地用于网站文件的上传、下载和目录结构维护;此外,FTP还可以作为远程备份工具,保障数据的安全性,并支持压缩和加密功能进一步提高备份数据的安全性。

FTP网络协议在网络文件传输中发挥着重要的作用,其可靠性和灵活性使得它在各种场合中得到了广泛的应用。

四、Http网络协议

1、Http网络协议简介

HTTP网络协议(HyperText Transfer Protocol,超文本传输协议)是一种用于在计算机网络上传输超文本的协议。它属于应用层协议,工作于客户端-服务器架构之上,通过请求-响应模式进行通信。

在基于B/S结构下互联网通信过程中,所有在网络中传递信息都是保存在Http网络协议包。

  • 支持客户/服务器模式。
  • 网络中传递信息都是二进制。
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
  • 灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。
  • 网络协议包有一组有规律的二进制数据得到相关信息。0000(IP地址)、0000(端口号)、0000(资源文件名)0000,共16位。
  • 无连接:HTTP协议不需要在客户端和服务器之间建立持久的连接,每次请求完成后就会关闭连接,减少了网络开销。
  • 无状态:HTTP协议对事务的处理没有记忆能力,每次请求都需要提供完整的请求信息,服务器不会记住之前发生的请求和响应。
  • 面向对象:HTTP协议可以传输任何类型的数据对象,包括HTML页面、图像、视频、音频和其他类型的文件。
  • 无阻塞:HTTP协议不会限制客户端的请求数量和大小,使得服务器可以处理大量的请求。
  • 可缓存:HTTP协议允许客户端缓存服务器响应的内容,以提高响应速度和减少网络流量。

在Web应用中,HTTP协议扮演着至关重要的角色。它是数据的传输协议,无论是桌面端的浏览器还是移动端的应用程序,HTTP都用于在Web浏览器和Web服务器之间传输HTML页面、API接口等动态和静态资源文件。此外,HTTP协议在API接口设计中也发挥着重要作用,它使得不同语言、不同框架的应用程序在接口层面得到统一,方便数据的交互与共享。

2、Http网络协议的内容

Http网络协议的内容分为:HTTP请求协议包和HTTP响应协议包。HTTP请求协议包和HTTP响应协议包是HTTP网络协议中的两个重要组成部分。它们分别负责向服务器发送请求和从服务器接收响应。

HTTP请求协议包:

  • 在浏览器准备发送请求时,负责创建一个HTTP请求协议包。浏览器将请求信息以二进制形式保存在Http请求协议包各个空间,由浏览器负责将HTTP请求协议包推送到指定服务端计算机。

HTTP响应协议包:

  • HTTP服务器在定位到被访问的资源文件之后,负责创建一个HTTP响应协议包。HTTP服务器将定位文件内容或者文件命令以二进制形式写入到HTTP响应协议包各个空间,由Http服务器负责将HTTP响应协议包推送回发起请求的浏览器上。

3、HTTP请求协议包组成

  • 请求行: 包含请求方法(如GET、POST等)、请求URL(不包括域名)以及HTTP协议版本等信息。请求方法指定了客户端希望执行的操作,如获取资源、提交数据等。
  • 请求头: 包含了关于请求的附加信息,如客户端的类型、请求的来源、所接受的响应类型等。这些信息有助于服务器更好地理解请求,并作出相应的响应。
  • 空行: 用来分隔请求头和请求体。
  • 请求体: 包含了客户端发送给服务器的实际数据,例如表单数据、文件内容等。不是所有的请求都需要请求体,例如GET请求通常不包含请求体。
    HTTP请求协议包

4、HTTP响应协议包组成

  • 状态行: 包含HTTP协议版本、状态码以及状态描述。状态码是一个三位数字,用于表示请求的处理结果,如200表示成功,404表示未找到资源等。状态描述则是对状态码的简单描述,帮助人们更好地理解响应状态。
  • 响应头: 与请求头类似,包含了关于响应的附加信息,如服务器的类型、响应的长度、内容类型等。
  • 空行: 同样用来分隔响应头和响应体。
  • 响应体: 包含了服务器返回给客户端的实际数据,通常是请求的资源内容。
    HTTP响应协议包

在HTTP通信过程中,客户端首先会发送一个HTTP请求协议包给服务器,服务器在接收到请求后,会处理该请求并生成一个相应的HTTP响应协议包返回给客户端。这样,客户端和服务器之间就完成了一次HTTP通信过程。

HTTP请求协议包和HTTP响应协议包是HTTP通信中的两个重要载体,它们负责在客户端和服务器之间传递请求和响应数据,实现了Web应用中的数据传输和交互功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1578943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp如何配置后使用uni.chooseLocation等地图位置api

在uniapp中想要使用uni.getLocation、uni.chooseLocation ……api的时候我们需要在小程序就开启配置,不然无法使用。 第一步:首先找到manifest.json 第二步:点击源码视图 第三步:在 mp-weixin 加入下面代码 "permission&…

DC-2靶机知识点

知识点总结 1.IP访问与域名访问 2.端口扫描 3.目录扫描 4.cewl密码生成器 5.指纹探测 6.爆破ssh 7.msf的使用 8.rbash逃逸 9.git提权 靶机,攻击机就不多说了,给个靶机地址 https://download.vulnhub.com/dc/DC-2.zip 环境配置 因为访问该靶机…

Python数学建模学习-莱斯利(Leslie)种群模型

Leslie模型是一种用于离散时间的生物种群增长模型,经常用于描述年龄结构对种群增长的影响。在1945年,人口生态学家Patrick H. Leslie(莱斯利)为了研究具有离散年龄结构的种群,特别是对于有不同年龄阶段的生物&#xff…

鸿蒙OS开发实战:【自动化测试框架】使用指南

概述 为支撑HarmonyOS操作系统的自动化测试活动开展,我们提供了支持JS/TS语言的单元及UI测试框架,支持开发者针对应用接口进行单元测试,并且可基于UI操作进行UI自动化脚本的编写。 本指南重点介绍自动化测试框架的主要功能,同时…

三行命令解决Ubuntu Linux联网问题

一开始我找到官方文档描述可以通过命令行连接到 WiFi 网络:https://cn.linux-console.net/?p10334#google_vignette 但是我的 $ ls /sys/class/net 命令无法显示无线网络接口,那么没有无线网卡? 所以我参照其他的博客在终端超级用户的权…

JUC:ScheduledThreadPoolExecutor 延迟任务线程池的使用

文章目录 ScheduledThreadPoolExecutortimer(不建议用)ScheduledThreadPoolExecutor处理异常应用 ScheduledThreadPoolExecutor timer(不建议用) timer也可以进行延迟运行,但是会有很多问题。 比如task1运行时间超过…

FOR循环

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 前面两种循环都要根据条件是否成立而确定循环体的执行,具体循环体执行多少次事先并不知道。 FOR 循环可以控制循环执行的次数,由循环变量控制循环体的…

学透Spring Boot — 005. 深入理解 Spring Boot Starter 依赖管理

前面的文章直观的展示了,使用Spring Boot 集成 Hibernate 和手动集成 Hibernate 之间差距。 一个比喻 工作中使用过Spring Boot一段时间后,我越来越感觉到Spring Boot Starter带来的便利性。 使用手动集成 Hibernate, 就像去电脑城配电脑&…

二叉树的遍历的递归与非递归算法

一.二叉树的遍历: 按照一定规律对二叉树的每个结点进行访问且仅访问一次; 这里的访问:可以是计算二叉树中的结点数据,打印该结点的信息,也可以是对结点进行的任何其它操作! 为什么需要遍历二叉树&#x…

EditPlus来啦(免费使用!)

hello,我是小索奇 今天推荐一款编辑器,是索奇学习JavaSE时入手滴,非常好用哈,小索奇还是通过老杜-杜老师入手滴,相信很多人也是通过老杜认识嘞,来寻找破解版或者准备入手这个间接使用的编辑器~ EditPlus是…

在Ubuntu上搭建Prometheus + Grafana监控系统

1.Prometheus 部署 从官网下载页面找到最新的二进制文件下载 cd ~ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.51.1/prometheus-2.51.1.linux-amd64.tar.gz将文件解压到指定目录 tar xf prometheus-2.51.1.linux-amd64.tar.gz -C /usr/local为…

⼿机客户端画K线图流程

优质博文:IT-BLOG-CN 一、什么是K线流程 K线图是一种用于展示金融市场价格走势的图表。它通常由四个关键价格点组成,即开盘价、收盘价、最高价和最低价。K线图的流程可以简单概括为以下几个步骤: 【1】收集数据: 首先&#xff0c…

Oracle 正则表达式

一、Oracle 正则表达式相关函数 (1) regexp_like :同 like 功能相似(模糊 匹配) (2) regexp_instr :同 instr 功能相似(返回字符所在 下标) (3) regexp_substr : 同 substr 功能相似&…

虚拟网络设备与Linux网络协议栈

在现代计算环境中,虚拟网络设备在实现灵活的网络配置和隔离方面发挥了至关重要的作用🔧,特别是在容器化和虚拟化技术广泛应用的今天🌐。而Linux网络协议栈则是操作系统处理网络通信的核心💻,它支持广泛的协…

点击上传文件

一、页面样式: (1)点击前: (2)点击后: 设计:①自定义elementPlus图标;②使用Tooltip实现鼠标悬浮按钮上出现文字提示;③上传与更换的切换样式;…

全栈开发医疗小程序 SpringBoot2.X + Vue + UniAPP 带源码

看到好多坛友都在求SpringBoot2.X Vue UniAPP,全栈开发医疗小程序 – 带源码课件,我看了一下,要么链接过期,要么课件有压缩密码。特意整理了一份分享给大家,个人认为还是比较全面的。希望对大家有所帮助!…

云计算(五)—— OpenStack基础环境配置与API使用

OpenStack基础环境配置与API使用 项目实训一 【实训题目】 使用cURL命令获取实例列表 【实训目的】 理解OpenStack的身份认证和API请求流程。 【实训准备】 (1)复习OpenStack的认证与API请求流程的相关内容。 (2)熟悉cURL…

openGauss学习笔记-258 openGauss性能调优-使用Plan Hint进行调优-指定子查询不展开的Hint

文章目录 openGauss学习笔记-258 openGauss性能调优-使用Plan Hint进行调优-指定子查询不展开的Hint258.1 功能描述258.2 语法格式258.3 示例 openGauss学习笔记-258 openGauss性能调优-使用Plan Hint进行调优-指定子查询不展开的Hint 258.1 功能描述 数据库在对查询进行逻辑…

vulhub中Apache Solr Velocity 注入远程命令执行漏洞复现 (CVE-2019-17558)

Apache Solr 是一个开源的搜索服务器。 在其 5.0.0 到 8.3.1版本中,用户可以注入自定义模板,通过Velocity模板语言执行任意命令。 访问http://your-ip:8983即可查看到一个无需权限的Apache Solr服务。 1.默认情况下params.resource.loader.enabled配置…

OpenCV单通道图像按像素成倍比例放大(无高斯平滑处理)

OpenCV中的resize函数可以对图像做任意比例的放大(/缩小)处理,该处理过程会对图像做高斯模糊化以保证图像在进行放大(/缩小)后尽可能保留源图像所展现的具体内容(消除固定频率插值/采样带来的香农采样信息损失)&#x…