TCP/IP

IP报文头部

在这里插入图片描述
ip报文首部长度是不固定的,20-60字节之间,其中前20字节固定,后40字节可有可无
4位版本号:表示报文属于ipv4还是ipv6
4位首部长度:以32位为单位,因此表示的最大首部长度为4x15=60字节
8位服务标识:很少使用
16位报文长度:报文总长度(通常会因为链路MTU而被分片)
16位标识:报文序列号,用于报文分片后的重组,与标志,片偏移一起使用
3位标志:MF为1表示后面还有更多分片,MF为0表示这是最后一个分片。DF为0表示路由器不可对该报文分片
13位片偏移:指示该分片在报文中的位置,便于报文重组
8位TTL:报文生存时间,每经过一个路由器该值减1,初始值由系统设定
8位上层协议:指示上层使用的是什么协议
16位首部校验和:对ip报文首部进行校验

TCP报文头部

在这里插入图片描述
序列号:指示所发送的TCP报文第一个字节在发送字节流上的位置,比如:初始序列号为12,第一个报文数据部分(不包含头部)长7字节,那么当前序列号应该是19。TCP通过序列号避免收到重复的数据包,同时也可对收到的数据包进行排序。
确认号:只有ACK标志位为1时有效,表示期望收到的下一个报文的序列号。
保留位(6位):置为0,留作以后使用
URG:置为1时表示紧急指针有效
PSH:置为1时表示接收端应该尽快将数据交给应用层
RST:置为1时表示进行连接重建
SYN:三次握手时使用
FIN:四次挥手时使用
校验和:对包含头部的整个报文数据进行校验,是TCP可靠性的一个体现
紧急指针:后面的数据为优先级高的数据,应优先处理,指向数据中的优先部分的最后一个字节,指示优先数据的长度

滑动窗口

TCP通过窗口实现可靠传输和流量控制,拥塞控制。
发送窗口中是已发送未接收和未发送但对端允许发送的数据,接收窗口中放的是未接收准备接收的数据,由于ACK的确认是有TCP协议栈回复,默认没有应用延时,因此不存在已接收没确认的数据。
发送窗口只有收到确认ACK后才会移动窗口,接收窗口只有前面所有的段都确认的情况下才会移动窗口。

为什么不使用固定窗口?

发送窗口中放的是已发送未接收和未发送但对端允许发送的数据,如果采用固定窗口的模式,如果窗口较小,则需要不停的进行确认。如果窗口较大,比如说发送方一次发送100个数据包,但接收方只能处理50个,接下来继续这样进行,就会造成额外的数据拥塞链路。

流量控制,拥塞控制

由于TCP是全双工通信,每端都需要维护一个发送窗口和一个接收窗口,TCP报头中的窗口其实是指发送方的窗口,发送方能够接收的数据包最大个数,发送方基于此来计算自己能够发送的最大数据量是多少。发送方的发送窗口根据系统,链路带宽,客户自己设置等进行确定,接收端的窗口值根据客户端的确定而确定。
通过窗口的设置,能够在发送较慢时通知发送方加快速度,也能够在发送较快时降低速度,从而实现流量控制。
发送窗口中放的是已发送但未确认和即将发送的数据,接收窗口中放的是已接收但因顺序原因等还没确认和希望接收到的数据。

TCP特点

面向连接,基于字节流,超时重传,单播确认,流量控制,拥塞控制。

微信,qq

qq和微信都采用TCP+UDP的方式进行通信,只是qq以UDP为主,TCP为辅,微信以TCP为主,UDP为辅。
在进行登录时两者都采用tcp+http的方式进行登录,只是在好友聊天,发送图片,下载图片这些上qq使用UDP协议,微信使用TCP长连接。视频通话时均采用UDP协议,qq的文件传输采用p2p模式。

qq

qq在好友聊天,即时通信上使用的是UDP协议,通过上层应用来保证通信的可靠性,UDP具有延时段,处理效率高的特点,在视频通话等情况下,用户可以接受视频卡,但无法接受数据重传,也就是说之前说过的话,又被重新说一遍。
在进行文件传输时,qq使用TCP连接,来确保传输的可靠性。

微信

微信主要采用类http+TCP长连接的方式进行数据传输,通过每300秒一个的心跳包来维持长连接。发送语音,文本图片采用TCP连接,视频通话采用UDP连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值