首页 > 其他分享 >传输层之UDP与TCP的首部

传输层之UDP与TCP的首部

时间:2022-10-22 22:36:35浏览次数:86  
标签:UDP 字节 首部 TCP --- 传输层 数据 连接

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

传输层位于应用层和数据链路层之间,主要有两个协议,用户数据报协议UDP(User Datagram Protocol)、传输控制协议TCP(Transmission Control Protocol)。

UDP在发送数据前不需要建立连接,所以首部不需要存储太多数据,只有四部分(源端口、目的端口、长度、检验和),各占2个字节,其中长度属性并没必要,因为完全可以在数据链路层计算出来,这里存在是为了保障头部占据8字节。

这里增加了一个【伪首部】,伪首部的数据是不会发送到下一层的,仅仅是用于检验和增强校验的功能,检验和将首部(包括伪首部)和数据部分一起计算。

UDP请求抓包后可以看到只有几项数据,源端口52364,目的端口53,总长度43字节,检验和看起来无效。

但TCP就不同了,发送数据前需要建立连接,并且尽可能的保障数据可靠交付,首部会有更多的属性来记录信息。

  • 序号(Sequence Number) --- 4字节, TCP传输过程中每一个字节都有编号,建立连接后,序号表示TCP数据部分的第一个字节编号(实际是一个非常大的值,非常大的值 - 固定值 = 小的编号,同一请求有一个固定值,固定值来源于建立连接时seq=0时的值)
  • 确认号(Acknowledgment Number) --- 期望对方下一次传过来的TCP数据部分的第一个字节编号
  • 数据偏移 --- 4位,范围0x0101-0x1111,换成十进制乘以以4为首部长度(20-60字节)
  • 保留 --- 暂时没什么用,占6位(标志位有三位没什么用就划到了保留位中),有些资料会说占3位,标志位占9位
  • 标志位(Flags) --- 6位
    • urg: urgent(紧急)--- 为1时,紧急指针中的数据才有作用
    • ack: acknowledgment(确认)--- 为1时,确认号字段才有效
    • pus: push --- 交互式网络通信才有用
    • res: reset(重置)--- 为1时,表示tcp连接中出现问题,要释放连接并重新建立连接
    • syn: synchronization(同步,用于建立连接)--- syn=1,ack=0时表明建立连接,服务器同意时回复syn=1,ack=1
    • fin: finish(终止连接)--- 为1时,表示要求释放连接
  • 窗口(Window) --- 2字节,流量控制功能,告知下一次允许发送的数据大小
  • 检验和(checksum) --- 2字节,计算伪首部(12字节、不会传递给网络层) + 首部 + 数据
  • 紧急指针: 2字节,urg为1时生效,放置的是长度,表示tcp数据中前x位是紧急数据,尽快传送
  • 选项:长度可变,当建立连接时,可靠传输和流量控制时需要

从抓包数据可以看到,序号为0,但它真实的序号是一个非常大的数字(631127820),确认号为0,数据偏移为8,乘以4得出的首部长度为32字节,标志位折叠起来了,里面的syn是1,其余都是0,这里是建立连接的时候。

窗口大小64240,检验和看起来无效,紧急指针为0,选项中有12字节,里面定义了一些建立连接需要用的其它数据,加上首部其他属性的默认20字节,与总长度32字节对应。

首部存储信息的不同决定着UDP和TCP存在很大的差异。

UDP适合实时的场景,比如直播、视频通话,即使有些时候卡顿,没听清内容、没看到画面,也不影响通信的正常进行。

TCP正好相反,适用于需要数据完整的场景,比如邮件、浏览器、文件传输等,这些场合如何丢失了一些文字和数据,可能语义就完全变了,会对内容完整性有较大影响。

而TCP又如何做到保障数据的可靠传输呢?敬请期待我下一篇文章~

以上就是 传输层之UDP与TCP的首部的内容 , 更多有关 前端网络协议 的内容可以参考我其它的博文,持续更新中~

标签:UDP,字节,首部,TCP,---,传输层,数据,连接
From: https://www.cnblogs.com/vigourice/p/16817463.html

相关文章

  • TCP协议详解一
    TCP协议的报文格式传输层TCP协议提供了一种面向连接的、可靠的字节流服务,其数据帧格式,大致如下图所示: 图:传输层TCP协议的数据帧格式 一个传输层TCP协议的数据帧,大致......
  • TCP/IP四层网络模型
    1.TCP/IP协议是什么?TCP/IP协议时一种网络体系模型的代名词,指的是多种协议的协议簇,即包含TCP、IP、MAC、UDP、HTTP、FTP等多种协议,它是四层网络模型,包含应用层、传输......
  • 计算机网络原理(TCP/IP附一):IEEE802局域网和城域网标准名称目录表
    名称描述官方参考802.1ak多注册协议(MRP)[802.1AK-2007]802.1AEMAC安全(MACSec)[802.1AE-2006]802.1AX链路聚合(以前的802.3ad)[802.1AX-2008]802.......
  • 一个简单的百万并发的TCP服务器的实现。
    我们紧接着上篇文章,看看我们上节课的代码有什么问题?可以明显的看出来上节课的代码公用了一个同样的缓冲区进行读写,正常的情况下我们需要封装一个结构体,让每个对应的客户端......
  • DOTCPP_1468_蓝桥杯基础练习VIP-报时助手
    1.题目链接题目1468:蓝桥杯基础练习VIP-报时助手2.解题思路2.1题意解析本题的目的是要完成报时功能,即根据输入的小时数h和分钟数m的值,按照报时规则输出对应的英文输......
  • linux ss统计tcp,udp进程数
    目录linuxss统计tcp,udp进程数参数说明实例主机不间断重启问题排查linuxss统计tcp,udp进程数参数说明-s,显示与本机连接的tcp和udp的进程数,可用于分析-h,--help帮助......
  • TCP三次握手过程
    第一次握手:主机A通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信;你可以用哪个序列号......
  • AI智能视频融合平台EasyCVR如何通过数据库批量修改tcp/udp播放协议?
    EasyCVR视频融合云平台基于云边端一体化架构,兼容性高、拓展性强,可支持多类型设备、多协议方式接入,包括国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家的私有协议,如:海康Ehome......
  • 云原生架构与云IDC实操业务 腾讯架构师工程师TCP认证 含DevOps
    云原生架构与云IDC实操业务腾讯架构师工程师TCP认证含DevOps云原生已经是云计算行业的事实标准,改变了软件开发、部署和运维的工作、思维方式,也让运维人员的职业方向发......
  • win11扯蛋的防火墙:远程桌面默认只添加了UDP端口规则
    win11扯蛋的防火墙:远程桌面默认只添加了UDP端口规则。开启防火墙后,导致win10以下的mstsc客户端无法访问。解决办法就是在防火墙高级设置,添加远程桌面端口(默认3389)的TCP......