【计算机网络-传输层】TCP/UDP、SYN泛洪攻击、三次握手四次挥手

简介: 【计算机网络-传输层】TCP/UDP、SYN泛洪攻击、三次握手四次挥手

1. UDP

  • UDP无连接的,减少开销和发送数据之间的延迟
  • UDP使用最大努力交付,即不保证可靠交付
  • UDP是面向报文的(直接将整个应用层传过来的报文封装),适合一次性传输少量数据的网络应用。
  • UDP没有拥塞控制(IP电话、腾讯会议),如果拥塞太过严重,直接重传报文~
  • UDP首部开销小,8个字节(8B)–16位源端口号(可有可无)–16位目的端口号(必须要有)–16位UDP长度(整个数据的长度)–16位UDP检验和(检验是否出错

2. TCP

2.1 特点

  • TCP是面向连接的传输层协议
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点
  • TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
  • TCP提供全双工通信:发送缓存(准备发送的数据&已发送但尚未收到确认的数据)接受缓存(按序到达但尚未被接受应用程序读取的数据&不按序到达的数据)
  • TCP面向字节流:TCP把应用程序看成仅仅是一连串的无结构的字符流(字节序列)

2.2 TCP报文段首部格式

  • 序号seq:TCP发送报文段中第一个字节的值
  • 确认号ack:期望收到对方下一个报文段的第一个字节的值
  • 数据偏移:TCP首部的长度
  • URG:URG = 1,紧急数据,让我先传(插队),冲冲冲~~~
  • 确认位ACK:ACK = 1时,确认号有效,ACK = 0,确认号无效,在连接建立后所有传送的报文段都必须吧ACK置为1
  • 推送位PSH:如果该位为1的话,就赋予了一个优先级,交给上面
  • 复位RST:大多数用来出现差错,重新连接
  • 同步位SYN:SYN = 1时,表示这是一个请求连接的报文段
  • 终止位FIN:FIN = 1,表明释放连接
  • 紧急指针:就是URG中紧急数据的长度

2.3 TCP的连接管理

TCP连接传输三个阶段:连接建立-----数据传送-----连接释放

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

2.3.1 TCP三次握手

  • 第一次握手(SYN = 1、seq = x(随机),ACK = 0):客服端发送连接请求报文段,无应用层数据
  • 第二次握手(SYN = 1,ACK = 1,seq = y(随机), ack = x + 1):服务器为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据
  • 第三次握手(SYN = 0,ACK = 1, seq = x + 1, ack = y + 1):客户端为该TCP连接分配缓存和变量,并向服务器返回确认的确认,可以携带数据。

2.3.2 SYN洪泛攻击

2.3.3 TCP的4次挥手

  • 第一次挥手(FIN = 1,seq = u):客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接
  • 第二次挥手(ACK = 1,ack = u + 1, seq = v):服务器返回一个确认报文段,客户到服务器这个方向的连接就释放了–半关闭状态
  • 第三次挥手(FIN = 1,ack = u + 1, seq = w,ACK = 1):服务器发完数据,就发出连接释放报文段,主动关闭TCP连接
  • 第四次挥手(ACK = 1, seq = u + 1,ack = w + 1):客户端回送一个确认报文段,在等待计时器设置的2MSL(最长报文段寿命后),连接彻底关闭。

2.3.4 2MSL的由来

客户端发送的第四次挥手报文段,没有发送到服务器

这时候服务器端会再次发送第三次挥手的内容,请求关闭

这时候客户端收到请求,再次发送4次挥手,服务器收到,双方关闭

如果没有2MSL的话,客户端直接关闭,这时候服务端就会重复的发送第三次挥手,服务器无法进入关闭状态

3. TCP、UDP的区别


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
网络协议 安全 网络安全
什么是TCP/UDP/HTTP?它们如何影响你的内网穿透体验?
数据的传输离不开各种协议,它们就像现实世界中的交通规则,规定了数据如何打包、寻址、传输和接收。对于使用内网穿透的用户来说,理解TCP、UDP和HTTP这些基础协议的特点,能帮助你更好地理解其性能表现,并选择最适合的配置方案。
|
8月前
|
网络协议 安全 网络安全
详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
592 2
|
11月前
|
网络协议 Java 开发工具
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
644 1
|
12月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
423 12
|
网络协议 测试技术 Linux
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
302 0
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
网络协议 算法 网络性能优化
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
991 2
|
网络协议 前端开发 物联网
TCP和UDP区别?
本文首发于微信公众号“前端徐徐”,详细介绍了TCP和UDP两种传输层协议的核心概念、连接性和握手过程、数据传输和可靠性、延迟和效率、应用场景及头部开销。TCP面向连接、可靠、有序,适用于网页浏览、文件传输等;UDP无连接、低延迟、高效,适用于实时音视频传输、在线游戏等。
968 1
TCP和UDP区别?