![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 91
今天也要写bug、
编程三问:xx是什么?为什么要有xx?xx是怎么实现的?
展开
-
epoll实现异步请求数据---以UDP为例
异步的请求接收原创 2022-09-05 18:01:30 · 911 阅读 · 0 评论 -
HTTPS如何防止中间人攻击
https如何防止中间人攻击原创 2022-07-31 00:41:13 · 1642 阅读 · 0 评论 -
09 数据链路层
文章目录数据链路层以太网协议以太网协议格式对比理解MAC地址和IP地址认识MTUARP协议的作用ARP工作方式ARP格式ARP协议工作流程其他重要的协议或技术DNS协议DNS的产生域名域名服务器数据链路层网络层的IP协议只负责数据的源端、和数据的目的端,即只负责数据从哪里来,到哪里去。不负责数据的有序或者无序到达对方(数据的安全、可靠性是由TCP提供的)。数据链路层:数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。数据链路层的协议定义了通过通信媒介互连的设备之间传原创 2022-04-13 14:30:44 · 1071 阅读 · 2 评论 -
08 网络层---IP协议
文章目录IP的基本概念IP协议头部格式IP的基本概念HTTP解决传送什么数据的问题:构建与解析请求和响应(对应的操作是recv和send)。tcp解决如何传送数据的问题:数据的可靠性,效率,什么时候发送,每次发送多少(具体办事还是得看下两层)。IP解决的是传送的策略问题,IP负责具体的传送:端到端(主机A到主机B),点到点(主机A到下一跳路由器),将数据经过路径选择,发送到对方主机的过程由IP层负责(可能经过多个IP)。数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递。而一旦跨越多原创 2022-04-12 14:45:16 · 2649 阅读 · 0 评论 -
listen的第二个参数
文章目录理解 listen 的第二个参数使用代码验证从原码角度来看为什么全队列的长度是listen的第二个参数+1理解 listen 的第二个参数Linux内核协议栈为一个tcp连接管理使用两个队列,分别是:半连接队列:用来保存SYN_SENT和SYN_RECV两个状态的连接。也就是三次握手还没有完成,连接还没建立的连接。全连接队列:用来保存保存ESTABLISHED状态的连接。三次握手已经完成的连接。全连接队列存放三次握手成功的连接。如果当服务器不调用accept函数,没有将全连接队列的请求拿原创 2022-04-10 16:35:22 · 3575 阅读 · 0 评论 -
07 传输层---TCP
文章目录TCP协议TCP协议段格式原码确认应答(ACK)机制超时重传机制链接管理机制为什么需要三次握手两次握手是否可以?一、二次握手容易受到SYN洪水攻击为什么是三次握手而不是四次握手?为什么需要四次挥手为什么客户端正式关闭前要进入TIME_WAIT状态?为什么TIME_WAIT的时间是2MSL?实验验证CLOSE_WAIT状态和TIME_WAIT状态验证CLOSE_WAIT验证TIME_WAIT滑动窗口滑动窗口是什么,为什么需要滑动窗口如何理解滑动窗口高速重发控制(快重传)流量控制什么是流量控制拥塞控制什原创 2022-04-10 12:01:29 · 2754 阅读 · 3 评论 -
06 传输层---UDP
文章目录一、端口号1.1. 端口号范围划分1.2. 认识知名端口号(Well-Know Port Number)1.3. netstat1.4. pidof二、长短链接2.1. 为什么需要长链接2.2. 客户端和服务器如何协商长短链接2.3. 怎么区分多个请求三、UDP协议3.1. 协议格式3.2. UDP的特点3.3. UDP的缓冲区3.4. UDP使用注意事项3.5. 基于UDP的上层协议一、端口号传输层是负责端对端之间的传输,端指的是端口(port);端口号(Port)标识了一个主机上进行通信的原创 2022-04-07 21:38:41 · 1681 阅读 · 0 评论 -
05 应用层---http协议
文章目录一、应用层协议1.1. 结构化数据1.2.序列化和反序列化二、网络版计算器2.1. 协议2.2. 服务端2.3. 客户端2.4. 效果展示三、HTTP协议3.1. URL3.1.1. urlencode(编码) 和 urldecode(解码)3.2. HTTP特征3.2.1. 无连接的:3.2.2. 无状态的:3.2.3. 简单快速:3.3. HTTP协议格式3.3.1. HTTP请求3.3.2. HTTP响应四、HTTP协议请求方法4.1. GET:获取资源4.2. POST:传输实体主体4.3.原创 2022-04-06 17:48:19 · 1636 阅读 · 1 评论 -
04 TCP协议通讯流程、如何理解套接字文件描述符
文章目录TCP协议通信流程服务器初始化:建立连接的过程:数据传输的过程:断开连接的过程:TCP和UDP的对比如何理解套接字文件描述符TCP协议通信流程一个服务器有可能有多个客户端来进行链接,链接一旦多了起来,同样需要对其进行管理。管理是需要成本的,体现在时间和空间上,即服务器和客户端为了维护这个链接、在系统层面都要提供一批数据结构来管理这批链接(udp不需要做、因此速度相对更快)。CS模型:客户端主动发起链接、服务器被动,不会主动发起链接就叫做CS模型。BS模型:通过游览器去访问服务器、本质上也是原创 2022-04-04 23:25:36 · 2386 阅读 · 2 评论 -
03 tcp服务端和客户端的实现
文章目录一、本地环回二、将sin_addr设置为INADDR_ANY的含义三、TCP协议3.1. 监听套接字 listen3.2. 建立连接accpet3.3. 连接服务端connect3.4. 文件和流的概念四、单线程tcp服务端和客户端的实现4.1. 服务端4.2. 客户端4.3. 实验现象五、tcp服务端优化5.1. 多进程版本5.2. 多线程版本5.3. 线程池版本5.4. 各个版本特点六、将一个进程放置后台,拿到前台一、本地环回IP:127.0.0.1 叫做本地环回。通常用来进行网络通信代码原创 2022-04-04 15:02:10 · 1633 阅读 · 2 评论 -
02 socket套接字编程---udp服务端和客户端
文章目录理解网络通信理解网络通信我们进行上网都需要打开软件(上网入口),比如游览器,当打开软件之时,将硬盘上的文件加载到内存之中,在客户端启动了客户端进程。而在服务器上也有对应的服务器进程。然后客户端进程通过网络寻找对应的服务器进程,进行数据的交互。其本质就是进程之间的通信。在这之中,ip标识全公网内唯一一台主机、端口号port表示该主机中唯一的网络进程、,所以ip+port就是网络之中唯一的进程,即形成了进程之间的通信。其中ip+port就是套接字,也就是说,套接字本质就是进程间通信。...原创 2022-04-03 16:58:11 · 2132 阅读 · 2 评论 -
01 网络基础
文章目录一、网络发展1.1. 独立模式: 计算机之间相互独立1.2. 网络互联: 多台计算机连接在一起, 完成数据共享1.3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起1.4. 广域网WAN: 将远隔千里的计算机都连在一起1.5. 网络需要解决的问题二、协议2.1. 网络协议是什么2.2. 网络协议簇2.3. 体系结构2.4. 协议分层2.5. 不同协议对应的分层2.5.1. OSI七层模型2.5.2. TCP/IP五层(或四层)模型三、网络传输基本流程3.1. 数据包封装和分用3.原创 2022-04-02 22:56:55 · 2620 阅读 · 1 评论