Linux网络设置(第二版) --互联网寻址过程
Linux网络设置
--互联网寻址过程
1、TCP/IP与OSI参考模型比较
|
TCP/IP |
OSI |
|
|
物理层 |
网卡 |
|
|
数据链路层 |
* |
MAC地址 |
|
网络层 |
IP,ICMP,ARP协议 |
|
|
传输层 |
TCP,UDP |
|
|
会话层 |
* |
客户端 – 服务器 |
|
表示层 |
* |
数据的加密,压缩 |
|
应用层 |
SSH,Apache等实际应用 |
|
2、互联网寻址过程
1)MAC地址
dc:0e:a1:d5:8a:b2 【硬件地址:48位,6段,16进制书写】
厂商标识(前24位):网卡标识(后24位)
附- Linux查看:ifconfig eth0
Windows查看:ipconfig /all
2)IP地址
192.168.14.127 【IPv4:32位,4段,10进制书写】
【IPv6: 128位,16进制书写】
拓展-DOS”拒绝服务攻击” SYNFLOOD(像洪水一样的请求包,雅虎被停,IPv6对该问题做出了安全性的加强)
3)TCP/UDP
TCP:可靠,三次握手(断点重发,定时器)【两军问题】【点到点】 全双工
UDP:速度快,如:QQ,音频/视频分享
4)FQHN-完整的计算机名称[域名]
主机名【www】.二级域【sdust】.顶级域【.cn】.根域【.】
域名层次服务结构
【全世界有13组根域服务器】
4)ARP地址解析协议
ARP解析过程
arp -a #查看ARP缓存表
arp -d [IP地址] #删除ARP记录
arp -s [IP地址] [MAC地址] #添加ARP静态记录【谨慎添加,永久生效】
5)RARP反向地址解析协议 #端口的WebServer,A主机的端口应该是1024以上随机分配的高端口
6)域名解析成为IP地址
a)Hosts解析方式【最早】:/etc/hosts文件保存【Windows系统下也有保存】
格式:IP地址 主机名/域名 别名
这个文件至今一直在使用,比如某些杀毒软件会将一起不法网站的IP地址屏蔽到127.0.0.1这个本机地址
b)NIS – Network Information System【Sun公司开发】
#文件的集中管理
c)DNS – Domain Name System #domain 域名,领域
#整个互联网都是基于DNS的域名解析,其中BIND是最流行的域名解析软件
域的委托管理
递归查询[速度不会很快]
客户端 ----> www.csdn.net
1、本机DNS服务器【缓存(广义缓存)】
因此:如果访问一个网站较慢,(1)可能光缆带宽不足,(2)DNS服务器没有该网站缓存,需要首先递归解析,(3)服务器性能较差
2、根域 .
→ .net
3、顶级域 .net
→ csdn.net
→ 返回 DNS服务器
→ 返回 客户端
缓存机制
广义缓存:如果已经定位了www.csdn.net,那么,下一次访问www.263.net的时候,就不会再次询问根域【.】,而是直接定位到了.net服务器,如果这是再访问java.263.net的时候,就直接定位到了263.net的服务器,而不是再次访问.net服务器
附: 1、一个MAC地址可以对应多个IP地址
ifconfig eth0:1 192.168.1.1 #添加一块新的虚拟网卡eth0:1
2、一个IP地址可以对应多个MAC地址
如:cluster集群技术进行轮循负载,因MAC地址的不同进行平均负载
Linux上可以将两块网卡绑定一个IP,进行加速
3、一个域名可以对应多个IP地址
Windows下:nslookup 域名 #可以查看该网站所拥有的IP地址
4、一个IP可以对应多个域名
Linux网络设置(第二版) --互联网寻址过程的更多相关文章
- Linux网络设置(第二版) --Linux网络设置
Linux网络设置 --网络配置文件与命令 个 附- 服务程序可以不使用固定端口,但是一般对外公开的WebServer不会改变端口,但是像SSH一般推荐更改,可以回避扫描 nmap [IP地址] #扫 ...
- Linux操作系统(第二版)(RHEL 8/CentOS 8)
Linux操作系统(第二版)(RHEL 8/CentOS 8) http://www.tup.tsinghua.edu.cn/booksCenter/book_08172501.html Linux操 ...
- Linux网络设置高级指南
from:http://www.oschina.net/question/23734_117144 Linux网络设置高级指南 本文面向的是被Linux复杂的有线无线网络架构弄得头昏脑胀:或者被网上半 ...
- Linux操作系统(第二版)(RHEL 8/CentOS 8)——勘误表
Linux操作系统(第二版)(RHEL 8/CentOS 8)--勘误表 http://www.tup.tsinghua.edu.cn/booksCenter/book_08172501.html 本 ...
- Python编写的Linux网络设置脚本,Debian Wheezy上测试通过
hon编写的Linux网络设置脚本,Debian Wheezy上测试通过 阿里百川梦想创业大赛,500万创投寻找最赞的APP 技术细节参见Linux网络设置高级指南 注意事项参见程序注释 ...
- linux网络设置和虚拟机克隆转移之后网卡找不到
linux网络设置和虚拟机克隆转移之后Error:No suitable device found:no device found for connection 'System eth0'问题解决 ...
- VM中Linux网络设置(固定ip、连接外网开发环境)
在开发过程中,我们经常需要在linux中进行操作.毕竟服务器的系统大多数都是Linux,所以在dev环境需要配置好一台Linux系统配合开发. 在VMWare Workstation Pro中 ...
- Linux网络设置
==========================网络设置========================== 1.IP地址 临时:ifconfig 192.168.124.129 永久: vi / ...
- 《深入理解linux内核》第二章 内存寻址
三种不同的内存地址 逻辑地址(logical address)包含在linux实际指令中的地址,即分段式地址,是对应的硬件平台段式管理转换前地址由16位的段选择符(segment selector)和 ...
随机推荐
- Spring之WEB模块
Spring的WEB模块用于整合Web框架,例如Struts 1.Struts 2.JSF等 整合Struts 1 继承方式 Spring框架提供了ActionSupport类支持Struts 1的A ...
- Android简易实战教程--第三十一话《自定义土司》
最近有点忙,好几天不更新博客了.今天就简单点,完成自定义土司. 主布局文件代码: <RelativeLayout xmlns:android="http://schemas.andro ...
- Android开发 无法导入ViewPagerIndicator或其他开源框架无法导入
这个问题又花费了好长时间,其实就是很简单的问题,因为各种开源框架的库名称都叫liberary,如果上次导入其他开源框架没有更改名称的话,你再导入其他第三库的时候,系统发现重名,就提示无法导入现象. 解 ...
- python地理数据处理库geopy
http://blog.csdn.net/pipisorry/article/details/52205266 python地理位置处理 python地理编码地址以及用来处理经纬度的库 GeoDjan ...
- Ubuntu和Windows设备共享
http://blog.csdn.net/pipisorry/article/details/51725942 蓝牙设备如键盘.鼠标都可以. 装的双系统win7和Ubuntu,如果只使用一个系统,蓝牙 ...
- Android透明动画
Android透明动画 核心方法 public void startAnimation(Animation animation) 执行动画,参数可以是各种动画的对象,Animation的多态,也可以是 ...
- Android Demo---如何敲出圆角的Button+圆角头像
经常玩儿App的小伙伴都知道,APP上面有很多按钮都是圆角的,圆形给人感觉饱满,富有张力,不知道设计圆角按钮的小伙伴是不是和小编有着相同的想法`(*∩_∩*)′,听小编公司开发IOS的小伙伴说,他们里 ...
- (NO.00005)iOS实现炸弹人游戏(六):游戏数据的初始化(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在我们来看看实际初始化地图的randomCreateMap方法 ...
- java wait和notify及 synchronized sleep 总结
java 中线程我一直弄不清线程锁等 所以写了一些例子验证看法: 在这之前先看下API中wait中的解释: wait:方法来之java.lang.Objetc 方法翻译:在其他线程调用此对象的 not ...
- UNIX环境高级编程——线程属性之分离属性
说到线程的分离状态,我认为,之所以会有这个状态,是因为系统对某些线程的终止状态根本不感兴趣导致的. 我们知道,进程中的线程可以调用: int pthread_join(pthread_t tid, v ...