TCP/IP协议,IPV4,IPV6,为什么国家大力倡导IPV6的发展

简单回顾一下TCP的特点

TCP是可靠性,UDP是负责效率,那么如何基于UDP实现可靠传输

本质还是考察TCP

目录

TCP/IP协议栈 

那么假如IP地址不够用怎么办呢?NAT机制 

IP地址的介绍 


TCP/IP协议栈 

我们来简单了解一下,上面都是干什么的:

(1)四位版本号

主流IPV4,IPV6(用于工作,商用这种),其他版本也有,不过大多数是实验室用。

(2)4位首部长度,设定和TCP一样

IP报头可变长,IP报头可以带有选项,此处单位也是4字节。

(3)8位服务类型(真正只有四位是有效果的)

类似于模式/形态切换

模式:最小延时:传输一个数据包的实践尽可能的短。

            最大吞吐量:一定时间,传输的数据量尽量多。

            最高可靠性:在传输中最不易触发丢包。

            最小成本:在传输中消耗的硬件资源最低。

(4)16位总长度

IP报头+载荷长度

=总长度- IP长度->载荷长度->TCP的报文长度

TCP报文总长度- TCP报头长度->TCP载荷长度

这里的16位总长度,确实涉及64kb问题,但是IP协议,自身支持“拆包组包”机制,这里的64kb只是约束一个IP数据报。

如果携带比较长的数据,IP协议会自动把一个数据报拆成多个数据报,接收方在进行分用的时候,也会把多个数据报合并成一个数据报。

(5)16位标识,3位标志位,13位片偏移

描述了整个IP数据报,拆包组包的过程

当IP数据报需要携带比较长的数据报的时候,就在IP协议这一层触发“拆包的操作”,把一个大包拆成多个小包,多个小的IP数据报带有Ip报头,载荷是TCP数据报的几个部分

16位标识:拆出来的多个包,16位标识是相同的

13位片偏移:不同的点,前一个包偏移量更小,后一个更大,通过片偏移,就可以区分包的先后顺序。

3位标志位:其中一位是不用的,还有一位,表示是否允许拆包,在这里已经拆了,这一位都是1,剩下一位标识“结束标记”标识当前的包是否是最后一个,这一位为0表示,这是最后一个包了。

(6)八位生存时间TTL,单位是次,初始情况TTL(32/64/128次),每过一个路由器转发,TTL就会-1,正常来说这个TTL是足够到达网络上(其实也就是地球上)任意位置,如果确实出现0,基本可以认定这个ip不可达(甚至不存在)

(7)8位协议

描述了上层传输层,使用哪种协议。

(8)16位首部校验和

校验数据是否正确的机制,只需要校验首部就可以,载荷部分,TCP/UDP人家已经自己校验过自己了。

(9)32位源地址

32位目的地址,IP协议中最重要的部分,数据报从哪里来到哪里去,其实64次是足够到达任何角落。

IP地址

网络这么多主机,要有办法描述主机的具体位置,IP地址就是解决该问题的关键

32位源IP地址:源IP地址,所谓IP地址,其实是一个32位整数(4字节)点分十进制,由于按照32位的方式表示,就会使这个数字变的很大,很难去理解记忆,一般是把IP地址,按照点分10进制表示(用三个.把32位分成4个部分,每个部分8位,每个部分是一个字节)

192.168.22.56,

32位的数据量是十分有限的,既然是弟子,原则上(是不可以重复的)

那么假如IP地址不够用怎么办呢?NAT机制 

1.动态分配IP(DHCP):你这个设备,不用一直上网,需要上网的时候再去分配IP,不需要则先不用分配——当然这个属于是只缓解,不根治

2.NAT机制(网络地址转化)考点,要点考点

IP地址,被聪明的猿,想了个办法,把IP地址,分成两类

(1)内网IP:不同局域网内的设备,内网IP可以重复,同一个局域网内的设备,内网IP不能重复(以下三个开头比较多)

10*
172.16*-172.31*
192.168*

换句话说:在别的局域网中,也可以使用这样的IP地址,此时大量设备可以使用同样的IP了,此时IP不够用的程度,就得到了很大的改善。

但是不同情况的处理又会是怎么样的呢?

1.如果局域网内部设备进行通信,OK

2.A局域网,想和B局域网中的设备进行网络通信,这个时候咋办?(当然了,必须是最怪的那种情况,两个设备的IP相同)当前的情况是禁止这种情况,想通信要有一个带外网的IP进行中转(QQ,微信)

(2)外网IP:外网IP不能重复

局域网内部的设备访问带有外网IP的设备

像平时使用的电脑/手机,都是在局域网内部使用,他们会有一个内网IP,还有一类设备是服务器,服务器可以有外网IP。

一个路由器可以连接多个设备,让外界可以看起来这些设备都源于一个路由器,NAT机制下,意义是一个外网IP代表的不一定是一个设备,而是很多设备。

百度服务器返回响应里头也是IP数据报

该数据包会先到电信路由器,对于NAT设备,会在触发NAT的时候维护一个映射表,然后NAT设备,通过查表,把目的IP再替换回来,比如换回192.22.26.1234

同一个局域网内部,内网IP不能相同的

相对来说,真实情况:我的电脑经过自己家的路由器,会进行NAT,经过电信光猫,又有NAT,对经过的电信再进行一个NAT(相当于是那种带面具参加舞会,一个舞会带一个面具)

当今世界,是由NAT构建起来的~

缺点十分明显:1.效率不高

                          2.非常繁琐

                          3.不方便直接访问局域网内设备

优点:纯软件实现的方案,能提高IP地址的服用率,但也没有从根本解决IP不够的问题

IPV6:从根本上解决问题,IP地址不够用的问题,16字节,128位表示IP地址(什么概念,有多大?地球上的不仅仅是人,沙子都有IP),

IPV6和IPV4并不兼容,要升级IPV6,(要更换路由器设备=花钱)

为什么IPV4不用呢,要执着IPV6呢?(IPV4是由外国所垄断的,对于中国互联网来说,IPv6的规模部署是场输不起的战争。、IPv4时代,全球共有13个根服务器(主根在美国),却没有一个在中国,所以之前不少自媒体说,一旦外国切断了我们对根服务器的访问途径,我们的网络就会瘫痪)

IP地址的介绍 

IP地址分为两个部分:网络号和主机号

网络号:标识网段,保证相互连接的两个网段有不同的标识

主机号:标识主机,同一个网段内,主机之间具有相同的网络号,但必须有不同的主机号。

1.同个局域网中设备的网络号必须相同,主机号必须不同。

2.两个相邻的局域网,网络号必须相同

日常开发中,不关心IP地址咋来的,以及规则是什么,一般是“网络管理员”要操心这些事情。

(IP地址可以是手动分配的 企业网络,网络繁杂,也可以我们手动分配)

IP地址,哪个部分是网络号,哪个部分是主机号?

一部分通过子网掩码来识别

                              子网掩码 ...255.255.252.0

子网掩码和IP地址一样,也是4个字节,32位整数,左侧必须连续1,右侧必须连续的0

255.255.252.0表达起来就是
1111 1111 1111 1111 1111 1100 0000 0000

一共32位,1的范围描述了IP地址的对应哪些位是网络号~(即将前22个bit是网路号,针对该机的子网掩码)10个bit是主机号

下面的没啥用,但是笔试有可能考

          范围                         适用网络      网络数量  主机最大连接数
A类:0.0.0——127.255.255.255          大型规模网络     126      16777214
B类:128.0.0.0——191.255.255.255。    中型网络        约1600个   65534
C类:192.0.0.0-223.255.255.255       小型规模网络               254
D类:224.0.0.0——239.255.255.255
E类:240.0.0.0-247.255.255.255

你可能感兴趣的:(tcp/ip,网络,网络协议)