TCP与UDP协议

一、TCP与UDP对比:

传输层定义了主机应用程序之间端到端的连通性。

传输层中最为常见的两个协议分别是:

传输控制协议TCP(Transmission Control Protocol)

用户数据包协议UDP(User Datagram Protocol)

TCP位于TCP/IP模型的传输层,它是一种面向连接的端到端协议。

TCP作为传输控制协议,可以为主机提供可靠的数据传输。
UDP是一种面向无连接的传输层协议,传输可靠性没有保证。

UDP将数据从源端发送到目的端时,无需事先建立连接。

相比于TCP,UDP的传输效率更高、开销更小,但是无法保障数据传输的可靠性。

UDP不提供重传机制,占用资源小,处理效率高。

一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议。

二、TCP/UDP+端口号=服务

TCP允许一个主机同时运行多个应用进程。

每台主机可以拥有多个应用端口,每对端口号、源和目标IP地址的组合唯一地标识了一个会话。

端口分为知名端口和动态端口。

有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为0-1023。如FTP、HTTP、Telnet、SNMP服务均使用知名端口。

动态端口号范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。

只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。

协议 端口号

FTP 21、20

HTTP 80

Telnet 23

SMTP 25

三、TCP的建立和断开:

TCP是一种可靠的,面向连接的全双工传输层协议。

TCP连接的建立是一个三次握手的过程。

1、主机A(通常也称为客户端)发送一个标识了SYN的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。

2、服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。

3、主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文的确认。

TCP连接的终止则要经过四次挥手。

1、主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。

2、服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。

3、服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。

4、主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。

相关推荐
Ruiery4 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
taktok_ai4 小时前
用 cc-switch 连接 Taktok
网络
Decay__5 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
小嘉丶学长6 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
江华森6 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼6 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
LCG米7 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
by209998 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
pt10438 小时前
Cisco设备网络安全系列-18:SIEM与SOAR安全解决方案
网络·安全
Tel199253080048 小时前
温度湿度信号转WiFi/MQTT/Modbus TCP采集模块 无线传输
网络·网络协议·tcp/ip·工业自动化·工控设备