天天看点

Linux网络编程——基础概念网络的概念

网络的概念

网络

关于计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合
           
  • 线路(网络中会用到)

    双绞线(网线)—> 最大传输距离100米

    同轴电缆

    光纤 —> 速度快,但是不能折断

  • 设备

    路由器 —> 网络层,利用IP地址,实现网络与网络之间的数据链接

    交换机 —> 数据链路层,利用MAC地址,实现网络端口的扩展

    集线器 —> 数据链路层

互联网

互联网:将不同的网络连接起来
           

最大的互联网就是Inter网,还有一种互联网为专用网络

IP地址

IP地址:主机的逻辑地址,由连接接入的路由器分配
           

IPV4:4字节 32位

  • 点分十进制 的字符串,由网络号和主机号构成,可分为A、B、C、D、E五类
    Linux网络编程——基础概念网络的概念
地址类型 范围
A类地址 0.0.0.0~127.255.255.255
B类地址 128.0.0.0~191.255.255.255
C类地址 192.0.0.0~223.255.255.255

D类和E类一般不使用

IPV6:16字节 128位

MAC地址

MAC地址:主机的物理地址,集成在网卡上,不会随着位置的改变而改变
           

协议

协议:一种约定,一种规定,规定了通信双方传输数据的一种格式
           
Linux网络编程——基础概念网络的概念

ARP协议

ARP协议在主机ARP高速缓存中应存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)
每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由址到硬件地址的映射表
           
  • 主机如何知道所存储的地址
  1. 主机A向本局域网主机B发送数据报时,会先在ARP高速缓存中查看有无B的IP地址,若有,则找到相应的MAC地址
  2. 若没有B的IP地址

    (1)ARP进程在本局域网上广播发送一个ARP请求分组

    (2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组

    (3)主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组

    (4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的地址到硬件地址的映射,B也将A的地址映射写入B得ARP高速缓存

    ARP请求分组是一对多,而ARP响应分组是单播的,即从一个源地址发送到一个目的地

    Linux网络编程——基础概念网络的概念
  • ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间,并且ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
  • 使用ARP的四种典型情况
  1. 发送方是主机,要把IP数据报发送到本网络上的另一个主机,这时用ARP找到目的主机的硬件地址
  2. 发送方是主机,要把IP数据报发送到另一个网络上的一个主机,这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成
  3. 发送方是路由器,要把IP数据报转发到本网络上的一个主机,这时用ARP找到目的主机的硬件地址
  4. 发送方是路由器,要把IP数据报转发到另一个网络上的一个主机,这时用ARP找网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成
  • 为什么要使用ARP而不是直接使用硬件地址通信

    由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。但统一的IP地址把这个复杂问题解决了。连接到因特网的主机只需拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为上述的调用ARP的复杂过程都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的