TCP/IP协议四层模型

article/2025/9/19 11:19:28

TCP(传输控制协议)/IP(网际协议) 简介

TCP/IP协议是一系列网络协议的总和;包括:TCP,IP,UDP,ARP等,这些被称为子协议。在这些协议中,最重要、最著名的就是TCP和IP。因此,大部分网络管理员称整个协议族为“TCP/IP”它定义了电子设备如何接入互联网,以及数据如何在它们之间互相传输。

TCP/IP协议已成为建立计算机局域网, 广域网的首选协议, 已成为事实上的工业标准和国际标准。

TCP/IP 的作用?

解决了互联网中,数据怎么从一台主机传输到另外一台主机的问题。

什么是协议?

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

网络协议是由三个要素组成:

(1) 语义。语义是解释控制信息每个部分的意义。它规定需要发出何种控制信息,以及完成的动作与做出什么 样的响应。(表示要做什么)

(2) 语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。(表示要怎么做)

(3) 时序。时序是对事件发生顺序的详细说明。(也可称为“同步”)。 (表示做的顺序)

TCP/IP 四层模型如下

网络接口层: 这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。(帧,网络接口协议)

互连网络层: 负责点到点(point-to-point)的传输(这里的"点"指主机或路由器)主要定义了IP地址格式,使得不同应用类型的数据在Internet上传输。提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)

传输层: 提供端到端(end-to-end)的传输(这里的"端"指源主机到目标主机) 在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收

应用层: 应用程序间沟通的层,如简单电子邮件传输(SMTP)文件传输协议 (FTP) 网络远程访问协议 (Telnet) 域名解析协议 (DNS) 等

TCP/IP 三次握手四次挥手

建立连接协议(三次握手)
第一次握手:客户端发送syn包(syn=x)的数据包到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将被一直保持下去。

终止连接协议(四次挥手)
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号, SYN 和 FIN 都有seq序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1完成四次挥手。


http://chatgpt.dhexx.cn/article/TnK18UI6.shtml

相关文章

深入理解网络通信协议一之TCPIP四层模型

快速理解网络通信协议 5.1五层模型 物理层:把主机连接起来的物理手段,作用是负责传送01电信号 链路层:确定物理层上01信号的分组方式;一组电信号称为帧,一个帧分成两部分:标头(head&#xff0…

什么是TCP/IP?-四张图解释TCP/IP四层协议模型

什么是四层模型 第一层:应用层,主要有负责web浏览器的HTTP协议, 文件传输的FTP协议,负责电子邮件的SMTP协议,负责域名系统的DNS等。 第二层:传输层,主要是有可靠传输的TCP协议,特别高效的UDP协议。主要负责传输应用层的数据包。 第三层:网络层,主要是IP协议。主要…

TCP/IP四层模型

TCP/IP网络模型适用于不同设备上进程间的通信,共分为四层分,从上到下分别是应用层、传输层、网络层、网络接口层 应用层(Application Layer) 应用层是最上层的,我们能直接接触到的层,我们日常所使用的软件…

互联网基石:TCP/IP 四层模型,由浅入深直击原理!

前言 TCP/IP 是迄今为止最常用的网络互联协议套件,在全球互联网运营方面发挥了巨大作用,可以这样说 TCP/IP 在互联网世界无处不在! TCP/IP 最初由 DARPA(美国国防高级研究计划局)的两位科学家于 1970 年代开发&#x…

「网络基础」TCP/IP协议4层模型,一分钟了解下

一、TCP/IP四层模型 1、网络接口层 2、互联网层 3、传输层 4、应用层 TCP/IP和OSI七层对应关系: OSI&TCP IP 应用层协议对应关系: 【了解】Dynamic Host Configuration Protocol (DHCP)/BootP(Bootstrap Protocol)动态主机配置协议(DHCP)服务器…

maven快速打包

maven快速打包 你是否打个包需要很长时间。如:15-20分钟。那可能是你的操作方式有问题。 慢速的打包方式: 每次都clean一下后,再重新打包。 我之前也是这样做的,每次打包都需要10分钟。 正确的快速打包方式: 不clea…

maven打包指定jdk的版本

文章目录 问题 问题 今天遇到个问题,项目中新写了一个接口,其中用到了lambda表达式,本地跑是没问题的,但提交到gitLab上,自动打包部署时却报错了(这是其他同事配置的),报错信息如下: 可以看出…

IDEA使用maven进行打包详细记录

前言 IDEA打包有两种方式&#xff1a; 1.build打包 2.maven打包 一开始用第一种方式build打包后运行报错&#xff0c;然后用第二种打包后运行成功。 特此记录一下&#xff0c;用maven进行打包&#xff01; 一、配置pom.xml文件 <build><plugins><plugin>…

MAVEN工具篇——maven打包跳过测试

使用Maven打包的时候&#xff0c;可能会因为单元测试打包失败&#xff0c;这时候就需要跳过单元测试。 Maven跳过单元测试主要可以分为三种方法。 一、命令行方式跳过测试 我们可以用两种命令来跳过测试 mvn clean install -DskipTestsmvn clean install -Dmaven.test.skiptr…

idea中Maven打包

1.环境依赖 jdk maven maven打包插件引入 1.1 maven打包&#xff0c;首先在pom文件中加上build属性&#xff0c;和dependencies是同级的&#xff1a; <build> <!--打包出来的文件名,可以不填写&#xff0c;有默认值--> <finalName>Test</fin…

maven打包时, 资源文件没有被打包进来的问题

问题起因 我们系统使用Mybatis作为持久层框架&#xff0c;这里不详细描述Mybatis框架的使用方法&#xff0c;我们讲述三种加载mapper的方式总结&#xff1a; <mapper resource"" />加载普通的xml文件&#xff0c;传入xml的相对路径(相对于类路径)<mapper c…

【Maven】通过maven对项目打包

文章目录 1.Maven项目打包操作1.1 独立模块1.2 子项目依赖公共模块 2. 知识拓展 1.Maven项目打包操作 首先&#xff0c;在使用maven插件对项目进行打包 首先需要导入一下pom依赖 <build><plugins><plugin><groupId>org.springframework.boot</grou…

MAVEN打包这一篇就够了

Maven打包说明 IDEA目录结构 Java代码从编码到最后运行到两个核心步骤为"编译"和"执行"。"编译"会根据"源代码"产出对应的".class"文件&#xff0c;而"执行"就是让程序运行起来&#xff0c;运行的对象就是这些&qu…

Maven项目的简单打包

最简单的方法 首先是在maven项目的pom.xml中添加打包的插件&#xff0c;这里有很多种方式的。最最简单的就是只使用maven-compiler-plugin、maven-jar-plugin插件&#xff0c;并且指定程序入口。相关代码如下&#xff1a; pom.xml文件&#xff1a; <?xml version"1…

关于maven打包出错解决

今天在使用maven打包时出现错误&#xff0c;因此记录一下。。 出现错误的原因是因为maven中的指定的java版本与项目使用的java版本不一致导致的。。 maven中的java版本为11 而项目使用版本为1.8 因此会出现如下错误 解决版本有两种&#xff0c;一种是修改maven中对应的java版本…

maven打包步骤

1&#xff1a;配置maven环境 2、项目中进行打包配置 3、先进行mvn clean 4、进行打包 5、通过cmd进行项目启动 6、测试项目是否已启动 结束&#xff0c;验证ok

SpringBoot - Maven方式打包

SpringBoot 为当前最流行的JAVA框架 , 内嵌了 Tomcat 服务器 , 我们不用再像以前 Spring 那样打包成 war , 然后将 war 扔到 tomcat 中运行 。 我们现在可以直接将 SpringBoot 项目打包为一个内置 tomcat 的可运行 jar , 通过 java -jar xxx.jar 直接运行 (方便易用) 。 打包 S…

Maven打包操作

对于企业级项目&#xff0c;无论是进行本地测试&#xff0c;还是测试环境测试以及最终的项目上线&#xff0c;都会涉及项目的打包操作。对于每个环境下的项目打包&#xff0c;对应的项目所需要的配置资源都会有所区别&#xff0c;实现打包的方式有很多种&#xff0c;可以通过an…

Maven打包时指定配置文件

springboot项目通常会有部署到测试、演示、生产等多个环境&#xff0c;每次打包时都需要修改配置文件或指定配置文件&#xff0c;既麻烦&#xff0c;也不便于war包部署和版本管理。可以在maven打包时指定配置文件&#xff0c;实现打包配置文件零修改。 1、修改pom文件&#xff…

Maven打包插件介绍

文章目录 1. maven介绍2. 生命周期及插件2.1 总览生命周期2.2 打包插件2.2.1 maven-jar-plugin2.2.2 maven-assembly-plugin2.2.3 maven-shade-plugin2.2.4 maven-war-plugin2.2.4.1 jar和war 2.2.5 maven-source-plugin 3. springboot打包插件4.实际操作4.1 一个可用的打包插件…