运输层
协议:
tcp(transmission control protocol,传输控制协议)
udp(user datagram protocol,用户数据报协议)
端口:
tcp
tcp(transmission control protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,其传输的单位是报文段。
特征:
①面向连接
②只能点对点(一对一)通信
③可靠交互
④全双工通信
⑤面向字节流
tcp 如何保证可靠传输:
①确认和超时重传
②数据合理分片和排序
③流量控制
④拥塞控制
⑤数据校验
tcp 报文结构
tcp 首部
tcp:状态控制码(code,control flag),占 6 比特,含义如下:
urg:紧急比特(urgent),当 urg=1 时,表明紧急指针字段有效,代表该封包为紧急封包。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据), 且上图中的 urgent pointer 字段也会被启用。
ack:确认比特(acknowledge)。只有当 ack=1 时确认号字段才有效,代表这个封包为确认封包。当 ack=0 时,确认号无效。
psh:(push function)若为 1 时,代表要求对方立即传送缓冲区内的其他对应封包,而无需等缓冲满了才送。
rst:复位比特(reset),当 rst=1 时,表明 tcp 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
syn:同步比特(synchronous),syn 置为 1,就表示这是一个连接请求或连接接受报文,通常带有 syn 标志的封包表示『主动』要连接到对方的意思。
fin:终止比特(final),用来释放一个连接。当 fin=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
udp
udp(user datagram protocol,用户数据报协议)是 osi(open system interconnection 开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,其传输的单位是用户数据报。
特征:
①无连接
②尽最大努力交付
③面向报文
④没有拥塞控制
⑤支持一对一、一对多、多对一、多对多的交互通信
⑥首部开销小
udp 报文结构
udp 首部
tcp 与 udp 的区别
tcp 面向连接,udp 是无连接的;
tcp 提供可靠的服务,也就是说,通过 tcp 连接传送的数据,无差错,不丢失,不重复,且按序到达;udp 尽最大努力交付,即不保证可靠交付
tcp 的逻辑通信信道是全双工的可靠信道;udp 则是不可靠信道
每一条 tcp 连接只能是点到点的;udp 支持一对一,一对多,多对一和多对多的交互通信
tcp 面向字节流(可能出现黏包问题),实际上是 tcp 把数据看成一连串无结构的字节流;udp 是面向报文的(不会出现黏包问题)
udp 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 ip 电话,实时视频会议等)
tcp 首部开销20字节;udp 的首部开销小,只有 8 个字节
tcp 黏包问题
原因
tcp 是一个基于字节流的传输服务(udp 基于报文的),“流” 意味着 tcp 所传输的数据是没有边界的。所以可能会出现两个数据包黏在一起的情况。
解决
发送定长包。如果每个消息的大小都是一样的,那么在接收对等方只要累计接收数据,直到数据等于一个定长的数值就将它作为一个消息。
包头加上包体长度。包头是定长的 4 个字节,说明了包体的长度。接收对等方先接收包头长度,依据包头长度来接收包体。
在数据包之间设置边界,如添加特殊符号 标记。ftp 协议正是这么做的。但问题在于如果数据正文中也含有 ,则会误判为消息的边界。
使用更加复杂的应用层协议。
tcp 流量控制
概念
流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收。
方法
利用可变窗口进行流量控制
tcp 拥塞控制
概念
拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
方法
慢开始( slow-start )
拥塞避免( congestion avoidance )
快重传( fast retransmit )
快恢复( fast recovery )
tcp的拥塞控制图
今天的分享就到这里了,下期为大家分享tcp连接管理,大家要好好学c++哟~
Kneron KL630 基于耐能智慧神经网路架构的超高弹性配置之AI 相机应用方案
手机接口那么多,为什么Type-C接口最受欢迎
手机芯片市场成鼎力之势 高通占领高端市场 联发科、展讯分享中低端市场
基于微流控系统开发单细胞生物芯片平台
MAX1385/MAX1386封装引脚图 应用电路图及其特性概述
浅析C++基础语法之计算机网络中传输层(TCP&UDP)
印度计划一年将推出约452元的5G智能手机
台积电回应称美国目前并没有改变半导体规则
实用的自动延时照明开关电路
三星二季度利润增长53%,但芯片库存几乎耗尽
学好Java后可以做哪一些事
富士康IPO抢跑 这一电子代工龙头能否激流勇进?
安科瑞消防产品应用在石油化工领域
变频系统的端口防护技术
基于英特尔六核64位“服务器级”处理芯片
荣耀V40将于1月18日正式发布
如何在中试线上生产一片8英寸碳化硅衬底?
EXTI外部中断在错误的边沿误触发可能什么原因?
如何利用HMC5883L实现三轴磁力计的设计
出售Agilent86118A电模块