TCP/IP 基础
网络协议分层
OSI 分层标准
自上而下分为七层:
- 应用层:QQ、Edge
- 表示层:对上层数据进行转码、压缩
- 会话层:控制发送速率(下载限速)
- 传输层:TCP/UDP(防火墙)
- 网络层:IP(路由,以IP 地址为目的)
- 链路层:tracert(交换,以MAC 为目的)
- 物理层:电缆等等
TCP/IP 分层标准
TCP/IP 将OSI 的5、6、7 层以应用层统称,有时也会将1、2 层统称网络接口层
。数据由高到低会逐层添加标签:
- 应用层:PDU – 数据
- 传输层:Segment – TCP + 数据
- 网络层:Packet – IP + TCP + 数据
- 链路层:Frame – MAC + IP + TCP + 数据
- 物理层:Bit – Bit 流
物理层
1. 双绞线
- 七类线都是屏蔽线。一般六类线就够了,机房尽量采用屏蔽线
- 接线方式:
568A
、568B
(常用) - 电脑接口属于路由接口,新设备一般都具有自动纠错功能
2. 无线
- 5G 穿墙较弱
- 无线拖的设备越多越慢
- 小型网络推荐使用胖AP,如:Aruba 205
链路层
链路层包括两个子层
MAC
Media Access Control Sub-Layer
- 在地址表内没有目标
MAC
地址时,会进行二层广播 - 没有老化时间(容易形成环路)
- 二层转发只需要MAC 地址(与接口的对应关系)
- 用于同一子网
LLC
Logic Link Control Sub-Layer
。具有逻辑纠错的功能
- UP 方式:Status up + Protocol up 才可以
- 转发速率控制
- 双工:全双工、半双工(载波监听多路访问)
交换机的配置一定要做好备注(最起码要精确到房间号) 二层网络只认MAC 地址(发送的的时候如果判断属于同一子网,就在二层网络走)
网络层
网络层的作用是在不同子网之间转发数据包。数据由高层到低层会加上tag
,反方向传输时则会剥去tag
。
网络层协议
- IP:v4、v6
- ICMP:ping、tracert
- ARP:IP 与MAC 转化
- RARP:MAC 到IP
- IGMP:组播加入协议
IPv4
- IP 包切片。将上层比较大的(TCP/UDP)包拆分成多个IP 包:
- MTU:默认切片大小
- Flag:1 禁止切片(一旦禁止切片,大于MTU 的数据将会发送失败)。具体表现为应用能访问,但是文件不能下载
- TTL:Time To Live
- 数据包在三层设备的存活时间
- 通过TTL 降低路由环路的影响
ICMP
- ping:用于判断网络通断
- tracert:用于追送三层设备的路径。在现网中通常会禁用,以避免泄露信息
- 先发送一个
TTL=1
,看有无回复 - 在发送一个
TTL=2
以此类推 *,*,*
表示请求超时
- 先发送一个
ARP
同一子网
- 查ARP 表,没有的话进行
二层
广播 - 广播地址:
FF-FF-FF-FF-FF-FF
- 交换机接收到广播包,会进行泛洪发送给所有接口
- ARP 绑定:
ARP -s ...
绑定之后可以避免ARP 攻击
针对于不同子网:
- 直接去查询网关的
MAC
- 将数据包丢给网关进行转发
- 网关进行同样的判断,直到找到目的IP
传输层
TCP
三次握手
- A -> B 我要发数据了
- A <- B 我准备好接收了
- A -> B 那我开始发了
- 然后A 开始传输数据
窗口
刚开始窗口大小指数增长,稳定之后加减法增长。
UDP
nslookup
调用DNS 协议,解析域名下的IPnetstat -nao | find "ip或者pid"
查找当前应用的端口号