
网络
文章平均质量分 88
学习网络
两片空白
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于多路转接select,poll,epoll的重要问题
多路转接使用场景 多路转接select/poll/epoll适用于长连接。 短连接:在一次通信周期才通信一次,就断开连接。使用多路转接,需要频繁将文件信息从用户拷贝到内核。select的缺点可以监视的文件个数是有限的。fd_set位图的位数有限。 需要用户来管理要监视的文件描述符。比如:需要定义一个数组来保存要监视的文件描述符。 由于用户通知内核的需要监视的文件和内核通知用户就绪的文件事件是一个参数,即输入输出参数是一个,在编码调用select前需要重新设定需...原创 2021-10-23 19:28:00 · 236 阅读 · 0 评论 -
高效IO——多路转接epoll
前言 epoll是针对select和poll的缺点,再进行了进一步的改进。但是说明一点,epoll和select,poll的功能一样。可以同时等待多个文件。 epoll最大的改变就是,不再需要用户来对要监视的文件描述符进行管理,而是交给系统来进行管理。而pol,select都需要定义一个数组来对要监视的文件描述符进行管理。多路转接适用于长连接的情况。短连接使用多路转接,短连接只是通信一次就关闭连接。导致使用多路转接还需要频繁的增加...原创 2021-10-23 16:33:03 · 625 阅读 · 0 评论 -
高效IO——多路转接之poll
目录前言一.poll函数接口 1.1 struct pollfd 结构介绍 1.2 poll简单使用二.socket就绪条件三.poll优缺点 3.1 poll优点 3.2 poll缺点四.poll的使用前言 poll是针对select的缺点,做了改进。 主要针对了select的两个缺点:select等待的文件描述符有上限,为sizeof(fd_set)*8。 selec...原创 2021-10-22 16:05:35 · 804 阅读 · 0 评论 -
高效IO——IO多路转接select
一.概念 IO主要有两个动作,等待条件就绪和进行数据拷贝。高效IO就是将等待时间比重减小。 IO多路转接是高效IO的一种。通过调用select,poll,epoll在同一时刻等待多个文件描述符。当至少一个文件描述符准备就绪,再来进行IO操作时,就不需要等待了。 这样一次性等待多个文件描述符,条件就绪的概率增加了,等待的时间也会减少。 下文主要介绍select,poll,epoll如何实现多路转接。二.select函数 ......原创 2021-10-22 09:24:52 · 1050 阅读 · 0 评论 -
高效IO——五种IO模型概念和非阻塞IO
前言: 内存于外设进行数据交互叫做IO。 IO的过程中主要由两个动作,一个是等待,一个是拷贝。比如:读IO,就是在等待可以读数据的条件,条件成立将数据从内核空间拷贝到用户空间。 写IO,就是在等待可以写数据的条件,条件成立将数据从用户空间拷贝到内核空间。 高效IO的本质是:单位时间内,尽可能的减少等待的比重。一.五种IO模型阻塞IO:在内核数据准备好之前,系统调用会一直等待。所有套接...原创 2021-10-20 11:08:26 · 1028 阅读 · 0 评论 -
NAT技术详解
前言 我们知道现在流行的IPv4的IP地址是32位的。那说明IP地址总数是2^32次方个。但是随着互联网的发展,现在的入网设备早就超过了2^32次方个了。拿为什么我们现在的主机IP还够用呢? 这里用到了NAT技术来解决。一.NAT技术概念在博客网络层IP协议,有介绍到,我们的的IP分为两大类,私网IP地址和公网IP地址。当主机跨网络通信时,NAT技术可以将报文的目的IP地址转换为路由器的WAN口IP地址。也就是可以将私有IP和公有IP转化的过程...原创 2021-10-18 15:08:20 · 8830 阅读 · 1 评论 -
DNS域名解析协议详解
DNS技术 DNS是一整套从域名映射到IP的系统。 一.背景 TCP/IP协议使用IP地址和端口号来确认网络上的一台主机的一个程序。但是IP地址和端口号不方便人们记忆。于是人们发明了域名,是一串字符串,并且使用host文件来保存主机名和IP地址之间的映射关系。 最初,是通过互联网信息中心(SRI-NIC)来管理这个文件,host文件保存在本地。如果一个新计算机要接入网络或者某个计算机的IP变更,都需要到信息中心申请变更host文件...原创 2021-10-18 11:38:56 · 3913 阅读 · 0 评论 -
ICMP协议详解
ICMP协议 一.概念 ICMP协议是一个网络层协议。和IP协议处于同一层,但是ICMP协议底层用的是IP协议。 一个搭建好的网络,往往需要先进行简单的测试,来验证网络是否通畅。单单使用IP协议并不提供可靠性传输。似乎用IP协议如果丢包,并不能通知传输层是否丢包以及丢包原因。 ICMP协议,如果在网络中丢包,会返回一个丢包原因给传输层。 二.ICMP作用确认IP包是否成功达到目标IP。 通知在发送过程中的IP包被...原创 2021-10-18 11:35:08 · 18521 阅读 · 0 评论 -
链路层以太网详解
前言 虽然网络层IP协议提供了数据传输的能力。点对点(同一局域网主机之间通信),端对端(跨网络主机通信)。但是网络层并不是真正发送数据的,真正发送数据的是链路层。一.认识以太网以太网不是一种具体的网络,而是一种技术标准,即包含了链路层的内容,还包含了物理层的内容。例如:规定了网络的拓扑结构(节点以什么形式组织(树/图...)),访问控制方式,传输速率等。 以太网现在是当前应用最广泛的局域网技术。和以太网并列的还有令牌环网,无限LAN等。总结:以太网是一种标准,是局域网中通信的一...原创 2021-10-17 20:40:13 · 4046 阅读 · 0 评论 -
网络层IP协议
前言 应用层http协议是进行构建和解析请求request和响应response。 传输层的TCP/UDP协议是不提供数据的运输。传输层是为数据传输指定规则。但是,UDP协议并不保证数据传输的可靠性。TCP协议制定了确认应答机制,超时重传机制,连接管理机制,拥塞控制等保证了数据的可靠性,制定了捎带应答,延时应答,快重传机制等保证了数据传输的效率。 实际有数据传输能力的是网络层IP协议,提供了将数据从主机A跨网络送到主机B的能力。一.基本概念 ...原创 2021-10-17 10:32:13 · 1500 阅读 · 0 评论 -
TCP调用listen处于监听状态,listen的第二个参数含义
现象用TCP协议写两个程序,服务器端listen的第二个参数设为1,不调用accept。说明:只要服务器端处于listen状态,就可以建立连接,与accept无关。#pragma once #include <iostream>#include <unistd.h>#include <stdlib.h>#include <sys/socket.h>#include <sys/types.h>#include <net原创 2021-10-15 12:44:39 · 1903 阅读 · 0 评论 -
传输层UDP/TCP协议
前言 负责数据能够从发送端传输到接收端。一.五元组 1.1 概念 端口号:标识另一台主机上的一个进程。 端口号如何找到进程?内核实现通过哈希算法,端口号对应进程PID。 在TCP/IP协议中,用"源IP","目的IP","源端口号","目的端口号","协议号",这五元组来标识一个通信。 源IP:发送数据的主机IP 目的IP:最终接收数据主机IP 源端口号:发...原创 2021-10-14 15:24:34 · 567 阅读 · 0 评论 -
TCP协议面试热点(面向字节流,粘包问题,TCP异常情况)
面向字节流 TCP在内核有自己的接收和发送缓冲区。面向字节流最重要的就是接收和发送缓冲区的存在,在应用层向下发送一个数据包时,可以发送一次或者多次,即可以调用一次或者多次send。在应用层接收一个数据包时,可以接收一次或者多次,可以调用一次或者多次recv。发和收次数不需要对应。而TCP发送数据有自己的规则,如下。 应用层调用传输层提供的接口发送一个数据块给TCP,数据块被写到了TCP的发送缓冲区。而TCP是以字节为单位看待这个数据块的。 ...原创 2021-10-15 11:08:38 · 518 阅读 · 0 评论 -
应用层HTTP协议
前言 协议是一种"约定"。 当我们在往网络中读写数据时,都是按比特位的方式接收的,如果我们要传输一些结构化的数据,比如多条数据,该怎么传输呢? 发送方可以将多条数据合成一条数据发出去,接收方将一条数据分成对应多条数据。 数据又多变一的过程叫做序列化。数据由一变多的过程叫反序列化。 短连接:客户端发起请求,服务器处理后,发送响应,服务器将连接断开。一个服务周期结束。 长连接:客户端和服务器长时间连接。...原创 2021-10-14 14:30:48 · 1281 阅读 · 0 评论 -
长连接与短连接
前言: 一个网页中包含了很多的资源,比如文本,图片,音频,视频等等。 客户端发送一次请求,服务器的一次响应只能发送一个资源。短连接 短连接:一个信道只能发送一次请求和响应,服务器关闭连接。长连接 长连接:一个信道能发送多个请求和响应。长连接的好处: 由于一个网页中含有很多资源。想获取一个网页,如果使用短连接一次只能发送一个资源,要获取多个资源,需要是客户端和服务器多次建立连接和断开连接。建立连...原创 2021-10-11 10:59:59 · 1712 阅读 · 0 评论 -
socket网络编程
前言: 网络通讯本质可以看成是进程间通讯,"同一份资源可以看成事网络"。就是本地的进程和远端服务器的进程进行通信。一.IP地址和端口号 1.1 IP地址 IP地址是唯一标识一台主机的标志。 在网络层添加到有效载荷(数据)的报头中含有两个IP地址。一个是源IP地址,一个是目的IP地址。 源IP地址是一开始发送数据的主机,目的IP地址是最终收到数据的主机。 1.2 端口号 仅仅拥有I...原创 2021-10-02 14:39:02 · 2551 阅读 · 1 评论 -
网络基础——网络传输基本流程
一.网络背景 有人可能会说,网络背景为什么要了解?了解网络背景可以帮助你更好的理解后面的知识。 1.1 网络的发展 计算机出现在网络网络之前,一开始是用来计算和核导弹的轨迹的。但是由于计算可能是由多台计算机计算,它们之间数据要相互传递,如果通过人来传递,第一效率会很低,第二可能会出错。 人们就想着如何可以让计算机和计算机之间产生通信,可以传输数据。1.独立模式:计算机之间相互独立,通过人来传输数据 ...原创 2021-09-28 14:23:29 · 4026 阅读 · 0 评论