计算机网络 - 基础概念(学习笔记)

常用网络协议
  • 应用层:DNS、HTTP、HTTPS
  • 传输层:TCP、UDP
  • 网络层:IP,源IP以及目标IP (网关,DHCP,同一局域网内ARP请求MAC地址)
  • MAC层:MAC头
网络分层
  • 复杂程序分层,每一层有各自的任务
  • 假设是一个网口,拿到一个网络包:process_layer2(buffer) ,查看MAC是否是自己,process_layer3(buffer),查看IP,process_tcp(buffer),递交给相应的端口处理
  • 二层设备:只把 MAC 头摘下来,看看到底是丢弃、转发,还是自己留着
  • 三层设备:把 MAC 头摘下来之后,再把 IP 头摘下来,看看到底是丢弃、转发,还是自己留着
IP以及MAC
  • ifconfig 和 ip addr
  • ip addr
  • `
root@test:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff
    inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fec7:7975/64 scope link 
       valid_lft forever preferred_lft forever`
  • net-tools 和 iproute2

  • 无类型域间选路(CIDR): 32 位的 IP 地址一分为二,前面是网络号,后面是主机号

  • 10.100.122.2/24,后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号

  • 广播地址: 10.100.122.255。如果发送这个地址,所有 10.100.122 网络里面的机器都可以收到

  • 子网掩码,255.255.255.0: 子网掩码和 IP 地址按位计算 AND,就可得到网络号

  • 公有IP,私有IP

  • 在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的

  • lo 全称是 loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现

  • MAC 地址,一个网卡的物理地址

  • MAC 地址更像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识

  • net_device flags,网络设备的状态标识: <BROADCAST,MULTICAST,UP,LOWER_UP>

  • UP 表示网卡处于启动的状态;BROADCAST 表示这个网卡有广播地址,可以发送广播包;MULTICAST 表示网卡可以发送多播包;LOWER_UP 表示 L1 是启动的,也即网线插着呢

  • qdisc queueing discipline 排队规则

  • 内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc(排队规则)把数据包加入队列

  • 最简单的 qdisc 是 pfifo

  • pfifo_fast 稍微复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则

  • 数据包是按照服务类型(Type of Service,TOS)被分配到三个波段(band)里面的。TOS 是 IP 头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。

如何配置IP
  • 使用 net-tools (1) sudo ifconfig eth1 10.0.0.1/24 (2) sudo ifconfig eth1 up
  • 使用 iproute2:(1) sudo ip addr add 10.0.0.1/24 dev eth1(2) sudo ip link set up eth1
  • 发送逻辑:(1) 这个地址和我是一个网段的吗,或者和我的一个网卡是同一网段的吗?只有是一个网段的,它才会发送 ARP 请求,获取 MAC 地址 (2) 如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关 (3) 如果配置了网关的话,Linux 会获取网关的 MAC 地址,然后将包发出去
  • 网关要和当前的网络至少一个网卡是同一个网段的
  • 不同系统的配置文件格式不同,但是无非就是 CIDR、子网掩码、广播地址和网关地址
动态主机配置协议(DHCP)
  • 只需要配置一段共享的 IP 地址。每一台新接入的机器都通过 DHCP 协议,来这个共享的 IP 地址里申请,然后自动配置好就可以了
  • DHCP Discover
  • 新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址为 255.255.255.255。广播包封装了 UDP,UDP 封装了 BOOTP。其实 DHCP 是 BOOTP 的增强版。Boot request
    
  • DHCP Server 通过唯一标识符MAC知道新人来了。 DHCP Offer,DHCP Server 为此客户保留为它提供的 IP 地址
    
  • DHCP Server 分配了一个可用的 IP ,除此之外,服务器还发送了子网掩码、网关和 IP 地址租用期等信息
    
  • 新来的机器会选择其中一个 DHCP Offer,一般是最先到达的那个,并且会向网络发送一个 DHCP Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等
    
  •  DHCP Server 接收到客户机的 DHCP request 之后,会广播返回给客户机一个 DHCP ACK 消息包,表明已经接受客户机的选择,并将这一 IP 地址的合法租用信息和其他的配置信息都放入该广播包,发给客户机
    
预启动执行环境(PXE):Pre-boot Execution Environment
  • PXE 客户端启动之后,发送 DHCP 请求之后,除了能得到一个 IP 地址,还可以知道 PXE 服务器在哪里,也可以知道如何从 PXE 服务器上下载某个文件,去初始化操作系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值