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. 双绞线

  • 七类线都是屏蔽线。一般六类线就够了,机房尽量采用屏蔽线
  • 接线方式:568A568B(常用)
  • 电脑接口属于路由接口,新设备一般都具有自动纠错功能

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

网络层协议

  1. IP:v4、v6
  2. ICMP:ping、tracert
  3. ARP:IP 与MAC 转化
  4. RARP:MAC 到IP
  5. 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

三次握手

  1. A -> B 我要发数据了
  2. A <- B 我准备好接收了
  3. A -> B 那我开始发了
  4. 然后A 开始传输数据

窗口

刚开始窗口大小指数增长,稳定之后加减法增长。

UDP

  • nslookup 调用DNS 协议,解析域名下的IP
  • netstat -nao | find "ip或者pid" 查找当前应用的端口号

参考资料

  1. 哔哩哔哩