网络
文章平均质量分 96
2021dragon
越努力越幸运
展开
-
【项目设计】自主HTTP服务器
本项目实现的是一个HTTP服务器,项目中将会通过基本的网络套接字读取客户端发来的HTTP请求并进行分析,最终构建HTTP响应并返回给客户端。HTTP在网络应用层中的地位是不可撼动的,无论是移动端还是PC端浏览器,HTTP无疑是打开互联网应用窗口的重要协议。该项目将会把HTTP中最核心的模块抽取出来,采用CS模型实现一个小型的HTTP服务器,目的在于理解HTTP协议的处理过程。该项目主要涉及C/C++、HTTP协议、网络套接字编程、CGI、单例模式、多线程、线程池等方面的技术。原创 2022-11-24 11:44:30 · 10513 阅读 · 75 评论 -
DNS协议、ICMP协议、NAT技术
文章目录DNS协议DNS背景域名简介域名解析过程使用dig工具分析DNS过程浏览器中输入url后发生的事情ICMP协议ICMP功能ICMP协议格式ping命令一个值得注意的坑traceroute命令NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术的缺陷NAT和代理服务器网络协议总结应用层传输层网络层数据链路层DNS协议DNS背景域名简介域名解析过程使用dig工具分析DNS过程浏览器中输入url后发生的事情ICMP协议ICMP功能ICMP协议格式ping命令一个值得注意的坑原创 2022-07-28 19:30:04 · 6948 阅读 · 21 评论 -
数据链路层协议 ——— 以太网协议
由于以太网中的所有的主机共享一个通信信道,因此在同一时刻只允许有一台主机发送数据,否则各个主机发送的数据就会相互干扰。站在系统的角度来看,这里各个主机所共享的通信信道就是一种临界资源,这个临界资源同一时刻只允许一台主机使用。......原创 2022-07-22 21:46:04 · 24407 阅读 · 40 评论 -
网络层协议 ——— IP协议
IP协议全称为“网际互连协议(Internet Protocol)”,IP协议是TCP/IP体系中的网络层协议。双方在进行网络通信时,发送的数据并不是直接从一方的传输层直接发送到了另一方的传输层,而是需要传输层将数据继续向下进行交付,在网络层和链路层经过数据封装后再通过网络发送到对方主机,对方主机收到数据后也同样需要在链路层和网络层进行数据解包,此时对方的传输层才拿到了发送过来的数据,然后再继续将该数据向上进行交付。............原创 2022-07-17 21:30:13 · 49921 阅读 · 54 评论 -
TCP相关实验
当客户端和服务器在进行TCP通信时,如果客户端调用close函数关闭对应的文件描述符,此时客户端底层操作系统就会向服务器发起FIN请求,服务器收到该请求后会对其进行ACK响应。但如果当服务器收到客户端的FIN请求后,服务器端不调用close函数关闭对应的文件描述符,那么服务器就不会给客户端发送FIN请求,相当于只完成了四次挥手当中的前两次挥手,此时客户端和服务器的连接状态分别会变为FIN_WAIT_2和CLOSE_WAIT。我们可以编写一个简单的TCP套接字来模拟出该现象,实际我们只需要编写服务器端的代原创 2022-06-15 11:37:36 · 2670 阅读 · 29 评论 -
传输层协议 ——— TCP协议
TCP全称为“传输控制协议(Transmission Control Protocol)”,TCP协议是当今互联网当中使用最为广泛的传输层协议,没有之一。TCP协议被广泛应用,其根本原因就是提供了详尽的可靠性保证,基于TCP的上层应用非常多,比如HTTP、HTTPS、FTP、SSH等,甚至MySQL底层使用的也是TCP。现代的计算机大部分都是基于冯诺依曼体系结构的。虽然这里的输入设备、输出设备、内存、CPU都在一台机器上,但这几个硬件设备是彼此独立的。如果它们之间要进行数据交互,就必须要想办法进行通信,原创 2022-06-11 15:00:21 · 13850 阅读 · 68 评论 -
传输层协议 ——— UDP协议
文章目录传输层再谈端口号端口号范围划分认识知名端口号两个问题netstatpidofUDP协议UDP协议格式UDP协议的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议传输层再谈端口号端口号范围划分认识知名端口号两个问题netstatpidofUDP协议UDP协议格式UDP协议的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议......原创 2022-06-03 21:38:36 · 15395 阅读 · 24 评论 -
应用层协议 ——— HTTP协议
文章目录HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP常见的Header简单的HTTP服务器HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP常见的Header简单的HTTP服务器原创 2022-05-21 22:01:50 · 17761 阅读 · 63 评论 -
认识“协议”
文章目录再谈“协议”HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见的Header简单的HTTP服务器再谈“协议”协议本质就是一种约定,这些约定本身是由客户和服务的程序员做好的一种约定,所以一旦约定好之后,双方在通信时就都可以按照字符串的形式进行收和发,此时就完成了约定的这样一个概念最终不管你是怎么约定,你双方还是得在计算机语言上将这种约定表示出来那如果我们要传输一些“结构化的数据”怎么办呢?什么叫做结构化的数据呢,比如我们要传原创 2022-05-14 18:56:04 · 2595 阅读 · 29 评论 -
网络编程套接字(三)
文章目录简单的TCP汉译英服务器地址转换函数关于inet_ntoa函数TCP协议通讯流程TCP和UDP对比简单的TCP汉译英服务器地址转换函数关于inet_ntoa函数TCP协议通讯流程TCP和UDP对比原创 2022-05-12 20:41:16 · 3320 阅读 · 25 评论 -
网络编程套接字(二)
文章目录简单的TCP网络程序简单的TCP网络程序TCP服务器也是服务器,少不了也要有端口号根据之前实现UDP服务器我们知道UDP服务器是不需要你显示绑定IP地址的,这里的TCP服务器也是如此,因为它们都在云服务器上嘛,因此TCP服务器类当中也是不需要IP地址相关的成员的构造函数当然TCP服务器也是需要进行初始化的,初始化完成后也是需要启动的,TCP服务器启动后也是周而复始的为我们提供某种服务创建套接字初始化TCP服务器的第一步也是创建套接字,因为TCP是面向连接的,所以我们需要在正式发送数原创 2022-05-08 16:36:44 · 5613 阅读 · 59 评论 -
网络编程套接字(一)
文章目录预备知识理解源IP地址和目的IP地址理解源MAC地址和目的MAC地址认识端口号理解“端口号”和“进程ID”理解源端口号和目的端口号认识TCP协议认识UDP协议网络字节序socket编程接口socket常见APIsockaddr结构in_addr结构简单的UDP网络程序封装UdpSocketUDP通用服务器实现英译汉服务器UDP通用客户端实现英译汉客户端地址转换函数关于inet_ntoa简单的TCP网络程序TCP socket API详解封装TCP socketTCP通用服务器英译汉服务器TCP通用客原创 2022-05-01 21:53:50 · 7222 阅读 · 69 评论 -
网络入门基础
文章目录计算机网络背景网络发展认识“协议”网络协议初始协议分层OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程网络传输流程图数据包封装和分用网络中的地址管理认识IP地址认识MAC地址计算机网络背景网络发展认识“协议”网络协议初始协议分层OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程网络传输流程图数据包封装和分用网络中的地址管理认识IP地址认识MAC地址...原创 2022-04-11 20:49:25 · 9170 阅读 · 47 评论