草庐IT

TCP-Sockets

全部标签

TCP协议的秘密武器:流量控制与拥塞控制

TCP可靠性传输相信大家都熟知TCP协议作为一种可靠传输协议,但它是如何确保传输的可靠性呢?要实现可靠性传输,需要考虑许多因素,比如数据的损坏、丢失、重复以及分片顺序混乱等问题。如果不能解决这些问题,就无法实现可靠传输。因此,TCP采用了序列号、确认应答、重发控制、连接管理和窗口控制等机制来实现可靠性传输。在本文中,我们将重点介绍TCP的滑动窗口、流量控制和拥塞控制。重传机制将在下一章节单独讲解。流量控制流量控制实际上是生产者和消费者之间微妙关系的一个具体体现。你可能在工作中或者面试中经常遇到这种考察场景。如果生产者的生产能力大大超过消费者的消费能力,就会导致队列无限增长。更严重的情况是,你可

【lwip】13-TCP协议分析之源码篇

前言TCP源码篇,当前只分析TCP层的源码实现,按功能分块分析,接口为RAW接口。NETCONN接口和SOCKET接口会独立一篇文章进行分析。本文基于读者已学习了TCP协议原理篇的基础上进行源码分析,不再在此篇文章中过多解析TCP相关概念。‍建议读者对着LWIP库源码进行阅读。对于初学者,可有点难度的,但是对于喜欢读源码的同学来说,会充实TCP原理。‍上一年就写好了,一直没时间整理出来,现在不整理了,直接放出来。链接:https://www.cnblogs.com/lizhuming/p/17438682.htmlTCP首部数据结构参考文件:./src/include/lwip/prot/tc

Python Socket TCP多线程通信【四】

PythonSocketTCP多线程通信一.创建客户端连接一.开启多线程通信前面说到,因为单线程原因,客户端与服务器无法做到自由对话,则需要用到多线程来处理。我们现在的服务端和客户端最多也就是发送消息和接收消息两种行为,所以我们采用双线程。或许我们可以新建一个Client.py的客户端和Server.py的服务端,代码照搬第一期的。首先编写客户端代码。导入内置的线程模块,随后调用模块内置函数threading.Thread(),因为有两个行为(发送消息和接收消息)所以需要定义并启动双线程。target:与目标函数对接使得目标函数开启一个线程。args:向目标函数传入一个参数。这里两个线程同时将

TCP 和 UDP的区别

前言一、TCP和UDP的区别二、OSI七层模型三、TCP协议的特点四、UDP协议的特点五、TCP和UDP的比较总结前言总结一下TCP和UDP的区别。一、TCP和UDP的区别1.什么是TCP?TCP (TransmissionControlProtocol)传输控制协议2.什么是UDP?UDP(UserDatagramProtocol)用户数据报协议区别点:(1)TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务。可靠指:通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;相当于:打电话,我已经确定了对面的人是我要找的那个人了,我可以把信息传输了对的人了,所以是可靠的。UDP是无

Java 基于 TCP 的 Socket 编程

目录1、什么是TCP协议?2、什么是Socket(套接字)?3、简单的TCP网络编程实现4、一个服务端支持多个客户端连接的实现1、什么是TCP协议?        TCP(TransmissionControlProtocol)是一种面向连接的、可靠的传输层协议,用于在计算机网络中传输数据。它是互联网协议套件(TCP/IP)中的核心协议之一。        TCP协议提供了一种可靠的、有序的、面向字节流的数据传输机制,它能够确保数据的完整性、可靠性和顺序性。TCP协议在应用层之上建立了一种端到端的通信,通过使用IP协议进行数据包的传输。        TCP协议的特点和功能包括:可靠性:TCP

基于STM32F103,利用W5500芯片实现TCP客户端连接TCP服务器的实践

尊敬的读者,您好!在这篇文章中,我们将一起深入了解如何使用STM32F103和W5500芯片,实现TCP客户端连接到TCP服务器的过程。在详细的步骤中,我们不仅会给出相关的理论介绍,同时也会提供实战代码以供大家参考和学习。希望大家在阅读完这篇文章后,能够有所收获。实战项目下载一、STM32F103和W5500的基本介绍1.STM32F103STM32F103是ST公司基于ARMCortex-M3内核的32位闪存微控制器,具有高性能、低成本、易于使用的特点。其主要特性包括72MHz频率,64或128K字节的Flash,20K字节的SRAM,以及广泛的外设接口等。2.W5500W5500是WIZn

用Rust设计一个并发的Web服务:常用Rust库如Tokio、Hyper等,基于TCP/IP协议栈,实现了一个简单的并发Web服务器,并结合具体的代码讲解如何编写并发Web服务器的程序

作者:禅与计算机程序设计艺术1.简介1994年,互联网泡沫破裂,一批优秀的程序员、工程师纷纷加入到web开发领域。而其中的Rust语言却备受瞩目,它是一种现代系统编程语言,专注于安全和并发。因此,Rust在当下成为最流行的编程语言之一,很多框架也开始使用Rust重构,这使得Rust得到了越来越多人的青睐。2017年1月,Google发布了它的Serverless计算产品,旨在实现按需自动扩容的能力,主要由FaaS(FunctionsasaService)实现。为了达成此目标,需要构建一个高性能、易扩展、可伸缩的HTTP服务器。因此,在这一背景下,Rust语言又一次变得值得学习。本文首先会带领读

理解网络通信的基础:OSI七层模型与TCP/IP五层模型

在今天的数字化世界中,网络通信已经成为我们日常生活和商业活动的重要组成部分。为了更好地理解和管理网络通信,网络工程师和管理员使用不同的模型来组织和解释网络协议和通信过程。本文将介绍两种最重要的网络模型:OSI七层模型和TCP/IP五层模型。OSI七层模型OSI(开放系统互联)模型是一种理论性的网络通信模型,由国际标准化组织(ISO)于20世纪80年代制定。该模型将网络通信过程分为七个层次,每个层次负责不同的功能,从而实现了网络通信的模块化和分层设计。以下是OSI模型的七个层次:物理层(PhysicalLayer):这是最底层的层次,负责物理媒介上数据的传输。它包括了电压、电流、电缆和光纤等物理

TCP 协议(一)报文结构

TCP协议(一)报文结构TCP协议(二)连接与断开TCP协议(三)十种核心机制TCP协议(四)传输异常TCP提供面向连接的通信传输,面向连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。1.TCP包首部网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详