当前位置: 首页 > article >正文

第二十八篇:TCP协议概述,TCP系列二

传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在 TCP 协议中,通过三次握手建立连接。通信结束后,还需要断开连接。如果在发送数据包时,没有正确被发送到目的地时,将会重新发送数据包。

⾯向连接:⼀定是「⼀对⼀」才能连接,不能像 UDP 协议可以⼀个主机同时向多个主机发送消息,也就是⼀对多是⽆法做到的;

可靠的:⽆论的⽹络链路中出现了怎样的链路变化,TCP 都可以保证⼀个报⽂⼀定能够到达接收端;

基于字节流:消息是「没有边界」的,所以⽆论我们消息有多⼤都可以进⾏传输。并且消息是「有序的」,当「前⼀个」消息没有收到的时候,即使它先收到了后⾯的字节,那么也不能扔给应⽤层去处理,同时对「复」的报⽂会⾃动丢弃。

一、如何理解面向连接里面的“连接”

面向连接就是通信双方在通信时,要事先建立一条通信线路,然后进行通信。这条通信线路并不是一条实际的路而是我们抽象出来的一条路,简单来说就是:⽤于保证可靠性和流量控制维护的某些状态信息称为连接也可以理解成“通信线路”这些状态信息包括Socket、序列号和窗⼝⼤⼩

  1. 套接字:由 IP 地址、端⼝号以及传输层协议(TCP或UDP)组成
  2. 序列号:⽤来解决乱序问题等
  3. 窗⼝⼤⼩:⽤来做流量控制

两个套接字可以唯一确定一个“连接”即四元组源IP源端口目的IP目的端口

二、TCP的功能

① 面向流的处理

TCP 以流的方式处理数据。换句话说,TCP 可以一个字节一个字节地接收数据,就像水流一样处理,而不是一次接收一个预订格式的数据块。TCP 把接收到的数据组成长度不等的段,再传递到网络层。

② 重新排序

如果数据以错误的顺序到达目的地,TCP 模块能够对数据重新排序,来恢复原始数据。

③ 流量控制

TCP 能够确保数据传输不会超过目的计算机接收数据的能力。

④ 优先级与安全

为 TCP 连接设置可选的优先级和安全级别。

⑤ 适当的关闭

以确保所有的数据被发送或接收以后,再进行关闭连接。

三、TCP 工作模式

TCP 协议的数据包进行传输采用的是服务器端和客户端模式。发送 TCP 数据请求方为客户端,接收端则为服务器端。客户端要与服务器端进行通信,服务器端必须开启监听的端口,因为TCP报文到达接收端的传输层的时候,需要找到监听端口的程序,然后交给该程序去处理,并且TCP协议规定TCP报文中必须带有目的端口,然后才能进行通信。

① 建立连接

首先基于TCP协议的应用,必须通过三次握手建立连接,即通过三次握手在通信双方的本地维护一份套接字序列号窗⼝⼤⼩等信息。

② 发送数据

建立好连接(维护好套接字序列号窗⼝⼤⼩等信息)后就可以发送信息了;发送端每次发送信息,接收端都会回复一个信息已收到的确认报文。如果接收端没有返回确认报文,发送端会继续发送。

③ 断开连接

信息发送完成后,就需要通过四次挥手断开连接(消除套接字序列号窗⼝⼤⼩等信息)。


http://www.kler.cn/news/361007.html

相关文章:

  • 华为OD机试2024年真题(基站维修工程师)
  • 【二】企业级JavaScript开发之代码编辑器
  • Vue day06(路由进阶)
  • Segment Routing IPv6简介
  • 《保护你的网站:多维度防护策略分析》
  • AcWing 11 背包问题求方案数
  • 2024第四届中国RPA+AI开发者大赛圆满收官获奖名单公示
  • 小新学习Docker之Docker--harbor私有仓库部署与管理
  • Comsol 低频宽带排气消声器
  • 案例分析:拒绝服务攻击引发的网络调优之旅
  • blender分离含有多个动作的模型,并导出含有材质的fbx模型
  • 软件分享丨火绒应用商店
  • 【C++指南】类和对象(四):类的默认成员函数——全面剖析 : 拷贝构造函数
  • Leetcode 1857. 有向图中最大颜色值
  • Harmony OS 开发之ArkTS语言基础-类、接口、继承、模块、泛型
  • Vue Data UI——Vue 3 数据可视化组件库
  • 什么是堡垒机 ?
  • Nodes 节点
  • 时间序列预测(六)——循环神经网络(RNN)
  • 07 实战:视频捕获