第5章-TCP和UDP基本原理

news/2024/5/18 12:36:00 标签: tcp/ip, udp, 网络

1. TCP/IP传输层的作用

2. TCP基本原理

2.1. TCP头格式

2.2. TCP的三次握手

2.3. TCP的四次挥手

2.4. TCP的窗口滑动机制

3. UDP基本原理

4. TCP和UDP的比较


1. TCP/IP传输层的作用

        1、定义:为主机:提供端到端的连接;为网络层:提供TCP和UDP服务;

        2、作用:

        提供面向连接或无连接的服务;

        维护连接状态;

        对应用层数据进行分段和封装;

        实现多路复用;

        可靠地传输数据;

        3、TCP和UDP的区别

        TCP(Transmission Control Protocol):面向连接;"流式传输"

        UDP(User Datagram Protocol):无连接,不可靠;

        对方在吗?对方收到了吗?对方收到的信息正确的吗?

2. TCP基本原理

2.1. TCP头格式

        Source Port | Destination Port

        源端口、目的端口;

        端口:每个应用程序进出网络都需要经过一个唯一端口,通过端口来识别数据交由哪个应用程序处理;

        服务端:固定端口号0~1023;客户端:1024以上随机端口;

        命令:netstat -a

        Sequence Number | Acknowledgement Number

        Sequence Number 序列号

        Acknowledgement Number 确认号

        Data Offset | Reserved

        Data Offset(数据偏移):标识数据分段在完整数据中的位置,进行数据重组;

        Reserved(保留位):闲置;

        Flags 标志位

        URG(紧急指针字段标志):紧急开关位,优先转发;(紧急指针)

        ACK(确认字段标志):标识字节流;

        PSH(推功能):直接提交缓存数据,在缓存区中立即结束上传给应用层;

        RST(重置连接):无法正常连接,死机、断线;

        SYN(协商位、同步序列号):确认号;

        FIN(数据传送完毕):标识结束—四次挥手;

        Window

        窗口尺寸:滑动机制,用来通告本机的接收能力;

        问题:丢包重传

        Checksum | Options | Padding

        Checksum:Hash校验

2.2. TCP的三次握手

        1、工作机制

        seq:序列号,随机产生;

        ack:确认号;

        ① 主机A向主机B发送请求,第一个数据包,产生一个seq:a;(无ack)

        ② 主机B回应主机A,a. 确认收到,产生一个ack:a+1;b. 产生一个seq;

        ③ 主机A回应主机B,对该确认再做确,再产生序列号;ack:a+1; seq:b+1;

        ④ 主机B收到主机A的确认报文后,连接建立;

        例子:两个人打招呼;

        2、确认重传机制

        若数据包检测有错误,利用确认号,让对方再发一次

        3、现实应用场景

        TCP不要求对每个段一对一地发送确认,接收端可以用一个ACK确认之前收到的所有数据。

2.3. TCP的四次挥手

        FIN(Finish Segment):结束段;

        工作机制

        ① 主机A向主机B发送FIN,请求结束

        ② 主机B向主机A回应: a. ACK确认收到请求,b. FIN请求结束

        ③ 主机A向主机B回应ACK,确认结束

2.4. TCP的窗口滑动机制

        目的:实现流量控制;

        工作机制:使用大小可变的滑动窗口,定义窗口尺寸的通告;

3. UDP基本原理

        1、功能:实现数据报模型的分组交换计算机网络通信而设计的;无连接、不可靠;

        2、UDP的头格式

4. TCP和UDP的比较

        1、TCP:

        优点:传输可靠性高;

        缺点:占用带宽高,传输延迟高;

        应用场景:对数据完整性要求高,但对传输延迟要求低;

        2、UDP:

        优点:占用带宽低,传输延迟低;

        缺点:没有任何可靠机制;

        应用场景:对传输延迟要求高,但数据完整性要求低


http://www.niftyadmin.cn/n/5339575.html

相关文章

百家云BRTC的解决方案

随着网络实时通信技术(Web Real-Time Communication,简称WebRTC)的不断发展和普及,webRTC已成为现代互联网通讯领域的核心技术之一。它体现在方方面面比如: 实时视频通话: WebRTC 可以用于实现浏览器之间的…

flutter 中使用flutter_slidable 实现左滑显示删除、修改菜单,仿微信

flutter pub add flutter_slidable导入 import package:flutter_slidable/flutter_slidable.dart;使用 import package:flutter/material.dart; import package:flutter_slidable/flutter_slidable.dart;void main() > runApp(const MyApp());class MyApp extends Statele…

面试高频知识点:1集合 1.1HashSet集合的特点

HashSet(哈希集合)是Java集合框架中的一种实现Set接口的类,它具有以下特点: 无序性: HashSet不保证元素的顺序,即元素在集合中的存储顺序与它们的插入顺序无关。这是因为HashSet使用哈希表来存储元素&#…

华为网络设备常用命令大全

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

OpenGL API 变换 纹理

learnOpenGL里面讲变换,其变换本身没有任何问题。唯一的问题在于纹理坐标没有跟着变换。 预期有差异,就来挖坑。 GPT给出解释: OpenGL的变换操作通常是应用于顶点而不是纹理坐标。这是因为变换的目标是将3D模型从模型空间转换到屏幕空间&a…

网络安全产品之认识入侵防御系统

由于网络安全威胁的不断演变和增长。随着网络技术的不断发展和普及,网络攻击的种类和数量也在不断增加,给企业和个人带来了巨大的安全风险。传统的防火墙、入侵检测防护体系等安全产品在面对这些威胁时,存在一定的局限性和不足,无…

2024年华为OD机试真题-素数之积-Java-OD统一考试(C卷)

题目描述: RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。 输入描述: 一个正整数num 0 < num <= 2147483647 输出描述: 如果成功找到,以单个空…

mysql中MyISAM和InnoDB的区别是什么

InnoDB&#xff1a;MySQL默认的事务型引擎&#xff0c;也是最重要和使用最广泛的存储引擎。它被设计为大量的短期事务&#xff0c;短期事务大部分情况下是正常提交的&#xff0c;很少被回滚。InnoDB的性能与自动崩溃恢复的特性&#xff0c;使得它在非事务存储需求中也很流行。除…