
计算机网络
文章平均质量分 95
m0_72940975
在校大学生
展开
-
Reactor网络模式
可以在当前服务器的基础上接入线程池,当recver回调读取完数据并完成报文的切割和反序列化之后,就可以将其构建成一个任务然后放到线程池的任务队列中,然后服务器就可以继续进行事件派发,而不需要将事件耗费到业务处理上面,而放到任务队列当中的任务,则由线程池当中的若干个线程进行处理。下一次Dispatcher在进行事件派发的时候就会帮我们关注该套接字的写事件,当写事件就绪就会执行该套接字对应的EventItem结构中的写回调方法,进而将outbuffer中的响应数据发送给客户端。原创 2023-10-09 16:30:43 · 513 阅读 · 0 评论 -
【Linux】多路转接 -- epoll
struct epoll_event结构当中有两个成员,第一个成员events表示的是需要监听的事件,第二个成员data是一个联合体结构,一般选择使用该结构当中的fd,表示需要监听的文件描述符。epoll_ctl 函数用于向指定的epoll模型中注册事件,它不同于seletct()的一点就是,select在监听事件时告诉内核要监听什么类型的事件,而它是先注册要监听的事件类型。epoll的高性能,是有特定的场景的,如果场景选择不合适,epoll的性能可能适得其反。原创 2023-08-09 09:14:12 · 182 阅读 · 0 评论 -
【计算机网络】应用层协议 -- DNS协议
域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称,例如。com:一级域名,表示这是一个工商企业域名。同级的还有.net(网络供应商)和.org(开源组织或非盈利组织)等。baidu:二级域名,一般对应的就是公司名。www:只是一种习惯用法。原创 2023-08-03 22:19:44 · 1835 阅读 · 0 评论 -
【计算机网络】传输层协议 -- TCP协议
从文章的长度也可以看出,TCP协议是非常复杂的,它之所以这么复杂,就是因为它既要保持可靠性,同时又要尽可能地提高性能。检验和序列号确认应答超时重传连接管理流量控制拥塞控制滑动窗口快速重传延迟应答捎带应答TCP的这些机制有些是通过协议来体现的,有些是通过代码逻辑实现的。TCP定时器此外,TCP当中还设置了各种定时器重传定时器:为了控制丢失的报文段或者丢弃的报文段,也就是对报文段确认的等待时间。原创 2023-07-30 22:03:30 · 3414 阅读 · 0 评论 -
【计算机网络】传输层协议 -- UDP协议
应用层交给UDP多长的报文,UDP就按原样发送,既不会拆分,也不会合并,这就叫做面向数据报。比如用UDP传输100个字节的数据:如果发送端调用一次sendto,发送100字节数据,那么接收端也必须调用一次recvfrom,接收100个字节数据。而不能循环调用10次recvfrom,每次接收10个字节数据。原创 2023-07-28 14:59:01 · 1600 阅读 · 0 评论 -
【计算机网络】应用层协议 -- 安全的HTTPS协议
HTTPS工作过程中涉及到的密钥有三组第一组(非对称加密):用于校验证书是否被篡改,服务器持有私钥,客户端持有公钥。服务器在客户端请求时,返回携带签名的证书,客户端通过公钥对证书进行验证,保证证书的合法性,进而保证证书中携带的服务端公钥的权威性。第二组(非对称加密):用于协商生成对称加密的密钥,客户端收到CA证书中的公钥给随机生成的对称加密的密钥进行加密,服务器通过私钥解密获取到对称加密的密钥。第三组(对称加密):客户端和服务器后续传输的数据都通过这个对称密钥加密解密。原创 2023-07-27 16:44:34 · 2327 阅读 · 0 评论 -
【计算机网络】应用层协议 -- HTTP协议
比如你不小心点了某个链接,这个链接可能就是一个下载程序,当你点击之后它就会通过某种方式将程序下载到你本地,并且自动执行该程序,该程序会扫描你的浏览器当中的Cookie目录,把所有的Cookie信息通过网络的方式传送给恶意方,当恶意方拿到你的Cookie信息后就可以拷贝到它浏览器对应的Cookie目录当中,然后以你的身份访问你曾经访问过的网站。其中HTTP请求是由客户端发送的,因此HTTP请求当中表明的是客户端的HTTP版本,而HTTP响应是由服务器发送的,因此HTTP响应表明的是服务器的HTTP版本。原创 2023-07-26 17:08:04 · 1194 阅读 · 2 评论 -
【计算机网络】简易TCP网络小程序
我们将TCP服务器封装成一个类,当我们定义出一个服务器对象后需要马上对服务器进行初始化,而初始化TCP服务器要做的第一件事就是创建套接字。TCP服务器在调用socket函数创建套接字时,参数设置如下:如果创建套接字后获得的文件描述符是小于0的,说明套接字创建失败,此时也就没必要进行后续操作了,直接终止程序即可。说明一下:实际TCP服务器创建套接字的做法与UDP服务器是一样的,只不过TCP服务器需要的是流式服务,而UDP服务器需要的是用户数据报服务。套接字创建完毕之后我们实际只是在系统层面上打开了一个文件,原创 2023-07-24 23:24:02 · 1887 阅读 · 0 评论 -
【计算机网络】简易UDP网络小程序
在进行绑定的时候需要将IP地址和端口号告诉对应的网络文件,此时就可以改变网络文件当中文件操作函数的指向,将对应的操作函数改为对应网卡的操作方法,此时读数据和写数据对应的操作对象就是网卡了,所以绑定实际上就是将文件和网络关联起来。理论上是这样的,但是我用的是云服务器,云服务器的IP地址是由对应的云厂商提供的,这个IP地址并不一定是真正的公网IP,这个IP地址是不能直接被绑定的,如果要让外网访问,我们需要将IP地址绑定为。构造客户端时需要传入对应服务器的IP地址和端口号,我们这里也可以引入命令行参数。原创 2023-07-22 21:41:23 · 708 阅读 · 0 评论 -
【计算机网络】socket编程基础
当数据在传输层进行封装时,就会添加上对应源端口号和目的端口号的信息,在网络层又会添加上对应源IP地址和目的IP地址,这样一来,通过源端口号和源IP地址就能在网络上标识发送数据的进程,通过目的端口号和目的ID地址就可以在网络上标识接收数据的进程,这就实现了跨网络的进程间通信。同样的,UDP协议虽然是一种不可靠的传输协议,但这一定意味着UDP协议在底层不需要做过多的工作,因此UDP协议底层的实现一定比TCP协议要简单的多,UDP协议虽然不可靠,但是它能把数据快速地发给对方,虽然数据在传输的过程中可能会出错。原创 2023-07-21 15:34:32 · 1142 阅读 · 0 评论 -
【计算机网络】网络基础
也就是说,虽然客户端和服务器可能使用的是不同种类的操作系统,但每个系统实现网络协议栈的方法包括各种细节都是一样的,因此双方对数据进行封包和解包操作都是一样的。原创 2023-07-20 17:37:40 · 462 阅读 · 0 评论