首页 > 其他分享 >TCP/IP协议栈

TCP/IP协议栈

时间:2024-03-22 12:22:54浏览次数:36  
标签:协议 ACK IP 报文 SYN TCP 连接

TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议
RFC 文档: https://www.ietf.org/rfc/rfc1180.html

TCP/IP 分层
共定义了四层,和 OSI参考模型的分层有对应关系

TCP/IP 通信过程

TCP/IP和OSI模型的比较

  • 相同点

两者都是以协议栈的概念为基础
协议栈中的协议彼此相互独立
下层对上层提供服务

  • 不同点

OSI是先有模型;TCP/IP是先有协议,后有模型
OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络
层次数量不同

1.面向连接网络协议:是指通信双方之间在进行通信之前要先建立连接。比如打电话,双方通话前需要先建立连接。等数据发送结束后,双方再断开连接。
2.无连接网络协议,是指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包送到网络线路上,由系统自主选定路线进行传输。比如QQ发送信息。
3.TCP面向连接的协议:TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。
4.UDP协议是无连接、不保证可靠性的传输层协议。发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更高

TCP特性

  1. 工作在传输层
  2. 面向连接协议
  3. 全双工协议
  4. 半关闭
  5. 错误检查
  6. 将数据打包成段,排序
  7. 确认机制
  8. 数据恢复,重传
  9. 流量控制,滑动窗口


tcp3次握手
pc1 发送SYN报文,序号seq=x,SYN=1,ACK=0,
pc2 回复SYN报文,序号seq=y,确认号ack=x+1,SIN=1,ACK=1,
pc1 回复确认报文,序号sqe=x+1,确认号ack=y+1,ACK=1

确认号:(ack)表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号:传输是否有问题?
ACK(确认位):表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
SYN(同步位):在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段

标签:协议,ACK,IP,报文,SYN,TCP,连接
From: https://www.cnblogs.com/leikj/p/18089188

相关文章

  • IP地址及子网划分
    IP地址及子网划分目录IP地址及子网划分1、什么是IP地址2、IP地址类型2.1、公网地址2.2、私网地址2.3特殊地址3、IP地址分类4、IP地址的构成5、子网掩码6、子网划分1、什么是IP地址P地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十......
  • JavaScript 权威指南第七版(GPT 重译)(三)
    第六章:对象对象是JavaScript中最基本的数据类型,您在本章之前的章节中已经多次看到它们。因为对象对于JavaScript语言非常重要,所以您需要详细了解它们的工作原理,而本章提供了这些细节。它从对象的正式概述开始,然后深入到关于创建对象和查询、设置、删除、测试和枚举对象属性的......
  • JavaScript 权威指南第七版(GPT 重译)(四)
    第九章:类JavaScript对象在第六章中有所涉及。该章将每个对象视为一组独特的属性,与其他对象不同。然而,通常有必要定义一种共享某些属性的对象类。类的成员或实例具有自己的属性来保存或定义它们的状态,但它们还具有定义其行为的方法。这些方法由类定义,并由所有实例共享。例如,想象......
  • JavaScript 权威指南第七版(GPT 重译)(五)
    第十二章:迭代器和生成器可迭代对象及其相关的迭代器是ES6的一个特性,在本书中我们已经多次见到。数组(包括TypedArrays)、字符串以及Set和Map对象都是可迭代的。这意味着这些数据结构的内容可以被迭代——使用for/of循环遍历,就像我们在§5.4.4中看到的那样:letsum=0;for......
  • 【前端面试题-07】typescript 内置类型有哪些,分别简单介绍下用法
    TypeScript提供了一系列内置类型,这些类型有助于编写类型安全的代码。以下是TypeScript中一些重要的内置类型及其用途的简介:基本类型:boolean:表示布尔值,只有两种可能的值true或false。number:表示任何数值,包括整数和浮点数。string:表示文本字符串。bigint(ES2020):表示......
  • JavaScript 权威指南第七版(GPT 重译)(一)
    前言本书涵盖了JavaScript语言以及Web浏览器和Node实现的JavaScriptAPI。我为一些具有先前编程经验的读者编写了这本书,他们想要学习JavaScript,也为已经使用JavaScript的程序员编写了这本书,但希望将他们的理解提升到一个新的水平,并真正掌握这门语言。我写这本书的目标......
  • JavaScript 权威指南第七版(GPT 重译)(二)
    第四章:表达式和运算符本章记录了JavaScript表达式以及构建许多这些表达式的运算符。表达式是JavaScript的短语,可以评估以产生一个值。在程序中直接嵌入的常量是一种非常简单的表达式。变量名也是一个简单表达式,它评估为分配给该变量的任何值。复杂表达式是由简单表达式构......
  • ICMP协议
    Internet控制消息协议ICMP(InternetControlMessageProtocol)是IP协议的辅助协议ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。icmp作用:检测网络的双向联通性ping的格式:ping空格IP地址......
  • 文生图的基石CLIP模型的发展综述
    CLIP的英文全称是ContrastiveLanguage-ImagePre-training,即一种基于对比文本-图像对的预训练方法或者模型。CLIP是一种基于对比学习的多模态模型,CLIP的训练数据是文本-图像对:一张图像和它对应的文本描述,这里希望通过对比学习,模型能够学习到文本-图像对的匹配关系。OpenAI在202......
  • Electron IPC通信机制深度解析与实例演示
    ElectronIPC通信机制深度解析与实例演示IPC机制原理概述IPC通信实例演示IPC通信的优势与应用场景IPC通信的高级用法1.异步通信2.传输复杂数据类型3.处理多个并发请求IPC通信最佳实践与优化1.尽量减少不必要的通信2.使用持久化存储替代部分通信3.注意数据安......