![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网阅读笔记
zakariyaa33
这个作者很懒,什么都没留下…
展开
-
2022-3-4
2022-3-4epoll实现多路IO转接边沿触发和水平触发epoll实现多路IO转接#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<arpa/inet.h>#include<ctype.h>int main((int argc, char *argv[]){ int i,n,j; int listen原创 2022-03-04 15:34:49 · 57 阅读 · 0 评论 -
2022-3-2
2022-3-2pollepollpoll使用select的时候,如果出现文件集合散乱的情况,例如我们需要监听4和1023,这时就需要一个1024的循环,但是其中只有两个标志位是我们需要的,这样会诞生很多无用操作,为了改进这一点,poll出来了fd在不需要使用的时候也赋为-1epoll与poll不同的是,poll使用一个poll的结构体数组来管理文件描述符,而epoll是用一颗红黑树来管理红黑树根节点的创建操作监听红黑树阻塞监听...原创 2022-03-02 22:24:54 · 117 阅读 · 0 评论 -
2022-3-1
2022-3-1selectselect的相关函数网络字节序转换实现selectselect、poll、epoll都是实现io多路复用的手段select函数有5个参数int nfds:表示管理的数量,例如下图中就应该为8fd_set *readfds:表示应当监听的会发生读操作的文件的文件描述符集合,例如c1用户发送连接请求,这时lfd就会收到c1发来的请求,于是lfd,也就是文件3就会发生读操作fd_set *writefds:表示应当监听的会发生写操作的文件的文件描述符集合fd_set原创 2022-03-01 14:38:45 · 381 阅读 · 0 评论 -
2022-2-28
2022-2-28非阻塞IO与阻塞IO区别阻塞IO非阻塞忙轮询响应式-多路IO转接非阻塞IO与阻塞IO区别阻塞IO阻塞io就是服务器建立了监听套接字后,直接使用accept建立套接字等待用户连接,如果用户没有及时连接的话,服务器就进入阻塞,直到用户有连接进来为止非阻塞忙轮询非阻塞忙轮询是阻塞io的升级版,他没接到用户连接的时候不是进入阻塞傻等,而是挂起,过了一段时间后再来查看是否连接响应式-多路IO转接再升级版就是多路IO转接服务器会创建一个select\poll\epoll,来进行转原创 2022-02-28 15:28:08 · 234 阅读 · 0 评论 -
2021-12-12
2021-12-12运输层TCP拥塞控制原理慢启动拥塞避免快速恢复运输层TCPTCP在关闭的时候,会互相发出终止报文拥塞控制原理当网络中发生拥塞时,通常表现为丢包,所以当发送端检测到计时器超时或冗余ACK时,就会知道网络拥塞了,这时候TCP会调节发送方的拥塞窗口(cwnd)的长度具体来说就是拥塞发生时,cwnd减小,正常传输时,cwnd增大慢启动当一条TCP连接开始时,其cwnd通常设置为一个MSS的较小值,则其传输速率为MSS/RTT当一条报文被ACK时,发送方就增加一个MSS,如图原创 2021-12-12 14:35:00 · 132 阅读 · 0 评论 -
2021-12-08
2021-12-08运输层面向连接的运输:TCP序号和确认号估计往返时间运输层面向连接的运输:TCPTCP报文段结构 序号和确认号TCP报文段首部中最重要的字段是序号和确认号,他是TCP可靠传输的关键部分序号:TCP在传输数据的过程中,将数据看成一个无结构、有序的字节流,他会隐式地为数据流中的每一个字节编号,而报文首部中的序号就是传送的该报文中包含的数据的第一个字节的编号,例如当最大传输块(MSS)为1000字节,数据流为500000字节的时候:则第一个报文段的序号是0,第二个是1000,以原创 2021-12-08 16:26:13 · 71 阅读 · 0 评论 -
2021-12-07
2021-12-07运输层可靠数据传输原理运输层可靠数据传输原理可靠数据传输(rdt)有各种不同版本的协议经完全可靠信道传输:rdt1.0发送端仅发送,接收端仅接收经有差错信道传输:rdt2.0接收端会使用检验和查错,并反馈给发送端圆圈表示状态,横线上方表示发生的事件,横线下方表示作出的响应注意发送端在进入等待ACK或NAK状态的时候,只有接收到来自接收端的ACK(全对)反馈后,才会进入等待调用状态,处在等待ACK或NAK状态的时候,发送方不会从上层获得更多数据了,所以rdt2.0被称为原创 2021-12-07 21:12:14 · 1521 阅读 · 0 评论 -
2021-12-06
2021-12-06运输层无连接运输:UDPUDP报文段结构运输层无连接运输:UDP为什么有些应用不是用有连接保障的TCP,而使用UDP:1、关于发送什么数据和何时发送的应用层控制更精细使用TCP连接的话,如果应用与服务器间的通路拥挤,TCP会抑制发送端,而UDP没这个烦恼2、无需建立连接TCP连接需要经历三次握手,UDP不用,不会引入连接时延3、无连接状态TCP需要在端系统中维护连接状态,连接状态包括:接收和发送缓存、拥塞控制参数和序号及确认号,UDP不需要维护这些状态所以应用运行在UD原创 2021-12-06 21:15:35 · 43 阅读 · 0 评论 -
2021-12-1
2021-12-1应用层UDP套接字编程TCP套接字编程应用层UDP套接字编程套接字分组上有目的地址和源地址,目的地址可能由我们指定,源地址也就是发送方的IP地址和端口号,则由底层操作系统自动完成serverName被设定为了字符串’hostname’,这里的’hostname’是我们提供的服务器IP或服务器的主机名的字符串serverPort是端口号这一行创建了该客户的套接字,名字是clientSocket,AF_INET指定了底层网络使用IPv4,SOCK_DGRAM表示我们使用的是U原创 2021-12-01 21:22:40 · 877 阅读 · 0 评论 -
2021-11-30
2021-11-30应用层DNSDNS工作机理DNS记录和报文应用层DNSDNS提供的服务就是将主机名转换为其IP地址,其做法如下除此之外,在主机拥有别名的情况下,用户还可以调用DNS,获得规范主机名和主机的IP地址,邮件服务器别名同理DNS还可以负责负载分配,有些繁忙的站点会冗余地分配在多台服务器上,这些服务器都有自己的IP地址,当用户访问该站点的时候,DNS会循环地返回站点的IP地址集合,而用户总是向排在最前面的IP地址发出报文,所以DNS就可以分配这些冗余服务器DNS工作机理由于主机的原创 2021-11-30 21:41:50 · 1620 阅读 · 0 评论 -
2021-11-29
2021-11-29应用层Web和HTTPHTTP报文格式HTTP响应报文cookie条件getSMTP和HTTP应用层Web和HTTPHTTP报文格式HTTP响应报文下面提供一个经典的响应报文该响应报文分为三部分:一个状态行、六个首部行,然后是实体体(表现为data data)实体体是报文的主要部分,它包括了所请求的对象本身状态行分为三个字段:协议版本字段、状态码和相应状态信息首部行:Date指的是服务器从文件系统中检索到请求对象,将该对象插入响应报文并发送响应报文的时间Serve原创 2021-11-29 21:28:38 · 901 阅读 · 0 评论 -
2021-11-25
2021-11-25应用层应用层协议原理Web和HTTP非持续连接和持续连接非持续连接三次握手持续连接HTTP报文格式请求报文应用层应用层协议原理套接字是应用程序进程和运输层协议之间的接口,发送端进程将报文送入套接字,传输过后接收端套接字会接受这些报文我们大体能从四个方面对运输层协议进行分类:可靠数据传输、吞吐量、定时和安全性应用层协议定义了:1、交换的报文类型,例如是请求报文或响应报文2、各种报文类型的语法3、字段的语义4、确定一个进程何时以及如何发报文,对报文的响应规则Web和HTT原创 2021-11-25 21:13:26 · 145 阅读 · 0 评论