网络
文章平均质量分 90
网络基础
Minor王智
好好学习,天天向上!
展开
-
Netty基础组件和常见面试问题(粘包、半包)
对于Selector的#select()进行周期性的计数,当发生依稀空转就进行一次计数,如果在某一个周期内连续法身了n次空转,说明就发生了epoll的空转问题。当Channel被创建时,它将会被自动地分配一个新的ChannelPipelint,每一个Channel都有自己专属的ChannelPipeline,这个关联关系是永久的。半包的发生情况就是一个完整语义的数据包被分成了多次的数据包接收,就存在半包的问题,如果不做控制,服务端并不知道接收到的数据包是一个不完整的。......原创 2022-07-18 20:27:57 · 515 阅读 · 0 评论 -
Linux对网络通信的实现原理(select、poll、epoll)
当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知应用程序去读写,如果这次读写没有处理完数据,那么下次调用epoll_wait()是,OS还会继续通知应用程序继续读写,如果你一直不处理完数据,OS会一直通知你。select的优点是跨平台支持,缺点是单个进程的文件描述符是有OS控制的,Linux最大是1024个,但是可以修改。Linux的5种IO模型阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO,前面四种都是同步的模式,只有最后一种是异步的。...原创 2022-07-18 20:24:41 · 676 阅读 · 0 评论 -
IO多路复用和Reactor模型
虽然这种模式下引入了线程池,效率得到了一定的提升,但是毕竟是采用单Reactor架构,所有的事件都是交给单个Reactor负责,在面对瞬间的高并发连接场景,单Reactor多线程模型仍然性能不佳。Reactor模型是对事件处理流程的一种模式抽象,是对IO多路复用模式的一种封装,Reactor又叫反应器,在这里特指的是对各种事件的反应处理。为了优化单Reactor模型的性能瓶颈,将原来单独的Reactor的功能进行分解为连接处理器和通信处理器,由多个不同的Reactor共同完成网络通信任务。...原创 2022-07-18 20:22:44 · 1407 阅读 · 0 评论 -
计算机网络(TCP协议)
被称为面向连接的传输层控制协议,这是因为在一个应用程序给另一个应用程序发送数据之前这两个进程需要相互先"握手"。,如果一台主机上的进程A与另一台主机上的进程B存在一条TCP连接,那么应用层数据可以从A->B,也可以C->A,并且这可以是同时发生的;,在一个TCP连接中是点对点的通信,所谓的"多播"模式,TCP是不支持的。客户端首先要发送一个特殊的TCP报文段,服务器用另一个特殊的TCP报文段来响应,最后客户在用第三个特殊TCP报文段最为应答,前两个报文段不承载真实数据或叫,第三个报文段可以承载数据,这几原创 2022-06-27 23:12:46 · 453 阅读 · 0 评论 -
计算机网络(HTTPS)
HTTP本身不具备加密的功能,所以无法做到对通信整体数据的加密处理。TCP/IP协议簇的工作机制在所有连通链路上都有可能遭到窃听。HTTP协议实现本身非常简单,无论是谁发送过来的请求都会响应,因此不确认通信双方的身份就有隐患。HTTPS = HTTP+加密+认证+完整性保护。HTTPS并不是应用层一种全新的协议,只是HTTP通信接口部分SSL和TLS协议替代而已。SSL是独立于HTTP协议的,其它应用层协议如SMTP、Telnet也可结合SSL使用,SSL已经成为目前网络应用最为广泛的安全技术之一。如果加原创 2022-06-27 23:10:08 · 125 阅读 · 0 评论 -
计算机网络(HTTP上)
HTTP协议和TCP/IP协议簇内的其它众多协议类似,用于客户端和服务端的数据通信,在一条通信线路上必定有一端是客户端,另一端是服务端。HTTP的全名叫,它定义了Web客户端向服务端请求Web的标准方式,同时它也是一个无状态的协议。HTTP不保存状态,也就是说每当有新的请求发送时,就会有对应的新响应产生,协议本身不会保留之前的请求响应结果。这是为了快速的处理大量事务,确保协议的可伸缩性,特意如此设计。:统一资源标志符,HTTP协议使用URI进行互联网资源的定位,在客户端请求资源时,URI需要将作为请求报文原创 2022-06-27 23:08:59 · 208 阅读 · 0 评论 -
操作系统零拷贝技术、PageCache
在早期计算机中,系统的I/O流程如下:由于整个数据的传输过程都需要CPU亲自参与,如果数据量很大的时候,显然这种模式会消耗 大量CPU时间,于是直接内存访问DMA技术就诞生了。DMA是一种特殊的芯片,它可以控制设备控制器和内存数据交互,无需CPU干预控制和拷贝过程。技术并不是一次拷贝也没有,而是减少文件的拷贝次数。:内存文件映射,操作系统可以通过mmap()函数将磁盘上的文件映射到内存的一块区域,进程可以像读写内存一样来读写该文件。在传统的read()函数中,read函数会将内核缓冲区数据原创 2022-06-27 23:07:02 · 278 阅读 · 0 评论 -
计算机网络(分层和协议)
计算机间通过网络通信时事先要达成的一种约定和数据传递规则,这种约定由不同的厂商、不同的操作系统之间,只要遵循相同的规则就能够事先信息互换、通信。反之,计算机之间无法解析对方的数据。互联网中常见的协议有IP、TCP、UDP、HTTP、SMTP、FTP等,局域网LAN中常见的协议有IPX/SPX等。分组交换是指将大数据翻个成一个个叫做package的较小的单位进行传输的方法。一个较大的数据被分为多个分组时,为了标明是原始数据的哪一部分,就有必要将分组的序号写入包中,接收到包后,解析包结构得到序号再根据序号...原创 2022-06-26 22:56:42 · 173 阅读 · 0 评论