-
二进制
参考文章:二进制 参考文章:原码, 反码, 补码 详解目录 简介 进制换算 位运算 iOS中的二进制 简介二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit的缩写)。一个8Bit位的二进制数据如下: 111111...…
-
22、补充
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 VPN tcpdump cache IPv6 即时通讯 流媒体快速开始一、vpnvpn客户端 + vpn服务端 + 隧道协议隧道协议工作在传输层作用 1、提高上网的安全性 2、保护公司内部资料 3、隐藏上网者的身份 4、突破网站的地域限制 5、突破网络封锁访问公司内网(通过vpn技术,将自己作为公司内网的一个成员)隐藏用户的ip地址二、缓存三、IPv6用它来取代IPv4主要是为了解决IPv4地址枯竭问题,...…
-
21、其它协议
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 WebSocket WebService RESTful HTTPDNS FTP 邮件相关的协议快速开始一、webSocket协议WebSocket和HTTP属于平级关系,都是应用层的协议 WebSocket是应用层协议,Socket是一套网络编程API接口,两者是不同的WebSocket,是基于TCP的支持全双工通信的应用层协议 WebSocket需要借助HTTP协议来建立连接(也叫作握手,Handshake...…
-
20、HTTP的升级改进
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 HTTP协议的不足 HTTP/2 HTTP/3快速开始一、http1.1的不足同一时间,一个连接只能对应一个请求(同一连接不能并行发送请求)xy:原因是多个请求的数据同时发送无法被区分出来针对同一个域名,大多数浏览器允许同时最多6个并发连接请求应答模式,服务器不能主动给客户端发送消息头信息的重复传输二、http2只需要建立一个连接,可以并行发送请求(多路复用)xy:应为http2会标记数据属于哪个请求,到达之后会组装,所...…
-
19、HTTPS
参考:【MJ亲授】网络协议从入门到底层原理目录 快速浏览 概念介绍 HTTPS的通讯过程 双向认证流程快速浏览一、介绍安全套接层工作在应用层和传输层之间 所以TLS只会对应用层数据进行加密,传输层、网络层、链路层的头部信息都是明文的,并不会影响在路由器和链路上传播① TCP的3次握手 ② TLS的连接 ③ HTTP请求和响应 二、主要流程交换数据阶段: 选择的加密组件比如:AES RSA ECDHE(一个秘钥生成算法) 服务端随机数、服务端秘钥计算参数...…
-
18、网络安全
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 安全威胁 HTTP协议的安全问题 单向散列函数 对称加密 非对称加密 混合密码系统 数字签名 证书快速开始一、安全威胁ARP欺骗 DoS攻击 DNS劫持二、加密算法单向散列函数:MD5、SHA-1、SHA-2(SHA-256 SHA-512)、SHA-3对称加密:DES、3DES、AES 块加密 模式非对称加密:RSA 公钥加密 私钥签名三、证书证书 = 公钥 + 签名CA机构 浏览器和手机内,内置了C...…
-
17、HTTP(五)
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 代理服务器(Proxy Server) CDN快速开始代理服务器正向代理服务器:绕过防火墙、抓包工具Charles反向代理服务器:安全防护、负载均衡CDN:内容分发网络代理服务器(Proxy Server)一、特点本身不生产内容 处于中间位置转发上下游的请求和响应 ✓ 面向下游的客户端:它是服务器 ✓ 面向上游的服务器:它是客户端二、正向代理、反向代理正向代理:代理的对象是客户端 反向代理:代理的对象是服务器...…
-
16、HTTP(四)
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 CORS Cookie快速开始一、同源策略协议 + 域名 + 端口 都相同就是同源前后端分离后,资源和资源内请求的url不是同源,那么就会存在跨域的问题相关的请求头字段:Origin相关的响应头字段:Access-Control-Allow-Origin 跨域后不是服务器不返回数据,是浏览器不解析数据Ajex异步请求受同源策略影响为什么img标签和css不受同源策略影响? 异步请求受同源策略影响,一般来说,直接加载页面...…
-
15、HTTP(三)
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 请求方法 头部字段 状态码(Status Code) form提交快速开始一、常用请求方法get post head option二、请求头字段user-agent: 识别终端类型 Reference:这个请求是由哪个请求带来的 防止盗链 range:多线程断点下载 Content-Type: application/x-www-form-urlencoded 和 multipart/form-data...…
-
14、HTTP(二)
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 HTTP报文格式 ABNF URL的编码 Telnet快速开始一、URL为什么需要编码一般对url编码,针对的是查询参数的key和value进行编码 1、最初设计是只支持ASCII码的,所以非ASCII码需要编码,比如中文编码前:https://www.baidu.com/s?wd=华为编码后:https://www.baidu.com/s?wd=%E5%8D%8E%E4%B8%BA2、一些特殊字符(比如等号、空格),...…
-
13、HTTP
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 HTTP简介 HTTP版本 HTTP标准快速开始超文本:超出了文本本身的含义URI:统一资源标志符 URL:统一资源定位符最常用的http版本是 1.1版本 1997年提出HTTP简介一、HTTPHTTP(Hyper Text Transfer Protocol),译为超文本传输协议 是互联网中应用最广泛的应用层协议之一 设计HTTP最初的目的是:提供一种发布和接收HTML页面的方法,由URI来...…
-
12、应用层
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 应用层的常见协议 域名(Domain Name) DNS(Domain Name System) DHCP 几个问题快速开始一、域名为了方便记忆 根域名 顶级域名 二级域名 三级域名二、DNS协议(应用层)域名需要解析出ip地址 DNS协议,DNS服务器域名申请的流程三、DHCP协议(应用层)ip地址的分配:静态分配和动态分配动态分配 DHCP协议,DHCP服务器 分配的四个阶段:发现服务器 - 提供...…
-
11、连接、释放连接
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 连接 释放连接 几个问题快速开始一、连接三次握手及开始发送数据时 序号和确认号极其标志位的变化 客户端 SYN=1 ACK=0 seq=0 ack=0 len=0 发起连接请求 服务端 SYN=1 ACK=1 seq=0 ack=1 len=0 同意建立连接 客户端 SYN=0 ACK=1 seq=1 ack=1 len=0 我知道你同意了,下面我要开始发送数据了 客户端 SYN=0 A...…
-
10、TCP_序号、确认号
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 序号、确认号 序号、确认号变化流程快速开始一、SYN、ACK、seq、ackSYN=1:表示这是一个同步请求,在连接时有用 ACK=1:表示确认号有效 seq:相对序号,发送的数据的第一个字节的编号 ack:确认号,告知对方我已经收到你ack-1个字节,请发送ack号开始的数据seq是对对方ack的回应ack是对对方seq的确认,ack从另一个角度理解是告诉对方目前已经收到了ack-1个字节二、数据分片和组装...…
-
9、TCP_流量控制、拥塞控制
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 流量控制 拥塞控制快速开始一、流量控制为什么要进行流量控制? 接收窗口不足,减少丢包,避免浪费网络资源流量控制的手段(点对点): 接收方窗口大小来控制一种特殊情况是,接收方窗口为0时怎么处理 发送方开启一个定时器,隔一段时间发个测试报文去询问二、拥塞控制为什么要进行拥塞控制?避免过多数据注入网络,避免路由和链路过载,丢包浪费网络资源拥塞控制的手段: 慢开始、加法增大、乘法减小、快重传、快恢复几个概念: MSS 拥...…
-
8、TCP_可靠传输
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 TCP的几个要点 TCP可靠传输快速开始一、可靠传输1、最开始的可靠传输实现方式:ARQ(Automatic Repeat-reQuest)协议停止等待 + 超时重传存在的问题:每发送一次数据,都要等待确认,时间过长。比如分片数据发送后要等待1s收到确认再发送下一片,那么发送10个分片数据的时间就是10s2、现在的解决方式:ARQ协议 + 滑动窗口协议停止等待 + 超时重传 + 滑动窗口一次发送多个分片数据,通过确认号来...…
-
7、传输层
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 传输层(Transport) UPD(User Datagram Protocol) TCP(Transmission Control Protocol)快速开始一、UDP1、udp协议首部示例2、端口客户端端口临时随机开启服务端端口不同协议有不同端口防火墙可以禁用某些端口来达到禁止访问的目的 比如数据库协议二、TCP传输层(Transport)传输层有2个协议 TCP(Transmission Control Pro...…
-
6、网络层
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 网络层(Network) ping的几个用法快速开始一、IP首部图片示例二、首部协议标识协议:封装的数据部分使用的什么协议,比如传输层过来的 tcp 和 udp、网络层产生的 arp 和 icmparp协议工作在网络层icmp协议工作在网络层我们ping的时候是没有经过应用层和传输层的 IP首部 + icmp首部 + 数据类似的协议还有:ppp 协议工作在链路层csma/cd 协议工作在链路层三、TTL生存时间,允许传过路...…
-
5、网络分层(物理层、链路层)
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 网络互联模型 物理层(Physical) 数据链路层(Data Link)快速开始一、小知识点1 不同路由器效果不同一般路由器是连接不同的网段,但有的路由器可以连接相同的网段2 为什么ping的时候第一次会超时第一次要通过ARP广播获取Mac地址,路由器忙不过来会把数据包给扔了,所以第一次会超时二、网络互联模型介绍1、物理层物理层设备:网线、集线器、交换机、网卡、路由器模拟信号 数字信号单工通讯(广播) 半双工通讯(对讲...…
-
4、路由
参考:【MJ亲授】网络协议从入门到底层原理目录 快速开始 路由 相关概念 公网IP、私网IP快速开始一、数据包的传输过程IP地址 Mac地址传输过程中源IP地址和目标IP地址不会变Mac地址会随着在不同链路传输进行变换数据从一台主机传递到另外一台主机是IP地址和Mac地址配合的结果二、路由路由默认只知道跟它直连的网段 非直连的网段需要静态路由和动态路由告诉他动态路由: 路由选择协议,一个路由器问另一个跟它直连的路由器,哎跟你直连的网段有哪些 这个路由就知道了这些网段。 一直...…