计算机网络笔记-1

ARP

1.ARP基本概念介绍

ARP:地址解析协议
地址解析是发现两个地址之间的映射关系的过程
ARP提供从网络层地址到相关硬件地址的动态映射

2.MAC地址学习过程

ARP地址解析是发生在TCP/IP协议栈从上层到下层的封装过程中。(第三层封装IP,第二层封装MAC)
如主机A与主机B通信过程:
1、根据主机A上的路由表内容,确定主机B的IP,A在本地ARP缓存中检查是否有对应的MAC地址
2、如果没有找到映射,会发起询问B的MAC地址的ARP请求帧(包含自己的IP和MAC,请求的IP),广播到本地网络上
3、交换机收到该帧后,会将其MAC地址和端口建立映射关系,并生成相应的映射条目,保存到交换机的MAC地址表中,并且也会广播该帧(除接收端口外)。
4、网络上的主机检查是否与请求的IP匹配,不匹配则不作回应。如果主机B匹配,会将主机A的MAC地址与IP映射关系更新到自己的ARP表项中,并且会以单播的形式通过端口返回一个ARP应答。
5、交换机收到主机B的单播应答后,将主机B发来的数据帧的源MAC地址与对应的端口更新到自己的转发表中,然后查看自己的转发表发现目标MAC对应某端口,于是通过该端口发送回目标主机。

3.MAC地址欺骗

交换机的MAC地址学习过程是,交换机检查收到数据包的源MAC地址,并查找MAC地址表中与之相匹配的项。如果不匹配,交换机将重新录该MAC地址和接收该数据帧的端口。当发送的是伪造数据包时,就实施了MAC欺骗。MAC欺骗会导致某主机接受不到数据,阻止局域网内任意电脑使用网络。

解决办法:
(对重要主机)使用静态条目,查找一个特定IP的MAC地址时,避免ARP请求/应答。

IGMP

IGMP:互联网组管理协议
multicast:组播

接收方通过指明组播地址和可选源列表来表明它们希望接收的流量。这个信息作为主机和路由器中的软状态来维持。
ARP通常根据目的地的IPv4地址确定其MAC地址,在组播中,将一个IP组播地址直接映射到一些对应的MAC地址。
为了在链路层网络中有效承载IP组播,在IP层和链路层帧的数据分组和地址之间应该有一个一对一的映射。
IANA拥有组播地址空间(具体为224.0.0.0~239.255.255.255)
组播地址范围为01:00:5e:00:00:00~01:00:5e:ff:ff:ff。
IP组地址到IEEE 802 MAC地址映射规则是:前9位是位替换,后23位是位复制。

IGMP用于让组播路由器知道哪些主机当前属于哪些组播组
组播路由器定期向每个连接的子网发送IGMP请求,确定组播状态。
主机使用报告响应,说明组播状态;如果状态变化,主机也可以主动发送报告。

路由表内容

destination 目的网段
Netmask 子网掩码
Gateway 网关 下一跳路由器的入口ip
Interface 接口 到达该目的地的本路由器的出口ip
Metric 跳数 优先选择最低跳数的接口

TCP/UDP区别

特点比较

  • TCP特点
    • 优点
      1.传输数据前,有三次握手建立连接
      2. 传输数据时,有确认、窗口、重传、拥塞控制机制
      3.传输数据后,断开连接用来节约系统资源
    • 缺点
      慢,效率低,占用系统资源高,易被攻击
      原因:
      1.TCP传数据前的连接和传数据时的一些机制会消耗大量时间。
      2.TCP每个连接都会占用系统的CPU、内存等资源。
  • UDP特点
    • 优点
      快,比TCP稍安全
      无状态传输协议,传输数据非常快
    • 缺点
      不稳定、不可靠
      网络质量不好时容易丢包

基本区别

  1. 基于连接与无连接
  2. TCP要求系统资源较多(系统CPU,内存),UDP较少;
  3. UDP程序结构较简单
  4. 流模式(TCP)与数据报模式(UDP);TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
  5. TCP提供可靠的服务。通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
  6. TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

应用场景

  • TCP应用场景:
    对网络通讯质量有要求,数据要准确无误的传递给对方,比如
    HTTP、HTTPS、FTP等传输文件的协议
    POP、SMTP等邮件传输的协议。
    Telnet、SSH

  • UDP应用场景:
    1.面向数据报方式
    2.网络数据大多为短消息
    3.拥有大量Client
    4.对数据安全性无特殊要求
    5.网络负担非常重,但对响应速度要求高
    6.长视频、实时系统

UDP不可靠原因

UDP只有一个socket接受缓冲区,没有socket发送缓冲区,即只要有数据就发,不管对方是否可以正确接受。而在对方的socket接受缓冲区满了之后,新来的数据报无法进入到socket接受缓冲区,此数据报就会被丢弃,UDP是没有流量控制的,故UDP的数据传输是不可靠的。
发送频率过快丢包解决:
发包的过程设置sleep,程序执行后开始监听,收到一个数据包之后最短时间回到监听状态。
发送包较大导致丢包解决:
发送的包超过mtu,可能会超过接收者的缓冲导致丢包,设置socket接收缓冲
发送包巨大丢包解决:
切割成小包逐个send

猜你喜欢

转载自blog.csdn.net/MinutkiBegut/article/details/112577857