理解IP地址和MAC地址

概述:

  • IP 是地址,有定位功能(网与网的通讯)(网络层)
  • MAC 是身份证,无定位功能(在子网干活)(链路层)

首先是如何查看ip地址的问题:

Window:ipconfig

Linux:ifconfig 、ip addr

#Linux下ip addr的内容
[email protected]:~# 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 # MAC地址
    inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0  #10.100.122.2就是一个IP地址
valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fec7:7975/64 scope link valid_lft forever preferred_lft forever

在利用TCP/IP协议族进行通信的时候,有三个比较关键的确认身份的信息:mac地址、IP地址和端口号。

  • IP地址:(基于计算机或路由器)在网络层的IP头部里,用于识别网络中互联的主机和路由器,其实主要是确认子网,通过子网掩码确认某个IP地址所在的子网,而后再在子网内部确认mac地址就能找到准确的用户了。
  • MAC地址:(基于网卡或路由器)在数据链路层包裹在以太网头部中的,它主要用来识别同一个链路中的不同计算机。Mac地址即网卡号,每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址,长度是 48 个二进制位,通常用 12 个十六进制数表示。
  • 端口号:在传输层包含在TCP/UDP头部中的,用于识别应用程序。一台主机上能运行多个程序,那么接收到的消息到底是哪个程序的呢?就需要端口号来确认。
  • 端口号有两种:
    •   固定的端口号,是形如http,telnet,ftp等广为使用的应用协议所使用的端口号是固定的
    •   动态分配的端口号,这个时候服务端要确定监听端口号,接受服务的客户端没必要确定端口号

端口号由传输层协议决定,因此不容传输协议可以使用相同的端口号,所以TCP和UDP可以使用同一个端口号

问题:现在很多工具都可以更改本机的MAC地址,也就是网络上存在很多MAC地址被更改成一样的,然而并没有出现通讯异常或者混乱这是为什么?
回答:MAC在一个局域网内冲突才会影响网络通讯,局域网外是通过IP定位,所以不同局域网的网络设备MAC一样是不会有通讯问题的。

学习笔记参考:

IP地址和MAC地址的本质区别

mac地址、ip地址和端口号

原文地址:https://www.cnblogs.com/kumata/p/9182158.html

时间: 2024-10-29 00:45:52

理解IP地址和MAC地址的相关文章

如果重新设计网络,有没有可能合并IP地址跟MAC地址?

前阵子看网络基础相关的书籍,冒过一个疑问,为什么要有MAC地址跟IP地址?两者可否合二为一? 现在的逻辑是这样子:在数据传输过程中,路由器查看这个数据包的IP地址,跟路由表中记录的“IP集合:下一跳的mac地址”做对照,确定了要往那边扔:网卡在接收数据的时候,也会看看这个数据包中记录的目标MAC地址是不是自己,只接收自己的. MAC地址是数据链路层使用到的,IP地址是网络层使用到的.MAC地址是硬件的物理属性,在网卡上固定不变,IP地址是逻辑属性. 所以,因为网络分层的设计,很自然的就想到要使用

IP地址与MAC地址

众所周知,每一块网卡在出厂时都烧录了世界唯一的MAC地址,使用该地址可以在网络中识别不同的计算机.同时,互联网中也使用IP地址来定位客户端,这是因为IP地址比MAC地址定位更方便,而且也更加便于记忆.  1.1 IP地址在大多数的局域网中,IP地址是计算机之间通信的唯一依据.当网络中计算机数量比较多时,想要准确记忆每一台计算机的IP地址,显然是一件不太可能的事情.如果网络规模相当大,而且划分了VLAN,那么网络管理员更无法准确记忆用户IP地址了. IP信息查看--ipconfigipconfig

nbtscan命令和arp -a组合可以查看局域网所有正在使用的IP地址和MAC地址

1.下载nbtstat,解压包里的cygwin1.dll要和nbtscan.exe放在一起,如果cygwin1.dll文件无效,请使用"百度电脑专家"下载 *.dll文件. 2.使用ARP -a 可以查看所有在在线的IP地址和MAC地址.

java获取客户端IP地址和MAC地址

最近项目中要获得客户端的mac地址.服务端是移植的centos系统,arm架构的盒子.客户端是手机和移动设备.(其它场景应该也是类似的) 首先要获得ip地址: 根据客户端的http请求,利用request.getRemoteAddr()获取客户端Ip地址.在局域网内getRemoteAddr()和getRemoteHost()获得的结果相同.request.getRemoteAddr()是获得客户端的ip地址 .getRemoteHost()是获得客户端的主机名 .在有些场景中,可能有Squid

Internet为什么需要IP地址和MAC地址?

1 基本概念 IP地址是Internet协议地址,每个Internet包必须带有IP地址,每个Internet服务提供商(ISP)必须向有关组织申请一组IP地址,然后一般是动态分配给其用户. MAC地址是Ethernet网卡上带的地址,长度为48位.每个Ethernet网卡生产厂家必须向IEEE组织申请一组MAC地址,在生产网卡时在网卡的串行EEPROM中写入一个唯一的MAC地址. 2 为什么需要IP地址和MAC地址? 第一种情形:宽带用户通过ADSL拨号上网 用户/主机(如Host A)最初是

一句话脚本系列之获取eth0网卡的IP地址(或MAC地址)

欢迎转载!转载时请注明出处:http://blog.csdn.net/nfer_zhuang/article/details/42609733 引言 使用场景: 我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后写入到脚本中:另外一种方法就是通过shell命令实时获取指定网卡上的当前IP地址或MAC地址. 一般用法: 使用ifconfig eth0读取网卡信息 手动将IP地址或MA

IP地址映射绑定MAC地址

1.局域网之间通过查询对方IP地址可以将对方Mac地址映射到主机的APR缓冲表中.将主机IP地址映射到Mac上 首先通过 net view 查询共享的的局域网主机 第二:随便选取一个计算机名,强制使用ipv4得到IP地址,ping同之后ARP缓冲表中更新了ARP表,添加了当前的IP地址和对应的Mac 第三 获取主机的APR缓冲表 第四.将得到的Mac地址和自己主机IP地址进行映射 这样就成功的将自己的IP地址映射到局域网中的其他主机的Mac上.常见的蹭网形式.但是校园网存在账户设置不行.应为IP

获取客户端的ip地址与mac地址总结

最近刚完成的一个模块中,需要获取系统客户端的IP地址与物理地址(MAC地址). 1. 获取的本机IP与MAC是服务器的,而非客户端的→_→ 通过JAVA获取,本机的IP地址与MAC地址,使用如下代码即可完成: package com.howin.util; import java.net.*; public class Ipconfig { public static void main(String[] args) throws Exception { // TODO Auto-generat

计算机网络之IP地址与MAC地址

IP地址 IP地址(Internet Protocol Address): 缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址. 它为互联网上的每一个网络和每一台主机分配一个逻辑地址. 常见的IP地址,分为IPv4与IPv6两大类,当前广泛应用的是IPv4. 目前IPv4几乎耗尽,下一阶段必然会进行版本升级到IPv6. IP地址对应于OSI参考模型的第三层网络层,工作在网络层的路由器根据目标IP和源IP来判断是否属于同一网段. 如果是不