IP协议(IP协议在网络层)
1 IP协议
概念:
主机: 配有IP地址, 但是不进行路由控制的设备;
路由器: 即配有IP地址, 又能进行路由控制;
节点: 主机和路由器的统称;
IP协议头格式
4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit
表示最大的数字是15, 因此IP头部最大长度是60字节
16位总长度(total length): IP数据报整体占多少个字节.
16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片
里面的这个id都是相同的.
3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位
置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话, 最后一个分片置为1, 其他是0. 类似于一个结束标记.
13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 其实就是在表
示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后
一个报文之外, 其他报文的长度必须是8的整数倍(否则报文就不连续了).
8位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数. 一般是64. 每次经过一
个路由, TTL -= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环
网段划分(重要)
IP地址分为两个部分, 网络号和主机号。
网络号: 保证相互连接的两个网段具有不同的标识;
主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;
不同的子网其实就是把网络号相同的主机放到一起.
如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须
不能和子网中的其他主机重复.
IP地址分类
1、A类( 0.0.0.0到127.255.255.255)
0+网络号7位+主机号24位
2、B类(128.0.0.0到191.255.255.255)
1+0+网络号14位+主机号16位
3、C类(192.0.0.0到223.255.255.255)
1+1+0+网络号21位+主机号8位
4、D类( 224.0.0.0到239.255.255.255)
1+1+1+0+多播组号28位
5、E类(240.0.0.0到247.255.255.255)
1+1+1+1+0+27位留待后用
主机号
子网地址范围:网络号为开始值,结束值为255-子网掩码最后一部分十进制的值加上开始值。
网络号
IP地址和子网掩码按位与
私有IP地址和公网IP地址
10.:前8位是网络号,共16,777,216个地址
172.16.-172.31.,前12位是网络号,共1,048,576个地址
192.168.,前16位是网络号,共65,536个地址
以上三种称为私网,其余的则称为全局IP(或公网IP);
特殊的IP地址
将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网;
将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主
机发送数据包;
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
2 路由
在复杂的网络结构中, 找出一条通往终点的路线;
3 数据链路层
1、以太网
“以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些
物理层的内容.
2、以太网帧格式
源地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位,是在网卡出厂时固化的;
帧协议类型字段有三种值,分别对应IP、ARP、RARP;
帧末尾是CRC校验码。
3、认识MTU
MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层,产生的限制.
最大值1500字节称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
MTU对UDP的影响:
UDP实际传输最大值:1500-UDP协议头信息8字节-IP协议头20字节=1472字节
MTU对TCP的影响:
TCP的一个数据报也不能无限大, 还是受制于MTU. TCP的单个数据报的最大消息长度, 称为
MSS(Max Segment Size);
4、认识MAC地址
MAC地址用来识别数据链路层中相连的节点;
长度为48位, 即6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的
mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
4 ARP协议
ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议;
作用:ARP协议建立了主机 IP地址 和 MAC地址 的映射关系.
流程:
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段
目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中
5 NAT技术
NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能;
本质:实现一个内网IP到外网IP的映射。
缺点:
1.部署和运行NAT服务需要硬件支持。
2.当NAT挂掉之后,整个局域网就瘫痪了。
NAT和代理服务器的区别
1.应用场景:NAT解决IP不足,而代理是解决不能到达的问题。
2.部署:NAT通常会部署到防护墙上,而代理是一个软件,直接安装就可以使用了。
3.所在层级不同:NAT是网络层,代理是应用层。
6 重要应用层协议DNS
DNS是一整套从域名映射到IP的系统
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址不方便记忆.
于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用hosts文件来描述主机名和IP地址的关系.
需要注意的是:DNS是应用层协议,DNS底层使用UDP进行解析,浏览器会缓存DNS结果