传输层协议

TCP传输控制协议

特点:有连接的,可靠性高,效率低,适用于文本流量

封装内容:(20字节)

端口号占16bit,知名端口号:0-1023,自定义端口号:1024-65535

源端口号来自自定义端口号,目的端口,目的端口号标识上层协议的

Sequence序列号、ack确认号、Reserved保留位,固定为0

Control bits控制位,有SYN、ACK、FIN、RST、PSH、URG位

SYN表示建立连接

ACK表示确认连接

FIN表示断开连接

RST表示TCP连接建立失败后,重新建立TCP连接

window窗口值:用来控制TCP的流量

可靠机制:

1、建立TCP连接(通道),通过三次握手的方式来建立TCP连接(双向)

主动端使用SYN置位的TCP报文,携带随机序列号a,请求TCP连接

被动端生成ACK和SYN置位的TCP报文,携带ack+1用来确认主动端到被动端的连接,同时携带随机序列号c,用来请求被动端到主动的连接

主动端生成ACK置位的TCP报文,携带ack=c+1用来确认连接

2、确认机制/重传机制

所有的TCP流量都会携带一个序列号,对端收到TCP流量之后,会进行ACK的确认回复,接着才可以继续发送下一份TCP流量,如果没有收到ACK确认,一直进行重传

3、滑动窗口机制

控制数据的传输速率,防止缓冲区不够导致数据发生丢包

在TCP三次握手时,双方告诉对方自己的缓冲大小为多少

4、关闭连接

数据传输完成之后,需要关闭TCP连接,通过四次挥手的方式进行关闭

主动端发送FIN请求断开TCP连接

被动端收到后,发送ACK确认主动端到被动端的连接断开

被动端发送FIN请求断开TCP连接

主动端收到后,发送ACK确认被动端到主动端的连接断开

UDP用户数据协议

特点:无连接的,可靠性低,效率高,适用于视频流量

相关推荐
箓维17 分钟前
TCP Socket的进阶实现
网络·笔记·tcp/ip
小羊没烦恼!1 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
小Ti客栈1 小时前
Netty 零拷贝原理与实战
运维·服务器·网络
国科安芯1 小时前
商业光学遥感载荷焦平面供电链的低噪声稳压器研究综述——以国科安芯ASP7A84AS型3A低压差线性稳压器为器件级参照
大数据·网络·嵌入式硬件·平面·卫星·商业航天·抗辐射
静以修身zzz1 小时前
计算云服务
运维·网络·云计算
星恒随风1 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
万联WANFLOW2 小时前
异地组网速度忽快忽慢到底怎么回事?直连与中继的判断方法和处理步骤
运维·网络·网络协议·p2p
jimmyleeee2 小时前
Agent安全之六:(ASI06)记忆与上下文投毒——当 AI 把“昨天的错误”当成“今天的真理”
网络·人工智能·安全
辰辰观影2 小时前
字幕导入教程:外挂字幕一键加载方法
网络·经验分享
无糖可乐没有灵魂2 小时前
Golang ❀ Netdiag 一个Go开源的网络排障信息收集工具
网络