TCP与UDP

本文深入解析TCP和UDP这两种传输层协议的特点与工作机制,探讨它们在可靠性、实时性、端口号处理及流量控制等方面的差异,是理解网络通信不可或缺的资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

TCP和UDP是两个传输层最有代表性的传输层协议,TCP一般提供可靠的信息传输,而UDP常被用于广播和细节控制交给应用的通信传输

传输层的定义

在传输层,IP首部有一个协议字段,用来区分使用的是什么协议,用端口号进行处理的具体程序
在TCP,UDP协议中,就是靠端口号来进行通信处理的

tcp

TCP是面向有连接的,同时是一直访问的
TCP保障了稳定性

DUP

UDP是不具有可靠性的数据协议
UDP保证了实时性

端口号

定义:端口号是用来识别同一计算机中通信的不同程序,因此也被称为程序地址
传输层协议正是利用这些端口号识别本机中正在进行通信的程序
TCP通过源IP地址,目标IP地址,协议号,源端口号,目标端口号来确定一个通信,一旦有一个不同,就会被认为为其他的通信

端口号如何确定

静态方法:很多应用程序都有它固定的端口号,如HTTP,FTP
时序分配法:动态的由操作系统来分配

不同的协议可以使用相同的端口号

TCP

TCP人如其名,代表着传输,发送,通信,进行控制的协议
TCP可以进行丢包时候的重发控制,还可以进行次序乱掉的分包进行顺序控制,同样的,TCP在确定对方存在的情况下才会发送信息,这节约了流量
在TCP中,回复就相当于ACK(确定收到的信号)
但是有时候ACK在回复的时候会丢失,这时也会重发,这对目标主机就是灾难
以下就是这些的解决方法


序列号:序列号是按顺序给发送数据的每一个字节都标上号码的编号,接收端将下一步要接收的序列号返回回去
重发超时:就是等待确定应答到来的那个特定的时间间隔,如果超过这个时间就会进行重发,但是达到一定的重发次数之后,就会判断产生了错误,就会强行断开连接
三次握手
TCP的三次握手过程如下:

1)首先客户端发送seq=c的SYN数据包

服务器端响应一个seq=s,ack=c+1的SYN+ACK数据包

最后客户端回复一个seq=c+1,ack=s+1的ACK数据包,三次握手完成

MSS

定义:最大消息长度,最大消息长度正好是IP中不会被分片处理的最大数据长度;在建立连接的时候,这个就会写在首部

窗口

定义:是无需等待确定应带可以继续发送数据的最大值
滑动窗口控制,就是不是每一个数据都要重发,而是不发收到应答的,而去发后面的,给人滑动的感觉

窗口重发机制

两种情况:
未能收到答复:如果收到后面的答复,就会继续进行
传送丢失:设置接收端没有收到自己需要的序列号的时候,就会重发之前收到的确定应答,所以当发送端收到三次相同的确定答复就会进行重发

流控制

就是控制流量的多少,在少的时候变大,在多的时候变少

拥塞控制

控制传输的流量,使不会过多,也不会过少,不会导致网络瘫痪

提高网络利用率的规范

Nagle算法:该算法是指发送即使还有应该发送的数据,但是部分很少的话,会延迟发送的一种算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值