计算机网络
mazamu
沉迷学习无法自拔。
展开
-
TCP和UDP可以用同一个端口吗
TCP和UDP同一个端口原创 2022-10-25 10:11:50 · 1377 阅读 · 2 评论 -
TCP和UDP的区别
TCP和UDP的区别原创 2022-10-25 10:04:47 · 912 阅读 · 0 评论 -
HTTP和TCP的区别
HTTP和TCP的区别原创 2022-10-25 09:46:52 · 1100 阅读 · 0 评论 -
链路层提供的服务
链路层提供的服务组帧封装成数据帧,加首部和尾部帧同步链路接入共享介质和MAC地址相邻节点间的可靠交付根据线路特征采用不同操作流量控制协调发送节点和接受节点差错检测应对信号衰减、噪声检测到:重传或丢弃差错纠正接收端直接纠正全双工和半双工差错编码R:冗余比特不能100%可靠。减少R的比特。差错编码分为检错码和纠错码:校验和发送端:接收端:得到checksum为全0或全1.循环冗余校验码(CRC)...原创 2021-10-05 19:51:33 · 415 阅读 · 0 评论 -
计算机网络的网络层相关
网络层中的网络设备有 转发和路由 或者 建立连接(ATM)的功能。网络层服务模型无连接服务数据报网络特点:不事先确定路径每个分组独立确定传输路径不同分组可能传输路径不同连接服务虚电路网络特点:实现确定路径(建立连接)沿该路径传输系列分组系列分组传输路径相同传输结束要拆除连接虚电路介绍特点:1.源主机到目的主机,类似电路的路径(逻辑连接)2.路径中的路由器参与建立连接(建立和维护一个虚电路转发表)3.分组交换(利用全部带宽)4.结合分组交换和电路交换的优点过程:呼叫原创 2021-09-26 21:24:24 · 102 阅读 · 0 评论 -
TIME_WAIT和CLOSE_WAIT的区别
TIME_WAIT四次挥手时,先发送FIN报文就会处于TIME_WAIT状态,这个是为了处理第三次挥手时,对方没有收到第四次挥手,从而多次发送第三次挥手(FIN报文)的情况,经过2MSL之后这个状态就会结束。一般的话,是客户端先向服务器发送FIN报文,则就是客户端处于TIME_wait状态。如果是服务器先发送FIN报文,会出现问题,先发送的就会处于那个TIME_WAIT的状态。服务器断开连接后,重启,会有一段时间重启不上,也就是那个bind()函数出错,得隔一段时间才能恢复,这个情况也可以设置一个TCP的原创 2021-09-08 09:47:11 · 813 阅读 · 0 评论 -
五种IO模型
五种IO模型阻塞IO、非阻塞IO、信号驱动IO、IO复用、异步IO。阻塞IO调用线程等待内核IO操作执行完成,才进行后续操作。非阻塞IO调用线程得到内核IO返回的状态值,如果可执行IO操作就执行,如果不能就做其他事情。阻塞IO与非阻塞IO的区别信号驱动IO应用进程告诉内核,如果数据准备好,就发送一个信号,对SIGIO信号进行捕捉,并调用相应的信号处理函数。IO复用典型的就有select、poll和epoll。就是应用程序向内核注册事件,内核负责对这些事件进行监听,如果事件发生了,则内原创 2021-08-25 10:25:23 · 79 阅读 · 0 评论 -
阻塞IO与非阻塞IO的区别
阻塞IO与非阻塞IO的区别阻塞IO,指的是需要内核IO操作彻底完成后,才返回到用户空间执行用户的操作。阻塞是指用户空间的执行状态。非阻塞IO,指的是用户空间的程序不需要等待内核IO操作彻底完成,可以立即返回用户空间执行用户操作,即处于非阻塞IO状态,内核空间会立即返回给用户一个状态值。阻塞IO:调用线程一直在等待,不能干别的事情。非阻塞IO:调用线程拿到内核返回的状态值后,IO操作能干就干2,不能就干别的事情。...原创 2021-08-25 10:13:38 · 5847 阅读 · 0 评论 -
HTTPS的安全性回答
先清楚一个约定:私钥加密后的内容公钥可解密,公钥加密后的内容只有私钥可以解密。客户端先向服务器发送自己的公钥k1,然后服务器再根据公钥k1生成对称公钥k2,并用k1对k2进行加密,加密过后的内容只有客户端的私钥能够解开,客户端收到之后得到服务器的公钥k2,从而两人可进行对称加密通信。但是中间人可以模仿任意一端进行截取,再发给另外一端,所以不安全。从而引入数据证书,客户端先向机构发送公钥,机构用私钥加密公钥的数字证书发回客户端,客户端再将数据证书发给服务器,服务器找到相应数据证书的公钥对数据证书解密,得原创 2021-08-24 20:45:19 · 77 阅读 · 0 评论 -
Linux网络编程-TCP相关知识
线程同步与时间有关的、空间有关,资源共享、调度随机、缺乏必要的同步机制。协议是一组规则,学习它的规范,按它的规范写代码。比如双方规定先发什么后发什么,先发文件名,再发大小最后发内容。典型协议分层模型结构:OSI七层模型:open system interconnection,内容:物、数、网、传、会、表、应。编写程序一般用:TCP/IP4层模型:网络接口层(物理层、数据链路层)、网络层、传输层、应用层(会话层、表示层、应用层)。应用层:http,ftp,nfs,ssh,telnet原创 2021-08-18 16:40:22 · 147 阅读 · 0 评论 -
TCP的keepalive和HTTP的keep-alive
文章目录TCP的keepalive主机崩溃情况进程崩溃情况HTTP的keep-aliveTCP的keepalive这实际上是TCP的保活机制。它的工作原理:定义一个时间段,在这时间段内,如果没有任何连接相关的活动,TCP保活机制会开始作用,每隔一个时间间隔,发送一个探测报文,该探测报文数据非常少,如果连续几个探测报文都没有得到相应,则认为当前的TCP连接已经死亡,然后系统内核将错误信息传递给上层应用。主机崩溃情况没打开TCP keepalive,发生客户端主机崩溃,服务器无法感知到,则一直处于e原创 2021-08-12 12:16:51 · 272 阅读 · 0 评论 -
为什么TCP连接两次握手不行,需要三次
为什么TCP连接两次握手不行,需要三次假设两次握手情况成立。客户端先向服务器发送SYN报文A,A因为网络原因(但依然存在网络链路中)导致超时,客户端再次发送SYN报文B,服务器接收到B报文,返回ACK报文并被客户端接收到,此时建立连接,客户端之间交流数据…双方断开连接。这时,报文A终于到达服务器,服务器又向客户端发送ACK报文,并建立连接。但这时的这个是虚假的连接,因为客户端没有数据向服务器传输了。如果是三次握手的话,则可避免这种情况:服务器接收到报文A,向客户端发送ACK报文,这时客户端收到,就直接原创 2021-08-10 23:05:51 · 239 阅读 · 0 评论 -
select函数的使用
select、poll和epoll的使用与区别select函数的使用int select(int maxfd,fd_set *readset,fd_set *writeset, fd_set *exceptset,const struct timeval *timeout)maxfd:监视对象文件描述符数量readset:将所有关注’是否存在待读数据‘的文件描述符注册到fd_set型变量,并传递地址writeset:将所有关注’是否存在待读数据‘的文件描述符注册到fd_set型变量,并传原创 2021-07-23 14:36:08 · 159 阅读 · 0 评论 -
关于PF_INET和AF_INET的区别
PF_INET为protocol family,AF_INET为address family。在写网络程序的时候,建立TCP socket:sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET。...原创 2021-07-14 23:22:05 · 252 阅读 · 1 评论 -
基于信号 实现多进程并发服务器
服务器端:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <sys/wait.h>#include <string.h>#include <arpa/inet.h>#include <sys/socket.h>#define BUFF 30void errors(char原创 2021-07-14 22:40:20 · 94 阅读 · 0 评论