
计算机网络
文章平均质量分 70
计算机网络学习
好吃还得是柚子
首先,少年,答应了别人的事就一定要做到
展开
-
Tomcat详细简介
转载链接:lhttps://blog.youkuaiyun.com/u014231646/article/details/79482195一、概念Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。二、原理Tomcat结构图:Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。一个Co转载 2021-04-18 14:08:57 · 318 阅读 · 0 评论 -
单Reactor和主从Reactor模式介绍
单Reactor模式单Reactor需要响应连接和读写事件,单线程处理任务较多单Reactor连接和读写事件放在一块处理,会互相影响,而且本身读写事件是一个比较耗时的操作,当一个读写事件处理事件太长,那么势必会影响下一个连接事件的处理,影响用户连接,这是个非常不友好的事情,很影响体验。主从Reactor模式1.主从Reactor将会使用两个Reactor,主Reactor响应连接事件,从Reactor响应读写事件2.主Reactor的selector只关注连接事件,接受到一个连接之后,将通道注原创 2021-04-02 15:41:54 · 496 阅读 · 0 评论 -
关于epoll_wait的个人理解的一些记忆
该篇博客类似做笔记的行为,记录自己关于学习IO多路复用过程中的一些个人理解,不喜勿喷,谢谢!!~epoll采用的模式为边沿触发非阻塞I/O水平/边沿触发:指的是epoll_wait()的触发行为阻塞/非阻塞I/O:指的是文件描述符的读写(read)行为使用水平触发非阻塞I/O:如果客户端发送10字节,服务端每次只能读5字节,水平触发就会导致缓冲区不断堆积。如果客户端发送5000字节,这5000字节首部有一个50字节长度的标识,服务器每次读取50字节,可以通过判断标识来决定后面的要不要,如果是水平触原创 2021-03-27 11:00:15 · 2945 阅读 · 0 评论 -
TCP“流和UDP的“保护消息边界“
概述在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。对于UDP,不会使用块的合并优化算法,这样,实际上目前认为,是由于UDP支持的是一对多的模式,所以接收端的skbuff(套接字缓冲转载 2021-03-25 07:59:05 · 447 阅读 · 0 评论 -
Recator模式的一些概念记录
Reactor模式的基本概念Reactor模式是事件驱动模型,有一个或多个并发输入源,有一个Service Handler,有多个Request Handlers;这个Service Handler会同步的将输入的请求(Event)多路复用的分发给相应的Request Handler。从结构上,这有点类似生产者消费者模式,即有一个或多个生产者将事件放入一个队列中,而一个或多个消费者主动的从这个队列中提取事件来处理;而Reactor模式则并没有队列来做缓冲,每当一个Event输入到Service Handl原创 2021-03-22 13:06:13 · 289 阅读 · 0 评论 -
TCP通信粘包问题分析和解决方法
粘包问题分类一种是粘在一起的包都是完整的数据包,一种是粘在一起的包有不完整的包。并非所有的粘包现象都需要处理,若传输的数据为不带结构的连续流数据(如文件传输),则不必把粘连的包分开(简称分包)。但在实际工程应用中,传输的数据一般为带结构的数据,这时就需要做分包处理。在处理定长结构数据的粘包问题时,分包算法比较简单;在处理不定长结构数据的粘包问题时,分包算法就比较复杂。特别是粘在一起的包有不完整的包的粘包情况,由于一包数据内容被分在了两个连续的接收包中,处理起来难度较大。实际工程应用中应尽量避免出现原创 2021-03-16 21:24:21 · 366 阅读 · 2 评论 -
GET和POST的区别总结
概括GET方式请求:浏览器会把httpheader和data并发送出去,服务器响应200(返回数据)POST方式请求:浏览器先发送 header,服务器响应100 continue,浏览器再发送data,服务器响应200ok(返回数据)区别get参数通过ur传递,post放在 request body中。ge请求在u中传递的参数是有长度限制的,而pos没有。get比post更不安全,因为参数直接暴露在u中,所以不能用来传递敏感信息。(实际上两者都不是安全的,因为都可以被抓包捕获)get请原创 2021-02-24 19:45:54 · 191 阅读 · 0 评论 -
TCP/IP四层模型与OSI七层模型
OSI七层模型物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接原创 2021-01-31 08:04:23 · 450 阅读 · 0 评论 -
HTTP的长连接与短连接介绍
在许多因特网应用程序中,客户与服务器在一个相当长的时间范围内通信,其中客户发出一系列的请求并且服务器对每个请求进行响应。依据应用程序以及该应用程序的使用方式,这一系列请求可以以规则的间隔周期性地一个接一个发出。当这种客户—服务器的交互是经由TCP进行时,应用程序的研发人员就应该做出决定,是对每个请求/响应经过各自单独的TCP连接发送,还是所有的请求/响应经由相同的TCP连接发送。前者就是短连接,后者就是长连接。HTTP既能使用短连接也能使用长连接,默认使用长连接。HTTP客户和服务器也能配置成使用短连接。原创 2021-01-27 16:20:49 · 1077 阅读 · 0 评论 -
详解GET与POST的区别
GET 和 POST 的区别一、概述本文的内容源自其他博客的总结,属于笔者的读书笔记,结构如下:HTTP 的请求报文GET 方法的特点POST 方法的特点GET 和 POST 的区别二、HTTP 的请求报文首先我们要解决的第一个问题是:GET 和 POST 是什么?GET 和 POST 其实都是 HTTP 的请求方法。除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS 这 6 个请求方法。所以HTTP 的请求方法共计有 8转载 2021-01-27 15:46:28 · 692 阅读 · 0 评论 -
Socket网络编程心跳包介绍
跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处理断线可能也不是那么好处理。一般,如果只是用于保活还是可以的。心跳包一般来说都是在逻辑层发送空的echo包来实转载 2021-01-26 08:07:42 · 1500 阅读 · 0 评论 -
心跳包、乒乓包、SO_KEEPLIVE
概述心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。长连接断开后一直占用系统资源,可以通过心跳包判断连接是否断开;使用心跳包检测到连接已经死了,就断开连接。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处原创 2021-01-26 08:04:51 · 694 阅读 · 0 评论 -
TCP三次握手、四次挥手
为什么需要三次握手而不是两次握手为了防止已经失效的连接请求报文段被服务端接受,从而产生错误。失效的连接请求:发生超时的”第一个“连接请求。若客户端向服务端发送的连接请求发生超时,客户端在等待应答丢失后,就会再次发送连接请求,此连接请求正常发送至服务器端,服务器端也正常做出应答,并将响应发送回客户端。假如此时采用的是两次握手,此时客户端—服务器端已经成功建立起TCP连接,假设在通信完成并通信结束后,已经失效到达服务器端,此时连接就建立了,服务器端会一直等待客户端发送数据,从而白白浪费服务器的资源而如原创 2021-01-25 09:25:12 · 524 阅读 · 0 评论