第一讲 为什么要学网络协议
协议三要素
- 语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。
- 语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
- 顺序,就是先干啥,后干啥。
常用的协议
- 应用层(数据封装格式)
- DHCP
- HTTP
- HTTPS
- RTMP
- P2P
- DNS
- GTP
- RPC
- 传输层 (会话连接机制、端口号)
- UDP
- TCP
- 网络层
- ICMP
- IP
- OSPF
- BGP
- IPSec
- GRE
- 链路层
- ARP
- VLAN
- STP
- 物理层
- 网络跳线
浏览器输入网址后发生了什么事情
- 浏览器输入 www.kaola.com
- 查找目标IPd地址
- 一般通过DNS协议查找,或者HTTPDNS查
- 结果得到目标ip地址:106.114.138.24
- 打包请求
- 此处用了https协议, 无论使用什么协议都会有正文部分
- 应用层:在http头:请求方式,url地址,协议版本号,正文格式,正文长度
- 传输层:tcp头:浏览器端口号,电商服务器端口号
- 网络层:ip头:客户端IP,电商服务器ip
- 链路层:MAC头:客户端的mac地址,电商服务器的mac
第二讲 网络分层的真实含义是什么
问题:二层设备、三层设备、四层LB、七层LB是什么?
二层设备的处理是mac层的东西,就是只把MAC头摘下来,看看到底是丢弃、转发、还是自己留着 三层设备就是把MAC头摘下来之后,再把IP头摘下来,看看到底是丢弃、转发、还是自己留着
只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。
第三讲 ifconfig:最熟悉又陌生的命令行
windows:ipconfig
linux:ifconfig、 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
复制代码
IP地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号码。
以上内容,IP地址为:10.100.122.2。
32的IP地址被分成了5类,A、B、C类主要分两部分,前面一部分是网络号,后面一部分是主机号。
无类型域间选路(CIDR)
把IP地址一分为二,前面的是网络号,后面的是主机号。
10.100.122.2/24,前面24位是网络号,后面8位是主机号
广播地址 10.100.122.255
子网掩码 255.255.255.0
网络号 将子网掩码和IP地址按位计算AND,就可以得到网络号:10.100.122.0
公有IP地址和私有IP地址
装换公式
ip=>机器号、网络号 先看CIDR,如果是8的整数倍,则不需要转换成2进制,前部分为机器号,后部分为网络号;如果不是8的整数倍,则需要把分界十进制转换成2进制,同样,前部分为机器号,后部分为网络号 ip=>第一个地址 前部分+ 1(二进制) ip=>子网掩码 前部分(1)+ 后部分(0)如:255.255.<111111><00>.00 => 255.255.252.0 ip=>广播地址
算一个IP地址的求一下这个网络的第一个地址、子网掩码和广播地址
16.158.165.91/22
- /22 不是8的倍数,要转换成2进制
- 16.158.165.91 =》 16.158.<101001><00>.91,则网络号为16.158.<101001>,机器号是<00>.91
- 第一个地址16.158.<101001><00>.1,即16.158.164.1
- 子网掩码是255.255.<111111><00>.0,即255.255.252.0,
- 广播地址16.158.<101001><11>.255,即16.158.167.255
MAC 地址
link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff
是一个网卡的物理地址,用十六进制,6个byte表示 MAC地址更像是身份证,是一个唯一的标识
网络设备的状态标识
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
叫做net_device flags,网络设备的状态标识
- UP标识网卡处于启动状态
- BROADCAST标识这个网卡有广播地址,可以发送广播包
- MULTICAST 标识可以发送多播包
- LOWER_UP 标识 启动,即网线是插着的
- mtu 1500 最大传输单元MTU(MAC层)为1500,这是以太网的默认值
- qdisc pfifo_fast qdisc全称queueing discipline中文叫排队规则。
总结
- IP是地址,有定位功能;MAC是身份证,无定位功能
- CIDR可以用来判断是不是本地人
- IP分公有IP和私有IP