《Linux高性能服务器编程》学习笔记(一)--tcp/ip协议族
学习更多,请点击:《Linux高性能服务器编程》学习笔记:目录索引
TCP/IP协议族
图解
封装
图解
分用
图解
以太网帧格式
图解
ARP协议结构详解
图解
ARP框架整理
图解
注:需要该.xmind文件,可自行下载ARP框架图.xmind
DNS工作原理
①输入域名后,现在本机对应的域名服务器中查找
②域名服务器先查找自己的数据库中的数据,如果没有,就向上挤域名服务器查找,依次类推
③最多向上查找到根域名服务器,肯定能找到这个域名对应的IP地址
④域名服务器也有缓存机制,把曾经访问过的域名和对应的IP地址缓存起来,可以加速查找过程
NAT和NAPT
NAT的作用和原理
作用:
解决IP不够用的方式之一,帮助局域网中的主机能访问公网服务器
原理:A局域网中的主机a,想访问公网服务器,因为a在自己的局域网中的IP地址都是私有IP,不可以直接访问公网,因此主机a通过NAT路由器(该路由器中有一张自动生成转换表)将自己的私有IP地址换成NAT路由器的公网IP,从而访问公网服务器
NAPT的作用和原理
值得思考的问题:
局域网中的主机访问公网,将私有IP转换成公网IP,这个过程很容易,那么公网服务器的应答数据如何正确返回给对应的局域网路由器呢?因为不同局域网的路由器的私有可以相同(通常都是1号),公网服务器该如何正确找到“发送请求的主机”所在的局域网的路由器呢?
作用:使得公网服务器返回的应答数据能正确找到对应的局域网路由器
原理:使用IP+PORT机制,NAT路由器中转换表维护着这种关联关系
,如下:
私有IP1+PORT1 -> 公网IP+PORT1
私有IP2+PORT1 -> 公网IP+PORT2
私有IP3+PORT1 -> 公网IP+PORT3
NAT技术的缺陷
①如果主机从未访问过公网服务器,那么服务器无法知道该主机的MAC地址
②转换表的生成和销毁都要额外的开销
③通信中一旦NAT设备异常,即使存在热备,所有的TCP连接也会断开