协议
- 什么是协议: 双方都认同的一种 规则
- 通过遵循协议, 彼此才能够交流; 就像都说中文 普通话, 才能正常交流
- 按照一定的格式去发送数据(就像写信的格式)
HTTP协议
- 规定了网页传输的 格式
- HTML网页按照, HTTP协议在网络传输
- 200 和404
- 200 ok
- 404 not found
HTTP请求报文:
HTTP响应报文: header + body (以字节方式上传, 所以需要encode)
header:
必须遵循HTTP规定,比如 换行: \r\n
body:
内容随便怎么写 比如 换行: \n
传输过程
- 先拿框架,再拿细节
-> 先拿主html, 在拿所需要的图片/ico/…
epoll
普通服务器存在的问题
遍历时间过长
存在用户态到内核态之间的数据拷贝时间
epoll的两大优点
事件通知
共享内存
子网掩码
subnet mask
作用: 确定 IP中的网络号是 哪一段
确定方法: 按为 与
交换机
- 同一个网络中,不同电脑的交流
- 优点: 该广播时广播,该单播时单播( 如果不用, 都是多播 )
- 链接方式:
- 先通过目标Ip + FF:FF:FF:FF 来获取对方的IP地址
- mac地址: 每个计算机有两个:
- 网卡固定
- 通用 FF:FF:FF:FF
- 因为系统认证必须先通过mac, 才会进行IP认证,所以必须先过Mac这一关
- 再通过 IP + mac 通信
arp 地址解析协议
- Address Resolution Protocol
- 作用: 实现IP地址到MAC地址的转换
- MAC是真正的电脑的唯一标识符。
- 实现: 仅需一问一答的两个包即可
- PC1广播发送询问信息 包括PC1的IP和MAC地址、PC2的IP地址
- PC2 的MAC地址为ff-ff-ff-ff-ff-ff , 代表这是一个询问信息,也就是广播
- PC2单播发送应答信息给PC1,告诉PC1自己的IP和MAC地址。
- ARP数据的详细信息列表如下
- 请求包
Hardware type | 硬件类型,标识链路层协议 |
---|---|
Protocol type | 协议类型,标识网络层协议 |
Hardware size | 硬件地址大小,标识MAC地址长度,这里是6个字节(48bit) |
Protocol size | 协议地址大小,标识IP地址长度,这里是4个字节(32bit) |
Opcode | 操作代码,标识ARP数据包类型,1表示请求,2表示回应 |
Sender MAC address | 发送者MAC |
Sender IP address | 发送者IP |
Target MAC address | 目标MAC,此处全0表示在请求 |
Target IP address | 目标IP |
- windows查看该arp
- arp中间人攻击
路由器
作用: 使多个不同的网络之间, 能够交流
核心: 同一台设备上, 有两个网卡(即: 两个IP地址)
网关: 具有转发数据能力的设备
- 就是古时候的信使,,你不能出门,由信使帮你送到对方家里
- 一般是路由器
IP地址: 不会改变
作用:确定 最终的目的地 (诗和远方)
是逻辑上的标记
Mac地址: 一直在变(逐级变换)
作用:确定物理层的两两之间的传递, 我到下一设备之间的传递 (眼前的苟且)
具体的实现的标记
DNS服务器
- 非常庞大的电话本
- 域名解析流程
- 网址解析: 把网址发给指定的DNS服务器去解析
- 发送给默认网关:
- 先通过arp获取 所在网关mac地址
- 再把请求发送网关
- 通过路由器层层传输(路由协议)
- 先通过arp获取 下一个网关mac地址
- 在转发到下一个网关
- DNS服务器网址解析
- 把IP地址传回
- 向目的服务器 发送tcp的3次握手
- 发送http的请求数据 以及等待服务器的应答
- 发送tcp 的 4次挥手
- 网址解析: 把网址发给指定的DNS服务器去解析
网络四层
应用层: --> 组数据
传输层: 如何传输数据 --> 添加端口(源端口,目的端口)
网络层: 传输到网络中的哪台电脑 --> 添加IP(源IP, 目的IP)
链路层: 如果变成01在电路上传输 --> 添加 Mac地址
各个协议的port 互不影响
即:tcp 用了8080 , udp 仍然可以用 8080( 互不影响 )
组包: 从上往下, 层层添加
解包: 从下往上, 层层验证 ; 只要有一层不对, 立马扔掉!
OSI
应用层 Application
表示层 Presentation
会话层 Session
传输层 Transport
网络层 Network
数据链路层 Data Link
物理层 Physical
网络是怎么构成的
集线器(Hub)
- Hub : 中心
- 主要功能: 信号放大, 再广播发出
- 缺点: 广播的方式进行发送任何数据 , 数据给每个电脑都发送一份,因此会导致网络拥堵
网络地址转换器(NAT)
NAT : Network Address Translator
端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).
- 采用端口多路复用方式,内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。
- 同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
SAT 静态地址转换
- 一对一的地址转换。
DAT动态地址转换
- 将一个或者多个地址转换成一组地址中的一个或者多个,动态的决定哪两个IP进行转换。
PAT端口地址转换
- 将一个或者多个地址转换成同一个公网IP, 并拥有的不同端口(port)。
- 通过不同的接口,来区分不同的地址
以太网(Ethernet)
以太: 一种居于天空上层的以太(ether) ,称为五大基本元素之第一,主声音 ,“空间”的代名词
即: 青天
为什么叫以太网: 有人说光是通过一种叫以太的物质传播 ,
- 是一种能够传递光的网