计算机网络


======================================================================================================
tcp 端到端
连接:传输数据行为
会话:应用行为
单工 : 单向传输
双工 : 双向传输 TCP
可靠性:保证数据无损传输
多播:所有接收者都必须接收消息

TCP协议基本操作: SYN同步、FIN请求完成 、PSH数据推送

三次握手:保持连接和可靠性约束,tcp协议要保证每一条发出的数据必须返回
四次挥手: 断开连接需要处理的问题比较多,比如:可能有已经发出但是没有收到ACK的消息,也可能服务端有自己资源需要释放,不能将ack和FIN合并

TCP是一个面向连接的协议。
UDP是一个面向报文的传送协议,无需连接。
物理层 =》 数据链路层 =》 网络层 =》 传输层 =》应用层
信号层 网络地址IP TCP连接 会话

为什么TCP是三次握手,4次挥手?
答:TCP是一一个双工协议,为了让双方都保证,建立连接的时候,连接双方都需要向对象发送SYN和ACK,握手阶段双方都没有繁琐的工作,因此一方向另一方发起同步SYN之后,另一方可以将自己的ACK和SYN打包作为一条消息回复,因此是三次握手-共需3次数据传输。
到了挥手阶段,双方都有可能有未完成的工作。收到挥手请求的一方,必须立马响应ACK,表示接收到了挥手请求,最后等所有工作结束,再发送请求中断连接(FIN)因此是4次挥手。

思考:一台8G左右服务器可以同时维护多少个连接?
通信需要占用资源 连接很少
https://blog.csdn.net/m0_50654102/article/details/116239984
======================================================================================================
TCP可靠性:要求数据恢复到原始的顺序

应用层是将一个10M文件一次性发送的,但是在传送层不是,
稳定性:一次发送的数据越多,错误的概率就是越大
拆分越多可以并行发送

缓冲区:内存中开辟的一个区域,目的是缓冲。
《重学操作系统》

拆包:将数据拆分成多个TCP段传输,部分数据增加了协议头合并成一个TCP段。
粘包:将多个数据合并成一个TCP段传输。

无论是seq还是ACK都是针对对方而言的。

MSS(max segment size)
支持TCP协议工作的ip协议,工作效率会下降

IP协议拆分太多的封包并没有意义
可能会导致同个TCP段的封包被用不同段网络路线传输,加大延迟;
拆包需要消耗硬件和计算资源

题目:TCP协议是如何恢复数据的顺序的,TCP拆包和粘包的作用是什么?
TCP拆包作用:将任务拆分处理,降低整体任务出错的概率,以及减少底层网络处理的压力,
粘包过程需要保证数据经过网络的传输又能恢复到原始的顺序,中间需要提供保证顺序的留你依据,TCP利用(发送字节数、接受字节数)的唯一性来确定封包之间的顺序关系。

思考:有哪些好用的压测工具?
AB(apache benchmark) / JMeter(图形化工具)
yum install httpd-tools/ apt-get install apache2-utils
ab -n 10000 -p 1000 https://example.com/

https://www.cnblogs.com/tuyile006/p/12627821.html
======================================================================================================
TCP保证顺序的具体算法?
如何保证传输的可靠性和吞吐量

思考:窗口大小的单位是? 字节
带宽不足

RTT消息一去一回的时间

滑动窗口和流速控制是怎么回事?
--滑动窗口是TCP协议控制可靠性的核心,发送方将数据拆包,变成多个分组,然后将数据放入一个拥有滑动窗口的数组,依次发出,然后遵循FIFO的顺序
但是窗口中的分组会一次性发出。窗口中的序号最小的分组如果收到ACK,窗口就会发生滑动如果最小的序号的分组没有收到ACK就会触发数据重新发送。


思考:既然发送方有窗口,那么接收方也需要有窗口吗?

======================================================================================================

UDP协议
目标是在传输层提供直接发送报文(datagram)的能力
datagram是数据传输的最小单位。
udp协议不会帮助拆分数据,它的目标只有一个就是发送报文。


TCP应用场景:SSH 、 FTP 、 SMTP\IMAP、点对点文件传输
UDP:网络游戏、音视频、DNS、Ping 、直播
模糊地点:HTTP(后期过度到UDP) 文件传输

TCP和udp协议的优劣?
TCP--最核心的价值就是提供封装好的一套解决可靠性的优秀方案,在保证吞吐量、延迟、丢包率的基础上保证可靠性。
UDP--提供最小的价值,灵活、轻量、传输速度快,只传输速度快

 

posted @ 2022-03-08 11:12  zhangqi0828  阅读(51)  评论(0编辑  收藏  举报