tcp/udp的并发,一次公开课的收获

简介: tcp/udp的并发,一次公开课的收获

零声学院公开课的一次知识整理:

1: 思考TCP的并发:

如何实现tcp的并发?

1:I/O多路复用是不错的选择。

2:如果是高并发的web服务器,应该怎么考虑?

1:保证连接数量可以达到一定的量。 (重点是文件fd的限制,和网络代码逻辑的设计)

2:保证在连接数的基础上,业务后台处理(数据库,业务,https等)能达到一定的量。

3:可以使用reactor模式进行实现

4:协程处理。

3:可以试试reactor模式的websocket的实现。 (思考reactor模式的设计==》回调函数触发)

4:需要理解Posix api相关的接口及参数。

5:需要了解网络上开源库并发实现(redis, mysql, nginx, haproxy)

2:思考UDP的并发:

1:udp的使用场景:

游戏开发,音视频,高速下载

2:如何实现udp的高并发?

可以模拟tcp的三次握手,当收到一个client的连接,可以新建一个fd进行通信。

在udp协议的基础上,实现应用层协议对udp报文进行控制。

3:网络中相关概念

端口: 实际上操作系统中并没有相对应的硬件,叫做端口。

在网络通信中,端口的概念只是tcp/udp报文头中的一个字段,用来过滤网卡对报文的接收。

socket: 翻译是 插座

这里的socket 是指计算机中fd ==>五元组(源ip,源端口,目的ip,目的端口,协议)

相关的接口调用fd进行发送,实际上是根据对应关系找到五元组进行发送的。

4:作为一个开发人员,如何提升及巩固网络开发能力?

尤其是c/c++,对底层要求和个人积累沉淀很重要。

要向有效提升,需要有意识地对底层需要地技术栈进行积累和沉淀。

在一定地基础和沉淀前提下,可以试着把自己的知识整理成相关的库试试:

例如:

ntyco 协程的开源库

协程用在哪里,原语,切换,调度,性能测试,多核

ntytcp 用户态协议栈

11个状态迁移,sendbuff,recvbuff,epoll

5:衍生需要了解的其他技能:

1:虚拟内存, 如何处理内存泄漏相关问题。

2:rpc的实现及理解

3:云服务器,微服务相关知识

4:分布式,集群相关

5: 项目构思,软技能的积累

目录
相关文章
|
1月前
|
网络协议
Qt中的网络编程(Tcp和Udp)运用详解以及简单示范案例
Tcp和Udp是我们学习网络编程中经常接触到的两个通讯协议,在Qt也被Qt封装成了自己的库供我们调用,对于需要进行网络交互的项目中无疑是很重要的,希望这篇文章可以帮助到大家。 是关于Qt中TCP和UDP的基本使用和特点:
168 7
|
2天前
|
缓存 网络协议 算法
TCP、UDP是如何流量、拥塞控制的?今天一口气讲透!
TCP、UDP是如何流量、拥塞控制的?今天一口气讲透!
|
2天前
|
网络协议 Windows
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
|
4天前
|
网络协议 视频直播 SDN
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
16 1
|
5天前
|
网络协议
|
7天前
|
网络协议 安全 Java
面试热点问题之 - TCP/UDP
面试热点问题之 - TCP/UDP
21 1
|
19天前
|
网络协议 Java 数据处理
(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从Java程序员的角度出发,详细解读Java的网络编程核心内容。
|
1月前
|
网络协议 网络架构
【网络编程入门】TCP与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
|
1月前
|
监控 网络协议 程序员
不再困惑!一文搞懂TCP与UDP的所有区别
**TCP与UDP是网络协议,TCP提供可靠连接(面向连接、顺序传输、错误检查),适合HTTP、FTP、SMTP等需要数据完整性的应用。UDP则是无连接、快速但不可靠,常用于DNS、RIP、SNMP等实时或效率优先的场景。**
44 0
|
1月前
|
缓存 网络协议 网络性能优化
计算机网络—传输层-tcp、udp协议详解
计算机网络—传输层-tcp、udp协议详解