TCP和UDP详解

TCP与UDP(非常详细) TCP/IP模型是一些列协议的总称(TCP,UDP,IP,FTP,HTTP,ICMP,SMTP)。这些协议可以划分为四层:链路层、网络层、传输层、应用层。TCP和UDP都位于计算机网络模型中的运输层,它们主要负责传输应用层产生的数据。。TCP与UDP区别总结:1、TCP传输效率慢、所需资源多,UDP则相反。2、TCP面向连接(打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接3、TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达; 阅读详情

本篇文章主要是从运输层协议概述、UDP、TCP、可靠传输的工作原理、TCP首部格式、TCP可靠传输的实现、TCP流量控制、TCP的拥塞控制、TCP的连接管理这几个方面进行解析。不对之处还望指出,喜欢的可以点赞关注一下,谢谢。

 

一、运输层协议概述

1.进程之间的通信

  • 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。

  • 当两台主机使用网络的核心部分的功能进行点对点通信的时候,只有位于边缘部分的主机的协议栈才有运输层,而网络核心的路由器在转发的时候只有用到下三层的功能。

 

 

应用进程之间的通信:

  • 两个主机进行通信实际上就是两个主机中的应用进程互相通信。

  • 应用进程之间的通信又称为端到端的通信。 输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。

  • “运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。

 

 

运输层的主要功能:

  • 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。

  • 运输层还要对收到的报文进行差错检测。

  • 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。

两种不同的运输协议:

  • 运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运- 输层实体之间有一条端到端的逻辑通信信道。

  • 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。

  • 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。

 

2.运输层的两个主要协议

TCP/IP 的运输层有两个不同的协议:

  • (1) 用户数据报协议 UDP(User Datagram Protocol)

  • (2) 传输控制协议 TCP(Transmission Control Protocol)

TCP与UDP:

  • 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。

  • TCP 传送的数据单位协议是 TCP 报文段(segment)

  • UDP 传送的数据单位协议是 UDP 报文或用户数据报。

 

 

  • UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。

  • TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

 

3.运输层的端口

  • 运行在计算机中的进程是用进程标识符来标志的。

  • 运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在因特网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。

  • 为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志。

端口号(protocol port number),简称为端口(port):

  • 解决这个问题的方法就是在运输层使用协议端口号(protocol port number),或通常简称为端口(port)。

  • 虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成。

软件端口与硬件端口:

  • 在协议栈层间的抽象的协议端口是软件端口。

  • 路由器或交换机上的端口是硬件端口。

  • 硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。

TCP 的端口 :

  • 端口用一个 16 位端口号进行标志。

  • 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。

三类端口号:

  • 熟知端口,数值一般为 0~1023。

  • 登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。

  • 客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。

 

更多Linux服务器高级开发内容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,K8S,Docker,TCP/IP,协程,DPDK多个高级知识点分享。

 

点击链接:C/C++Linux服务器开发/后台架构师-学习视频

 

文档资料、电子书籍以及各大企业面试题资料+qun720209036

 

二、用户数据报协议UDP

1.UDP概述

  • UDP 只在 IP 的数据报

udp如何传输大数据附udp高速传输技术解决方案 UDP(用户数据报协议)是网络上最常用的数据传输方式之一。通常在讨论中会将UDP与另一种常用的通信协议TCP一起考虑。UDP和TCP各有优势和劣势,根据不同情况选择合适的协议以最大限度地发挥其优点并减少其缺点。 阅读详情

相关推荐

TCP详解之三次握手、四次挥手

在互联网很多岗位的面试中TCP的三次握手、四次挥手都是不可绕过的话题,有很高的热点度.今天我就带大家来看看什么是三次握手、四次挥手. 在讲之前,我们先来了解下TCP协议是什么 1. TCP协议 TCP协议全称: 传输控制协议, 顾名思义, 就是要对数据的传输进行一定的控制. 我们来分析分析每部分的含义和作用 源端口号/目的端口号: 表示数据从哪个进程来, 到哪个进程去. 32位序号: ...

每天多学一点点. 的博客 1564

UDP和TCP的报文详解

详细介绍TCP和UDP的报文格式,帮助理解以及后续复习

长岛冰茶去冰的博客 1万+

SOCKET之UDP跨网段广播返回服务端主机名和所有IP

SOCKET之UDP跨网段广播返回服务端主机名和所有IP代码

告别Windows!Oculus Quest 2在Mac M1上的串流实战(scrcpy+SideQuest避坑指南)

本文为Mac M1用户提供了Oculus Quest 2在macOS上实现高清低延迟串流的实战指南。通过使用开源工具scrcpy和SideQuest,绕开官方限制,详细讲解了从环境准备、无线调试到画质与延迟优化的完整步骤,重点解决了Apple Silicon芯片Mac的连接与性能问题,助你告别Windows依赖。

weixin_29224309的博客 308

正负数据如何归一化_生信干货 | LC-MS代谢组学QI软件下机数据代谢物筛选和归一化如何做?...

上海·2019第一届多层组学前言技术发展华东区客户研讨会倒计时1天LC-MS非靶向代谢组学数据下机啦~~拿到一堆数据怎么办?不会高端代码,也不会自己写脚本,我怎么处理数据?​本期小编带来了LC-MS非靶向代谢组学下机数据处理实用干货,包括:下机定性结果表格的解析、代谢物筛选如何做?以及定量数据如何做归一化?实用干货,赶紧来抢~~话不多说,赶紧来学习吧~~非靶向LC-MS代谢组学的分析流程LC-MS...

weixin_36441329的博客 2983

实战分享:如何用Jetson Nano+HM30图传搭建低空YOLOv5检测系统(附VNC避坑指南)

本文详细介绍了如何利用Jetson Nano和HM30图传搭建低空YOLOv5检测系统,重点解决了无人机应用中的硬件连接和VNC延迟优化问题。通过对比WiFi直连与图传方案的优劣,提供了网络配置、VNC优化及YOLOv5模型加速的实战技巧,帮助开发者实现高效稳定的低空目标检测系统。

weixin_29174385的博客 110

知识图谱-KGE-语义匹配-双线性模型-2018:SimplE

【paper】 SimplE Embedding for Link Prediction in Knowledge Graphs 【简介】 本文是加拿大英属哥伦比亚大学的两位学者发表在 NIPS 2018 上的工作,文章提出了 SimplE(Simple Embedding)。这篇和前面一篇差不多,也是对 1927 年的 CP 进行改进(简化),传统CP为实体分配的两个向量是独立训练的,SimplE利用关系的逆在三元组打分函数中加上了一个对称项,使得每个实体的两个向量依赖学习,并且 SimplE 的复杂度随

u013250861的博客 958

【Dify】PPT生成工具应用

本文介绍了一款自动化PPT生成工具,通过智能接口将文本内容高效转化为结构化演示文档。该系统采用三阶段工作流(内容输入、HTTP请求上传、文件输出),无需复杂操作即可生成专业PPT。工具适用于教学课件、产品发布、企业培训等场景,能显著提升内容表达效率,特别适合初学者快速制作演示材料。文章详细说明了核心节点、应用场景及开发资源,为文本到PPT的自动化转换提供了实用解决方案。

Mr数据杨 1218

从 Product Master 视角理解 Configurable Products

摘要:SAP S/4HANA中的可配置产品(Configurable Products)通过集中管理产品变体解决主数据膨胀问题。以汽车和服务器为例,销售端显示为单一产品,生产端则处理多维度组合。核心机制包括:1)使用KMAT物料类型或Configurable标记;2)通过特征(characteristics)定义可选项;3)用分类(class)组织特征;4)配置档案(configuration profile)控制业务逻辑。这种设计将客户选择与主数据解耦,避免为每个组合创建独立物料,同时支持销售配置、生产B

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 84

Windows密码忘了怎么办?一分钟看懂Windows密码底层机制:无需重装系统也能无痕找回登录密码

忘记Windows开机密码,不一定非得重装系统!本文手把手教你通过提取NTLM Hash值实现“无痕找回密码”,无需PE、无需清除密码,对系统零修改 🛡️ 搭配mimikatz与在线解密平台,小白也能快速上手,了解Windows密码底层机制 🔐

XiaoqiangClub的博客 126

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》(Semiconductor devices - Discrete devices - Part 8: Field-effect transistors)。该标准详细规定了场效应晶体管(FETs)的测试方法,涵盖静态和动态特性测试,适用于多种类型的FET,包括结型场效应晶体管(JFETs)、绝缘栅场效应晶体管(MOSFETs,增强型和耗尽型)等。3. 标准其他部分(简要概述)

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 575

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 腾讯研发类笔试面试试题及答案(C++方向)
下一篇: 高性能库DPDK精简理解
Linux服务器开发
博客等级 码龄7年 610粉丝 589原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值