书籍:《计算机网络》——谢尔希
附上pdf链接:https://pan.baidu.com/s/1QRQVE6gex5UNPJ6NuCjiGg
《Linux高性能服务器编程》
什么是网络?
1.网络:将多个主机连接起来,构成一个集合
2.线路:双绞线(最大传输距离100米) 同轴电缆 光纤(速度快,不能折断)
3.设备:路由器(网络层) 交换机(数据链路层) 集线器
什么是互联网?
互联网:将不同的网络来连接起来,最大的互联网是inter网;限于inter网的速度,大型公司也有专用网络,比如阿里云。
IP地址
IP地址:主机的逻辑地址
IPV4:4字节 32位 点分十进制“192.168.0.1”
IPV4分为5类,具体在《计算机网络》4.2.2章查看
IPV6:16字节 128位
1 | 为什么自己本机的IP地址经常是192.168.*.*? |
MAC地址
MAC地址:主机的物理地址
协议
协议:一种约定,一种规定
1 | HTTP 超文本传输协议 |
ARP地址解析协议
每一个主机都有一个ARP高速缓存,里面存的是本局域网上的各主机和路由器的IP地址到硬件地址的映射表。这些都是该主机目前知道的一些地址。
主机如何查找地址
主机A像本局域网的另一个主机B发送数据报,首先查看主机A的ARP缓存内有无主机B的IP地址。
如有,就在ARP高速缓存中查出其对应的硬件地址,再把硬件地址写入MAC地址,然后通过局域网把该MAC帧发往硬件地址。
如无,一种可能是主机B刚入网,或者主机A刚开机,其高速缓存是空的,这是就运行ARP,按照以下步骤找出主机B的硬件地址。
(1)ARP进程在本局域网上以广播的形式发送一个ARP请求(主要内容是我的IP地址是多少多少,硬件地址是多少多少,我想找IP地址是多少多少的主机的硬件地址)。
(2)本局域网所有的主机上运行的ARP进程都会收到这个ARP请求。
(3)主机B在ARP请求分组中看见了自己的IP地址,就像主机A发送ARP响应(单播),说明自己的硬件地址,并且把主机A的IP地址和硬件地址存到自己的ARP高速缓存中。
(4)主机A收到主机B的ARP响应之后,就在自己的ARP高速缓存中写入主机B的IP地址和硬件地址。
ARP把高速缓存中的信息都设置了一个生存时间。把超过时间的信息删掉。这是为了防止主机B的网络适配器坏了,更换网络适配器之后,就会存在主机A一直找不到主机B的情况。有了生存时间,当主机B的信息从主机A的ARP高速缓存中消失后,主机A又会查找一次地址。
使用ARP的四种典型情况
(1)主机A发送数据至本局域网的主机B。用ARP找到主机B的硬件地址即可。
(2)主机A发送数据至另一个局域网的主机B。这是用ARP找到本网络的一个路由器硬件地址。剩下交给路由器就可以。
(3)路由器发送数据至本网络的一个主机A,用ARP找到主机A的硬件地址即可。
(4)路由器发送数据到另一个网络的一个主机。用ARP找到本网络的一个路由器的硬件地址,剩下交给这个路由器即可。