![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 96
风起、风落
大三在读 但行好事,莫问前程
展开
-
【计算机网络】socket编程
如:你在淘宝上买了一件衣服,卖家发货后,从广东省发货 到 你所在的地区 ,最终包裹成功到达你的手上,你还需要决定这个快递该怎么用。如:唐僧说要去西天去取经,唐僧所对应的寺庙是A主机,西天的大雷音寺是B主机,唐僧并不是到大类饮食就完了,这只是他的手段,在进行发和收数据时,在TCP层没有报文的概念,收到一堆的数据,把这一堆的东西一次将给上层的应用层,也可一个字节一个字节交。如:收快递,收一个就是一个完整的快递,具体的快递不可能收半个或者一个半,若对方发了三次,你就必须收三次。原创 2023-08-05 13:07:14 · 2778 阅读 · 36 评论 -
【计算机网络】高级IO——select
read/recv 等 文件接口只有一个文件描述符想要 让一个接口等待多个文件描述符,而read等接口是不具备这个能力的操作系统就设计一个接口select,用于多路复用select 作用1.等待多个文件描述符2.只负责等(没有数据拷贝的能力)用户把数据交给操作系统,同样操作系统也要 通过这些输出型参数 把结果 交给用户为了让 用户 和 操作系统之间进行信息传递,就把参数设置为 输入 输出型参数timeout 是一个输入 输出型参数timeout的数据类型 为。原创 2023-10-05 09:50:20 · 1044 阅读 · 102 评论 -
【计算机网络】poll | epoll
第三种 小于0等待失败 返回-1如:想要等待下标为1 和2的文件描述符,但是下标为2的文件描述符根本不存在,就会等待失败。作为就绪队列的节点,需要包含文件描述符fd 以及 revent (操作系统告诉用户 关心的文件描述符的那些事件就绪)等待失败 返回-1如:想要等待下标为1 和2的文件描述符,但是下标为2的文件描述符根本不存在,就会等待失败。当特定的文件描述符上有对应的事件发生了,就可以将对应已经发生事件的节点 链入就绪队列中。(每次都需要内核需要告诉用户,关心的文件文件描述符上的那些事件就绪)原创 2023-10-09 18:58:26 · 2705 阅读 · 104 评论 -
【计算机网络】高级IO初步理解
IO:表示 输入 输出当对方把连接建立好,但是不发数据而我是一个线程,正在调用 read 来读,就会阻塞,一直等数据发送过来即读取条件不满足的情况下,read或recv 只会等待无论是有数据时的拷贝 ,还是没有数据时的等待两者的时间成本,全都算到了用户头上在用户的角度,IO= 等+数据拷贝单位时间内,等的比重越低,IO效率越高当IO条件满足时,称为IO事件就绪用户把数据交给操作系统,同样操作系统也要 通过这些输出型参数 把结果 交给用户。原创 2023-10-03 18:03:57 · 1093 阅读 · 67 评论 -
【计算机网络】数据链路层
局域网是一份公享的资源,当主机A给主机B发送消息时,可同时存在 主机C 给主机D发送消息。在进行报文和有效载荷分离时,发现数据帧是要去macA,而只有主机A的mac地址为macA。从学号转成姓名,先在教室中询问,所有同学收到,只有一名同学处理,其他同学丢弃,从主机B到路由器F,源mac地址 是 主机B 目的mac地址是路由器F。首先 获取F的mac地址,再根据对方的mac地址 封装 mac帧,发送数据。主机A发现自己的mac地址 与 报头的目的mac地址相同,就由主机A接收到。原创 2023-09-26 11:52:51 · 1748 阅读 · 114 评论 -
【计算机网络】IP协议(下)
1. 当一个报文到了某个路由器内部,询问路由器时,首先要告诉路由器自己要去哪里,所以IP报头中包含目的IP。若有两种客户端发送报文,第一种客户端的报文可能进行分片,第二种客户端的报文也可能进行分片,两者可能糅在一起。使用的是 DHCP 技术(子网是由路由器划分好的,局域网的所有主机的IP地址,都是从路由器中申请的)通过偏移量 进行排序,每一个偏移量之间的差值应该是相同的,若差值不同,则中间报文丢失了。发现目的IP122…到了附近,你又不认识路了,又问了一个大爷,询问同济大学怎么走,最后到达同济大学。原创 2023-09-24 14:57:47 · 677 阅读 · 93 评论 -
【计算机网络】IP协议(上)
IP是给TCP提供服务的,当TCP要IP把数据发送时,IP询问TCP 是向尽快把数据交付,还是发送数据时,挑一条不会丢包的路径。C类网络的第一个比特位为1,证明不是A类,第二个比特位为1,证明不是B类,第三个比特位为0,证明是C类。(因为要在学校里快速的能够进行消息的通知,就需要把每个院都有自己的群,为了更好管理,就要带上学号)张三属于计算机学院的学生,计算机学院的编号为10,他属于该学院的210,他的学号为10210。考了几次,其中有一次考了99,不是满分,张三就去找他老爹,他老爹不满意张三没有考满分。原创 2023-09-22 15:24:33 · 1632 阅读 · 94 评论 -
【计算机网络】传输层协议——TCP(下)
当打开画图板时,若不关闭画图板,而直接将电脑关机,此时操作系统就会提示,当前系统中还有正在运行的进程,是否要终止。当前判定网络拥塞了,主机A向主机B发送一个报文,先进行询问,若收到应答,则主机A再发送两个报文向主机B。底层网络出现问题,对应的链接在客户端上,操作系统能识别到网络无法正常通信,所以链接维护就没有意义,此时再有客人来询问,你就可以告诉他,里面已经满了,但是再过几分钟就有位置了,可以排队等待下。若海底捞的老板,在外面安排非常多的座位,用于客户排队,但排很长的队,客户是不愿意的。原创 2023-09-19 09:04:06 · 3292 阅读 · 111 评论 -
【计算机网络】传输层协议——TCP(中)
操作系统内会存在多个已经建立好的链接,操作系统是需要把这些建立好的链接 管理起来的而管理的本质是 先描述 在组织操作系统内为了管理连接维护的数据结构先使用 struct tcp_link结构体,内部包含链接的各种字段再使用链表 将其组织起来创建并维护链接是有成本的1.内存空间的消耗(想要创建链接,就需要创建链接对象,所以就要new/nalloc链接对象)2.CPU资源的消耗(维护定时器,来保证超时重传等)原创 2023-09-15 20:34:07 · 2800 阅读 · 103 评论 -
【计算机网络】传输层协议——TCP(上)
如:你回家 你妈给你做了一桌子菜,当你吃饭时,你妈一直给你加菜,直到你吃不动时,就跟你妈说,吃饱了,但如果你妈依旧给你加菜,你肯定受不了。TCP本身包含了序号,就可以将TCP报文按序号排序,就可以按序号由小到大入队列,这样就保证上层拿到的数据是有序的。客户端给服务器发送消息时,服务器要给客户端做出响应,响应中携带对应的TCP报文,TCP报文中包含TCP报头。如:你是一家餐厅的老板,在餐厅中有各种各样的人,有的人是来吃饭的,有的人是来找人的,有的人是来拿外卖的。原创 2023-09-13 21:06:39 · 4003 阅读 · 106 评论 -
传输层协议——UDP
再将指针p,指向最开始位置,并将p强转成 struct udp_header类型 ,指向结构体中的源端口号、目的端口号 、udp长度、校验和。如:在淘宝上买了五件商品,编号为1-5,先买的是1号商品,时间是不确定的,所以1-5号 谁先谁后到 是不确定的。UDP报头中包含16位目的端口号,将一个报文发送到主机上,根据目的端口号向上交付给应用层,绑定该端口号的进程。操作系统动态分配的端口号,客户端程序的端口号,就由操作系统从这个分为分配的。不用自己处理,只要发的是完整的,收的就是完整的,对方发几次,收几次。原创 2023-09-12 21:07:01 · 1988 阅读 · 58 评论 -
【计算机网络】HTTPS
如:你是一个餐厅的老板,餐厅做的菜是否符合食品安全,你是不知道,就算你说好的,别人凭什么相信你。当使用公钥 加密, 使用私钥解密时,就算让黑客将数据截获,也没有关系,因为只有私钥才能解密。在这个加密和解密的过程中,需要一个或者多个中间的数据,辅助进行这个过程,这样的数据称为。将新的报文转发给客户端,因为客户端请求的服务器端,所以就默认是服务器端发送的报文。获取到客户端的对称秘钥X后,在与服务器的公钥S结合,重新形成 新的加密报文。通过验证,将内容和签名 分开,用相同的hash算法,形成对应的散列值。原创 2023-09-09 16:21:18 · 2713 阅读 · 114 评论 -
【计算机网络】HTTP(下)
之后访问时,Http 请求 都会携带 session id,就可以通过session id 去确认是否存在,若存在则可以访问这个资源。因为 XXX麻辣烫 是临时搬迁,所以并不了解什么时候搬回到东门,导致每次吃麻辣烫都要去东门看看,如果没在,再去西门吃麻辣烫。如:访问了file1,过了一段时间,还想访问file1,http并不知道前段时间访问过file1,还会进行请求。在你们学校的东门,门口有一条路,这条路正在修路,但依旧可以走过去,所以你和你的朋友前往麻辣烫店吃了一次。原创 2023-09-07 19:41:31 · 2939 阅读 · 100 评论 -
【计算机网络】HTTP(上)
对于回调函数 HandlerHttp,在是一个完整的http请求报文的前提下,分别将状态行 分隔符 有效载荷 添加到 response响应中,并将 响应返回。因为URL本身用一些字符作为特殊字符,所以在使用特殊字符时,所以特殊符号被转化为16进制格式数字,用来和URL本身的特殊字符进行区分。将需要转码的字符转为 16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。服务器收到的就为 16进制格式,而不想要16进制格式,想要特殊符号 ,就需要进行。原创 2023-09-03 16:33:43 · 4618 阅读 · 130 评论 -
【计算机网络】序列化与反序列化
在命名空间Protocol_n中,定义两个类,分别为Request类和Reponse类若读到 字符串风格的Request ,就需要通过序列化 转成 结构化的数据自己定义 将结构化的数据 转化为 字符串假设空格作为分割符使用to_string 将任意类型转化为string使用 宏, 将SEP表示为空格将_x _y _op 使用空格连接起来提供一个函数StringSplit ,去掉字符串中的空格,分别填入vector数组中,作为vetcor数组中的元素。原创 2023-08-29 19:01:22 · 2744 阅读 · 116 评论 -
【计算机网络】日志与守护进程
在后台运行sleep 10000PPID是bash的PID值PGID是 进程组 (PGID相同就为同一个进程组,以从第一个进程进行命名)SID是 会话IDTTY是 终端 若为?,则说明跟终端没有关系,若为具体的如pts/5,则为终端文件在终端2中输入,在终端1中可以查看到两者的PGID相同,所以属于同一个进程组,并且以sleep 1000 作为组长通过查询会话ID 21668,发现bash的PID PGUD SID 都为21668。原创 2023-08-22 16:34:23 · 2137 阅读 · 136 评论 -
【网络通信】socket编程——TCP套接字
TCP依旧使用代码来熟悉对应的套接字,很多接口都是在udp中使用过的所以就不会单独把他们拿出来作为标题了,只会把第一次出现的接口作为标题。原创 2023-08-09 22:55:29 · 1567 阅读 · 52 评论 -
【计算机网络】网络基础
实际上是 你把话说给了你的台式机,通过电话协议,将信息传递给另一个台式机,此时你朋友的台式机把收到的数据进行协议解析,把声音播放到你朋友的耳边。古代打仗,每个士兵都有自己的武器(刀、枪、剑等),但士兵之间不是互相孤立的,而是互相协同的刀与枪配合、枪与剑配合。每一个同学都有自己的名字,老师大声在教室询问,张三为什么布置的作业没有写,教室内的所有的同学都听到了,如:你的老师夸你,数学有考100分的能力,但并不说明你一定能考100,大概率考100,也有可能考99。原创 2023-08-01 23:18:21 · 2250 阅读 · 108 评论