TCP
文章平均质量分 82
春夜喜小雨
hikvision C++ C noob
展开
-
关于RTSP_RTP_RTCP协议的深刻初步介绍
前记作为一个软件工程师,特别是偏向安防应用或者互联网对接,都应该听说RTSP,RTP,RTCP等协议的概念。本篇博文详细介绍一下关于RTSP等协议,让读者更加方便的理解透彻。另外后续还会从RTSP的应用方面继续编写。三个协议简单描述RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网原创 2021-09-24 09:49:00 · 1693 阅读 · 1 评论 -
epoll高效IO复用
前记前两篇博文讲了一下select 和poll,其实select和poll实现机制相同,内核调用函数也相同,只不过poll突破了最大监听连接数目的限制。今天讲一下epoll。对比select,poll,epoll的改进还是很令人兴奋:支持一个进程打开较大数目的文件描述符(fd)select模型对一个进程所打开的文件描述符是有一定限制的,其由FD_SETSIZE设置,默认为1024/2048。这对于那些需要支持上万连接数目的高并发服务器来说显然太少了,这个时候,可以选择两种方案:一是可以选择修改F原创 2021-09-24 09:47:21 · 148 阅读 · 0 评论 -
IO多路复用之poll函数
select 机制缺点:1.每次调用 select(),都需要把 fd 集合从用户态拷贝到内核态,这个开销在 fd 很多时会很大,同时每次调用 select() 都需要在内核遍历传递进来的所有 fd,这个开销在 fd 很多时也很大。2.单个进程能够监视的文件描述符的数量存在最大限制,在 Linux 上一般为 1024,可以通过修改宏定义甚至重新编译内核的方式提升这一限制,但是这样也会造成效率的降低但是select最大的优点是许多平台都支持。poll机制介绍select() 和 poll(原创 2021-09-24 09:46:26 · 469 阅读 · 0 评论 -
IO复用之select模型
IO复用io复用在linux系统中是一个很重要的技术,复用在这里的理解我认为是单个进程或者线程用某种模式可以对多个io进行处理,而不是一个进程或者线程只处理一个io。一般情况下,处理socket通信一个线程或者进程在处理读写的时候要么阻塞在那一直等要么非阻塞然后过会查看是否可读可写,这样会浪费大量的资源,假如需要对多个套接字进行处理读写那么得开很多个线程或者进程,IO复用技术就是解决这个问题。本节详细讲解io复用模型 select。select模型及函数定义模型机制select模型如原创 2021-09-24 09:45:02 · 347 阅读 · 0 评论 -
深刻理解socket编程中的read&&write
前记本文内容基本复制粘贴来自互联网博客,由于实在写的太好,所以特此再总结下。先放个图,下图来自以下链接:https://www.cnblogs.com/junneyang/p/6126635.html,在这里感谢博主总结的这个图!该图基本总结了wirite和read的各种情况,下面再详细进行说明吧!以下内容很多摘自https://www.cnblogs.com/promise6522/archive/2012/03/03/2377935.htmlread/write 回溯首先,.原创 2021-09-24 09:43:50 · 2305 阅读 · 0 评论 -
TCP的三次握手与四次挥手的深刻总结
TCP协议报文构成TCP/IP协议是个协议族,包含各种协议这里不再叙述,主要分为链路层、网络层、传输层、应用层。这里主要讲一下面向连接过程的传输层TCP协议。它的报文结构如下图:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个...原创 2019-06-20 00:40:16 · 397 阅读 · 0 评论