Author:老九
计算机专业
可控之事 沉重冷静 不可控之事 乐观面对
[email protected]
☺️
❓ ❤️ ☕️ ❗️
————————————————
版权声明:本文为CSDN博主「浦上青天」的原创文章
一个IP包从源主机传输到目标主机可能需要经过多个不同的网络。由于各种网络的数据帧都有一个最大传输单元(MTU)的限制,如以太网帧的MTU是1500;因此,当路由器在转发IP数据包时,如果数据包的大小超过了出口链路的最大传输单元时,则会将该IP分组分解成很多个足够小的片段,以便能够在目标链路上进行传输。这些IP分片重新封装一个IP包独立传输,并在到达目标主机时才会被重新组起来。所以网络层的IP可以自动分包组包,而传输层的UDP就不行
路由器仅根据网络地址进行转发。当IP数据包经过由路由器转发的时候,如果目标网络与本地路由器直接相连,则直接将数据包交付给目标主机,这称为直接交付。否则,路由器通过路由表查找路由信息,并将数据包转交给指明的下一个路由器,这称为间接交付。路由器在间接交付中,若路由表中由到达目标网络的路由,则把数据包传送给路由表指明的下一个路由器。如果没有路由,但路由表中有一个默认的路由,则把数据报传送给指明的默认路由器;如果两者都没有,则丢弃数据包并报告错误。
指定IP协议的版本,对于IPv4来说,就是4,对于IPv
6来说,就是6
4bit相当于0-15,IP头部最大长度为60字节,根据可选字段来变化
3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置位0),4位TOS分别表示 最小延时,最大吞吐量,最高可靠性,最小成本,这四者相互冲突,只能选择一个服务类型
IP数据包整体占多少个字节
例如TCP数据包的长度,在TCP协议头本身中没有,要搭配IP协议来确定,IP的总长度-IP报头 = TCP包长度
再减去TCP报头就是应用层数据长度
唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的(用来区分那些个小包属于同一个大包)
第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用)第二位是1表示禁止分片;这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示“更多分片“,如果分片了的话,最后一个分片置为1,其他是0,类似于链表中的尾节点null
是分片相对于原始IP报文开始处的偏移,其实就是在表示当前分片在原报文中处于在哪个位置,实际偏移的字节数就是这个值*8而得。因此,除了最后一个报文之外,其他报文得长度必须是8得整数倍
数据报到达目的地得最大报文跳数,一般是64,每次经过一个路由,TTL-1,一直减到0还没有到达,那么就丢弃了,这个字段只要是用来防止出现路由循环问题
表示上层得协议类型
使用CRC进行校验,来鉴别头部是否损坏
表示发送端和接收端
4个字节
32位比特
点分十进制,8个为一组,2的八次方,0-255
不定长,最多40字节
网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
不同的子网其实就是把网络号相同的主机放在一起
如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中的其他主机重复
子网掩码是一个32位的正整数,通常用一串0来结尾
网关就是路由地址
将IP地址和子网掩码进行”按位与“(一假则假)操作,得到的结果就是网络号
网络号和主机号的划分与这个IP地址是A类,B类,C类无关
比如这个IP地址是192.168.10.2,子网掩码是28(28就是前面28个1),所以得到的网络号就是192.168.10.0
将IP地址中的主机地址全部设成0,就成为了网络号,代表这个局域网
将IP地址中的主机地址全部设位1,就成为了广播地址,用于给同一个局域网中的所有主机发送数据包
127.0.0.1是本机的环回地址
我们知道,IP地址是一个4字节32位的正整数,那么一共只有2的32次方个IP地址,大概是43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址
这意味着,一共只有43亿台主机能接入网络吗?
实际上,由于一些特殊的IP地址的存在,数量远数量远远超过43亿。另外IP地址并非是按照主机台数来配置的,而是每一个网卡都需要配置一个或多个IP地址
CIDR在一定程度上缓解了IP地址不够用的问题,但仍然不是很够用,这时候有三种方式来解决
NAT能够将私有IP对外通信时转为局部IP(本质)
也就是说这是一种将私有IP和局部IP相互转化的技术方法。很多学校,家庭,公司内部次啊用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP
全局IP要求唯一,但是私有IP不需要,在不同的局域网中出现相同的私有IP是完全不影响的
1.无法从NAT外部向内部服务器建立连接
2.转换表的生成和销毁都需要额外的开销
3.通信过程中一旦NAT设备异常,即使存在备用设备,所有的TCP连接也会断开
代理服务器是一种应用比较广的技术
:广域网中的代理
负载均衡:局域网中的代理
如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上,使用任意的IP地址都可以,但是RFC 1918规定了用于组件局域网的私有IP地址
10.前8位是网络号
172.16-172.31.前12位是网络号
192.168.前16位是网络号
这些都是私有IP,其余的则称为全局IP
一个路由器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP
路由器LAN口连接的主机,都从属于当前这个路由器的子网中
不同的路由器,子网的IP可以一样,但同一子网内的IP不可以重复(xxx.1这种一般叫网关,就是当前局域网的路由器)
每一个家用路由器,其实又作为运营商路由器的子网中的一个节点
子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址替换成WAN口的IP,这样逐级替换,最终数据包中的IP地址成为一个公网IP,这种技术成为NAT
在复杂的网络结构中,找出一条通往终点的路线
1.我的电脑发送一个IP数据包,目的IP是55.66.77.88
2.这个包从我的电脑出发,看看我的电脑认不认识这个目的IP
3.如果认识就直接发送过去(一般都是些相同局域网内的设备认识)
4.如果不认识,就把数据再交给光猫
5.如果光猫不认识就再交给运营商的路由器
6.就这样如果不认识就一直向上传递,但是我们的IP报文里有一个生存时间默认64,如果超过64次传递还没有找到就宣告失败了(只要对方正常,64足够)
此处TTL为56,说明传递了64-58=8次
那么每一个路由器如何判断自己认不认识
通过路由表来判断
目的IP 和子网掩码做按位与运算,找到其网络号,然后在路由表中查找是否匹配
如果找到匹配项,就从对应的路由端口中继续转发
如果没有找到,就从默认的“下一跳”表项继续转发
如果对方正常,转发到一定程度,总会由路由器认识这个IP,也就发送完成了
先赞后看,养成习惯!!!^ _ ^♥♥♥
每天都更新知识点哦!!!
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!