当前位置: 首页 > news >正文

绍兴网站建设解决方案北京网站搭建方案

绍兴网站建设解决方案,北京网站搭建方案,深喉咙企业网站帮助,影评网站怎么做为什么说Tcp是面向字节流的: Tcp通信的本质是创建一个tcp的socket,同时就会对应的创建一个发送缓冲区和接收缓冲区。 调用write时, 数据会先写入发送缓冲区中;如果发送的字节数太长, 会被拆分成多个TCP的数据包发出如果发送的字节数太短, 就会先在缓冲…

为什么说Tcp是面向字节流的:

Tcp通信的本质是创建一个tcp的socket,同时就会对应的创建一个发送缓冲区和接收缓冲区。

  • 调用write时, 数据会先写入发送缓冲区中;
  • 如果发送的字节数太长, 会被拆分成多个TCP的数据包发出
  • 如果发送的字节数太短, 就会先在缓冲区里等待, 等到缓冲区长度差不多了, 或者其他合适的时机发送出去
  • 接收数据的时候, 数据也是从网卡驱动程序到达内核的接收缓冲区;然后应用程序可以调用read从接收缓冲区拿数据;
  • 另一方面, TCP的一个连接, 既有发送缓冲区, 也有接收缓冲区, 那么对于这一个连接, 既可以读数据, 也可以写数据. 这个概念叫做 全双工
  • 而其中的缓冲区,因为本质就是数组,而从数组上进行读、写操作,和河流比较像在流中进行数据的读取和写入!

Tcp协议的粘包问题

tcp协议将数据都放到了缓冲区中,而缓冲区中具体有几个报文是不确定的(因为发送的数据可大可小,可能一次报文就能把数据全部发过来,也可能一次只能发送半个 。。。),所以就类似于粘着的样子,对此我们就需要将数据分出来
对此就需解决上述问题,方案:

  1. 对于变长的包, 还可以在包和包之间使用明确的分隔符(应用层协议, 是程序猿自己来定的, 只要保证分隔符不和正文冲突即可在。报文特殊字符(\r\n)。
  2. 对于定长的包, 保证每次都按固定大小读取即可; 例如上面的Request结构, 是固定大小的, 那么就从缓冲区从头开始按sizeof(Request)依次读取即可。定长报文(确定报文长度)。
  3. 通过组合的策略解决问题
  4. 而对于UDP来说就不会有这种问题,因为UDP有明确的数据边界,并且站在应用层来看使用UDP的时候要么收到完整报文,要么不收。

TCP/UDP对比

  • TCP适用于需要可靠传输的情况, 应用于文件传输, 重要状态更新等场景;
  • UDP用于对高速传输和实时性要求较高的通信领域, 例如, 早期的QQ, 视频传输等. 另外UDP还可以用于广播
  • 各自有各自的优点,TCP的可靠性是中性词表示着它们适用于不同的场景。

用UDP如何实现可靠传输(经典面试题)

其实就是参考TCP协议实现可靠性的办法

  1. 超时重传,若隔一段时间后没收到应答,就重发数据
  2. 序列号,确保数据顺序,以及去除重复的数据
  3. 确认应答,确认数据确实发送过去

连接其他机器指令:telnet

telnet + ip + port

TCP层面相关实验理解listen的第二个参数backlog

当没有accept,也是能完成三次握手进行连接(表示即使没有accept不会影响)
此时底层tcp会在自己的连接中,维护一个全连接队列,队列中有效节点的个数是有上限的(也就是listen的第二个参数backlog + 1个,超过后就会变成半连接状态)
如下图backlog的情况:
在这里插入图片描述
下图是backlog = 6 + 1 当出现第8个连接时就会出现 SYN_RECV状态
这是因为,Linux内核协议栈为一个tcp连接管理使用两个队列:

  1. 半链接队列(用于保存处于SYN_SENT和SYN_RECV状态的请求)
  2. 全链接队列(Accept队列)用于保存established状态,但是应用层没有调用accept取走的请求

此处的全连接队列的长度就会受到listen第二个参数backlog的影响,当该队列满后,就无法让后面的连接状态为established(建立),就会形成SYN_RECV(SYN连接请求)状态

在这里插入图片描述
该半连接状态并不会持续很久,它会等待一会尝试连接,当有全连接状态退出时,就能变成全连接状态,否则就会消失

http://www.yayakq.cn/news/53617/

相关文章:

  • 西安网站建设有那些公司好大地资源在线观看视频在线观看
  • 一个网站可以做几个关键词wordpress redis插件
  • 永嘉营销网站建设成都那家网站建设好
  • 做资源网站需要什么软件网页布局排版
  • php 网站共享变量两个wordpress单点登录
  • 桂林微信网站如何去除痘痘效果好
  • 贵阳建设工程招投标网站网站设计的主要特点
  • 汕头建站平台成都专业做网站公司哪家好
  • 免费p2p网站建设深圳做网站要多少钱
  • 银川公司网站建设成都网站定制建设
  • asp+php+jsp网站开发成都哪里好玩适合年轻人
  • 免费申请网站空间及域名空间ip地址访问网站
  • 为什么做网站ppt北京网站设计研究与开发公司
  • wordpress建一个网站吗舞台灯光网站建设
  • 怎样下载模板做网站网页设计与制作教程课后答案第三版
  • 扬中新网网门户网站优化怎么做
  • 百度网站关键词和网址wordpress 4.2 zh cn
  • 什么网站做h5好网站建设进度计划
  • 1688企业网站建设营销策划的六个步骤
  • 扬州哪里做网站好苏州高端网站制作机构
  • 网站免费维护建立网站网站建设套餐服务
  • 响应式网站设计公司做生物学的网站
  • 湖北建设网官方网站国内app公司排名
  • 人社部能力建设中心网站wordpress 做仿站
  • 推荐上海网站建站品牌检察院门户网站建设成效
  • 淮安网站开发工程师招聘网广东建设网站公司
  • 网站 用户登陆 模板app分销系统开发
  • 怎么开通网站平台池州网站建设jidela
  • 景宁建设局网站官网wordpress有一个100的缩略图
  • 深圳集团网站建设企业吴江公司网站建设电话