导图社区 网络基础
网络基础是现代互联网架构的核心之一,网络基础知识的掌握是每个互联网从业人员必须具备的基本技能。这份“网络基础”的笔记,着重介绍了计算机网络的基础知识。 总之,这份网络基础笔记是一份具有很高实用价值的资料,无论是初学者还是有经验的开发者,都能从中受益。如果你想学习网络基础知识,那么这份笔记是你不容错过的。
这份思维导图主要按照《python从入门到实践》的大纲来做出来的,并在相关内容的解释处加入了相关代码,欢迎大家一起学习!
职能地图-Java,干货分享~Java语言技术,java技术扩展,数据结构,维优,个人职能,技术面试知识点总结。
当今大型软件系统的开发多采用企业级的开发模式,而Java语言也是目前较为流行的企业级开发语言之一。针对Java企业级开发,涉及的知识点和技术栈较为丰富,包括但不限于Java EE、Spring框架、Hibernate框架、Maven、Git、Jenkins等等。这份思维导图以Java企业级开发为主题,通过图解的形式将涉及的知识点进行了梳理和整理,从Java EE体系结构、Servlet、JSP、Spring框架、Hibernate框架、Maven等基础知识开始讲解,逐步深入到SpringMVC、
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
网络基础
应用层
DNS
Domain Name System,域名系统,是一种用于TCP/IP应用程序的分布式数据库。提供主机名字和IP地址之间的转换址(双向查询)
常用:域名转换为 ip 地址
ip 转换为域名,叫指针查询
传输的 DNS 协议属于应用层协议
DNS TTL
TTL 生存时间
表示一个 DNS 查询结果要缓存多久,过了 TTL 就表示过期了需要重新获取
获取流程
查询本地缓存
查询首选 DNS 服务器
查询主域名服务器
…………
查询 Root 域名服务器,找到后一层层返回
每一层都有缓存且都有失效时间
wireShark 抓包
查询
应答
一般情况 DNS 服务器使用 53 端口,这意味着 DNS 均支持 UDP 和 TCP 的访问
主要使用 UDP 发起查询,当响应长度超过 521字节,服务器会通知查询方超长了,这是可能会使用 TCP 重查,以允许响应超过 512 字节
权威资料
QUIC
传输层
传输层的功能:建立端口到端口的通信
Unix 系统将主机 + 端口叫做套接字:socket
端口
用于表示数据包到底供那个程序(进程)使用,是每一个使用网卡程序的编号
每个数据包都能区分目标,所有不同的程序就能取到自己所需的数据
范围
0 ~ 65535,正好16个二进制
0 ~ 1023 被系统占用
用户只能选择 > 1023的端口
UDP
User Data Protocol 愣头青,和 IP 包一样不保证不丢失,也不保证对方能收到,只管往出发就算网络堵了也发
头部长 8 字节,总长度不超过 65535 正好放进一个 IP 数据包
网络层
网络层的功能:建立主机到主机的通信
也叫 IP 层,为了解决在庞大网络中定位 MAC 地址困难的问题,诞生了一种类似门派门牌号的地址,有了它就可以按图索骥的一层层子网的找下去了。这套地址就叫做"网络地址",简称"网址"
IP 地址是管理员分配的,和 MAC 地址没有必然联系。他们是随机组合在一起的
IP 协议
为每一台计算机分配 IP 地址
确定哪些地址在同一个网络
通过子网掩码才能确定 IP 所属子网,有了子网掩码就可以判断任意两个 IP 是否处于同一个子网络
IP 数据包
IP 协议发出的数据叫做 包
也是分为 Head 、Data 两部分
Head 的长度为 20 到 60 字节
整个数据包最长为 65535 字节,理论上数据部分最长为 65515
太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了就会被分割
数据链路层
功能:建立网卡到网卡之间的通信,对标电脑的网卡
传的数据称作帧,每个帧分为两个部分:Head 、Data
MAC 地址:每个网卡在全球都有独一无二的标识。
MAC 地址是一个局域网内才有效的地址。因为 MAC 地址只要将经过了网关就会改变
ARP 广播
根据 IP 地址类确定对方 MAC 地址的
如果交互双方不在同一个子网,那么就没办法知道对方的 MAC 地址,只能把数据包发送到网关,填写网关的 MAC 地址。让网关处理
网关可以认为是路由器
网关会存储所有连接设备的 IP、MAC 地址
没有网关 TCP/IP 就无法跨网络通信
如果在一个子网,就用 ARP 协议在子网内广播
ARP 数据包会携带目标的 IP 地址
在 MAC 地址一栏会填写 : FF:FF:FF:FF:FF:FF 表示这是一个广播
子网内的所有主机都会收到广播,收到后会对比在自己的 IP。如果相同就回复,不相同就丢失
会缓存 ARP 请求,防止每次都请求,当然也有过期时间
物理层
光缆、电缆、双绞线、无限点播这些玩意
没事具体协议,只有国际标准
网络 IO
网络设备
交换机(Switch)
把很多主机连接在一起,用来分配网络数据的设备
工作在 MAC 层、以 MAC 地址确定服务对象
内部维护了一个交换表,记录了 MAC 地址、地址对应的接口、有效时间
拥有自学习算法、处理收到的帧和建立更新交换表
路由器
是连接两个或多个网络的硬件设备,在网络间起网关的作用。是网络管理者分配 IP、虚拟拨号等
工作在网络层,根据 IP 地址寻址、可以处理 TCP/IP 协议
网关是某个局域网的出口地址。路由器的每一个接口都是网关
收到数据后会进行转发,内部有个路由表,更换 MAC 地址为下一跳的路由地址进行转发
NAT(网络地址交换) 更换IP:将发送方私有的 IP 更换为公网 IP,并记录。等待服务器响应的时候,根据记录将公网 ip 在换成私有,这样就可以发送到对应主机了
OAuth
Open Authorization 为用户资源授权提供个一个安全的解决方案
第三方账号不会触及到用户的账号信息(如密码等)
即使没有用户的用户名和密码也能获得该用户资源的授权
角色
Resource Owner
通常指用户
可以授权访问某些保护资源的实体
Client
第三方应用
Authorization server
在用户认证后下发 Access Token 的服务器
Resource Server
拥有资源的服务器
可以通过 Access Token 响应资源请求
流程
第三方(简书)发起认证请求,跳转到微博认证页面
例 https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://jianshu.com/callback
client_id:在微博开放平台申请的应用 ID
redirect_uri:授权成功后要跳转到的地址
点击例子中的连接会看到
这个页面会告诉用户第三方应用要获取用户的哪些数据,以及拥有什么权限
用户同意后将跳转到 redirect_uri 指定的地址,并在并自动在 URL 末尾添加一个 code 参数
例子http://jianshu.com/callback?code=2559200ecd7ea433f067a2cf67d6ce6c
用 code 向资源服务器获取 token
获取 token 成功将此 token 传给自家服务器,让服务器请求资源
内网穿透 NAT
获取公网 IP
获得猫的超级管理员权限,将网络模式更改为桥接,拨号的工作交由路由完成
路由拨号,此时路由就有了公网IP
在路由上开启端口映射,将公网上的一个端口映射到自己调用的IP + 端口上
搞个 DDNS 将固定的域名绑定到路由的动态 IP 上