传输层协议:TCP协议和UDP协议

文章目录

      • 传输层协议:TCP协议和UDP协议
      • 一、TCP协议介绍(面向连接,稳定,慢)
        • 1、TCP特性
        • 2、TCP报文格式
        • 3、TCP三次握手
        • 4、TCP四次挥手
        • 5、常用的TCP端口号及其功能
      • 二、UDP协议介绍(无连接,不稳定,快)
        • 1、UDP协议
        • 2、常用的UDP端口号及其功能

传输层协议:TCP协议和UDP协议

  • TCP协议:传输控制协议
  • UDP协议:用户数据报协议

区别:

  • TCP:面向连接,稳定,慢

  • UDP:无连接,不稳定,快

一、TCP协议介绍(面向连接,稳定,慢)

  • TCP是面向连接的、可靠的进程到进程通信的协议(在传输真实数据之前先要进行连接测试(三次握手),如果测试通过才会发送真实数据,否则不会发送真实数据)
  • TCP提供全双工服务,即数据可在同一时间双向传输
  • TCP报文

​ ①、TCP将若干字节构成一个分组,叫报文段(Segment)

​ ②、TCP报文段封装在IP数据报中

1、TCP特性

1.1 工作在传输层

1.2 面向连接协议

1.3 全双工协议

1.4 半关闭

1.5 错误检查

1.6 将数据打包成段,排序

1.7 确认机制

1.8 数据恢复,重传

1.9 流量控制,滑动窗口

2、TCP报文格式

image-20231211161542642

1.1 端口号:区别应用程序(区别7层协议tcp/80(http)、tcp/443(https)、udp/69(tftp))

端口号范围:0~65535

  • 应用层:应用程序

  • 传输层:协议/端口号 tcp/80(80端口代表七层协议,http协议),协议要靠程序来实现(端口号不可以重复使用,一个端口号只能被一个程序占用)

1.2 序号:发送端为每个字节编号重组,便于接收端正确重组

1.3 确认号:用于确认发送端的信息(告诉对方我收到了你的消息,确认机制)

1.4 首部长度:IP头部,tcp头部(确定首部数据结构的字节长度)

1.5 控制位:描述了AB两台设备目前处于什么状态

tcp协议先要建立连接

A —————》 B

①、没有建立连接

②、已建立连接

③、断开连接

  • URG(紧急位):表示本报文段中发送的数据是否包含紧急数据。
  • ACK(确认位):表示前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。
  • PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间
  • RST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接
  • SYN(同步位):在建立连接时使用,用来同步序号
  • FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕

1.6 滑动窗口(窗口大小):调节每次发送的数据包量

1.7 校验和:提供额外的可靠性紧急指针,标记紧急数据在数据字段中的位置

3、TCP三次握手

网络环境复杂,为了确保数据能够到达,两次不够,四次多余,三次正好

image-20231211161509035

当pc1想和pc2建立起连接 将连接信息写入报文

第一步 :pc1会发送一个建立连接的请求报文,报文包括:

①、报文的序号(seq=x)

②、同步位(请求建立连接关系: SYN=1 ACK=0 控制位:当前两台设备处于什么状态? 建立连接、处于连接、断开连接 )

第二步:当pc2收到消息以后,要回复一个报文

①、报文的序号(seq=y)

②、ack确认号( 我希望你下一次发送x+1序号的报文给我)

③、控制位SYN=1,ACK=1请求建立连接,pc2同意建立连接

第三步:收到 pc2 同意建立连接的报文后

1.会发送一个x+1报文

2.会告诉对方我希望你下次发送y+1的序号报文给我

3.最后将ACK=1 封装进去,告诉你收到了你的同意请求并且我也统一和你建立连接

4、TCP四次挥手

image-20231211162036739

①、主动关闭方发送FIN:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT_1 状态。

–即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。

②、被动关闭方回复ACK:服务端收到 FIN 之后,会发送 ACK =1报文,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
–即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT_2(终止等待2)状态,等待服务端发出的连接释放报文段。

③、被动关闭方发送FIN:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
–即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。

④、主动关闭方回复ACK,关闭连接:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。
–即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
有限状态机:

  1. closed:断开,没有任何连接状态 (客户端,服务端都有)
  2. listen:监听状态,等待来自远方TCP端口的连接请求(服务开启http(进程)80端口在帮进程看着有没有人找http)
  3. syn-sent:发送。在发送连接请求后,等待对方确认(客户端)
  4. syn-received:在收到和发送一个连接请求后,等待对方确认(服务端)
  5. established:代表传输连接建立,双方进入数据传送状态(客户端,服务端都有)
  6. fin-wait-1:主动关闭,主机已发送关闭连接请求,等待对方确认
  7. fin-wait-2:主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
  8. time-wait:完成双向传输连接关闭,等待所有分组消失
  9. close-wait:被动关闭,收到对方发来的关闭连接请求,并已确认
  10. last-ack:被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
  11. closing:双方同时尝试关闭传输连接,等待对方确认

客户端先发送一个FIN给服务端,自己进入FIN_WAIT_1状态,这时等待接收服务端报文,该报文会有三种可能:

  • 只有服务端的ACK
  • 只有服务端的FIN
  • 基于服务端的ACK,又有FIN
5、常用的TCP端口号及其功能
端口协议说明
21FTPFTP服务器所开放的控制端口
23TELNET用于远程登录,可以远程控制管理目标计算机
25SMTPSMTP服务器开放的端口,用于发送邮件
80HTTP超文本传输协议
110POP3用于邮件的接收

二、UDP协议介绍(无连接,不稳定,快)

1、UDP协议
  • 工作在传输层
  • 提供不可搞得网络访问
  • 无连接
  • 有限的错误检查
  • 传输性能快
  • 无数据恢复特性

image-20231211173521949

telnet协议:明文传输,远程管理协议。探测远端服务器的端口是否打开

命令: telnet IP地址 端口号:服务软件是否正常

2、常用的UDP端口号及其功能
端口协议说明
69TFTP简单文件传输协议
111RPC远程过程调用
123NTP网络时间协议

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

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

相关文章

【ET8】4.ET8入门-ECS解析

ECS ECS组件生命周期 参考连接 ⼀种类ECS设计范式的介绍 3.3一切皆实体 4.1组件式设计 【ET框架课程】04-Entity&Component&System_哔哩哔哩_bilibili 【ET框架课程】05-ECS组件生命周期_哔哩哔哩_bilibili

深度学习学习顺序梳理

https://www.bilibili.com/video/BV1to4y1G7xq/?spm_id_from333.999.0.0&vd_source9607a6d9d829b667f8f0ccaaaa142fcb 1.吴恩达机器学习课程 已学完,时间较久了,后续可以重新听一遍,整理一下笔记 2. 白板推导读西瓜书 统计学习方法看…

选择流量回溯分析系统的关键因素

在网络安全和性能优化的背景下,选择适用的流量回溯分析系统变得至关重要。这些系统帮助组织深入了解网络流量,追踪异常行为,并提供关键的信息以加强网络安全。本文将介绍选择流量回溯分析系统时需要考虑的关键因素,以帮助组织做出…

微信小程序、uniapp仿网易云UImusic播放器(附源码)

一、uni-app框架介绍 1.什么是 uni-app uni-app 是一个使用vue的语法 微信小程序的标签和API的跨平台前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台,几乎覆盖所有流量端。 uni-app 具有跨端数量更多、性能体验…

Python去除字符串中空格(删除指定字符)的3种方法

str 提供了如下常用的方法来删除空白: strip():删除字符串前后的空白。 lstrip():删除字符串前面(左边)的空白。 rstrip():删除字符串后面(右边)的空白。 需要说明的是&#xff…

【数据结构】贪心算法

一.贪心算法的定义 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,只做出在某种意义上的局部最优解。 贪心算法的结果是最优解的最好近似。 优点:简单,高效。 缺点&…

百岁时代即将来临,原知因成为消费新潮流

什么叫长寿时代?泰康保险首席执行官陈东升指出:长寿时代,就是百岁人生即将来临,人人带病长期生存。而在这个时代,人类最大的变化在于“生命尺度的改变”,比如过去20岁是年轻人,40岁中年人,60岁…

哈工大《软件工程专业导论》复习指南

哈工大软件工程专业导论复习指南 文章目录 哈工大软件工程专业导论复习指南前言引言——软件工程专业导论课程引言第一章 软件工程专业初步认知第二章 软件体系结构与生命周期第三章 软件需求工程第四章 软件设计与实现第五章 软件质量与软件工程管理第六章 软件工程教育与职业…

经典综述|88.1分力作!土壤塑料际

柏林-勃兰登堡高级生物多样性研究所在《Nature reviews microbiology》期刊上(IF88.1)发表的“The soil plastisphere”研究论文中,综述了塑料对土壤的潜在影响。对土壤塑料际特性和微生物群落以及这些群落影响过程的阐明仍处于早期阶段,但进展的步伐很快…

提升测试工具开发的思考

本文针对测试部效率提升测试工具开发、管理、维护暴露出来的问题的一些思考以及一些个人改进观点。 写在前面 本文提到的效率提升测试工具不是指的部门中固有的自动化测试工具,这里提到的测试工具统一指测试人员在工作之余自主开发用于期望替代重复、繁琐、耗时的手…

Nature 确认:大语言模型只是没有感情的「学人精」

DeepMind、EleutherAI 科学家提出,大模型只是在角色扮演。 ChatGPT 爆火后,大语言模型一跃而至,成为了行业与资本的宠儿。而在人们或是猎奇、或是探究地一次次对话中,大语言模型所表现出的过度拟人化也引起了越来越多的关注。 其实…

【数据结构】哈希经典应用:布隆过滤器(哈希+位图)——[深度解析](9)

前言 大家好吖,欢迎来到 YY 滴 数据结构 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴 数据结构 专栏!更多干货持续更新!以下是传送门! 目录 一.布隆过滤器产生的…

第31期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

Plasmocin® Treatment (ant-mpt)可用于干细胞支原体污染清除

Plasmocin™作为Invivogen的支原体抗生素产品之一,受国内外许多科研工作者使用并大力推广。其包含大环内酯物及对苯二酚两种主要成分,可有效作用于支原体复制的蛋白合成阶段和DNA复制阶段,只需两周即可清除支原体污染,并且不会影响…

【CANoe】CANoe手动发送XCP报文读取观测量

文章目录 1、硬件连接:配置CANoe的CAN端口,连接到ECU标定对应的CAN口2、配置CAN IG模块报文:连接XCP,读取观测量,断开XCP3、报文解析4、参考资料 1、硬件连接:配置CANoe的CAN端口,连接到ECU标定…

构筑安全之城:迅软DSE助力大型建筑企业打造数据防泄密方案

电子文件如今已成为各大建筑机构和设计院进行信息存储的主要方式,以及信息交换的重要载体。而对于如何保护好单位内的设计图纸、工程方案等重要资料的数据防泄密问题,就需要相关单位规划好一套合规有效的数据防泄密解决方案。 企业简介 该企业是我国最早…

压缩pdf怎么压缩又小又清晰?超级实用!

当PDF文件过大时,很容易遇到无法上传等现象,这时候我们可以借助一些专业的压缩工具,将PDF文件压缩变小,如果你还不知道怎么做,下面就来看下具体的压缩方法吧。 方法一:使用嗨格式压缩大师 1、打开电脑上安…

Leetcode 78 子集

题意理解: 求一个集合的所有子集。该集合中没有重复元素。 首先明确什么是子集:子集中的元素都在全集里。 [1,2,3] 子集:[]、[1]、[2]、[3]、[12]、[13]、[23]、[123] 注意:[]空集是所有集合的子集。 解题思路: 类似于…

【obs】官方最强插件obs-websocket入门

▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ obs-websocket简介OBS版本说明obs-websocket版本说明安装(27.x版本OBS)配置插件 2️⃣ OBS-web介绍特征使用方法-5.xhttp vs https 3️⃣ obs-websocket-js开发tester.html 4️⃣ 其它开源项目obs-stud…

vue2-使用vue-i18n搭建多语言切换环境

安装 注意:vue2.0要用8版本的,使用9版本的会报错 npm install vue-i18n8.27.0 --save 创建相关的语言包文件 在src目录下,新建i18n文件夹 在新文件夹i18n中新建langs文件夹,里边放语言文本文件.js zh.js:存…