负责地址管理与路由选择:路由器(IP协议)
IP地址:无符号32位的一个整数,在网络中唯一标识一台主机(IP地址给主机的分配一定要保证唯一性)
tcp在传输层会自己选择合适大小MSS数据发送,udp报文数据最大大小应该小于64K-20-8
16位标示:udp数据在网络层有可能会进行数据分片,标识当前分片属于哪个完整报文
3位分片标志:1位保留,1位禁止分片标志 — 是否禁止分片,1位更多分片标志 - 类似于结尾标志
13位分片偏移:以8个字节为单位,标识当前分片在完整报文中的位置(相对起始位置偏移量)
8位TTL:报文最大生存周期 — 一个数据能够经过多少路由器,经过路由器就会-1,为0的时候则将数据丢弃(防止路由环路)
8位传输层协议:在数据分用时,网络层取出数据,需要通过这个协议类型,决定传输层使用哪个协议对数据进行分用解析
16位校验和:校验数据一致性
32位源IP地址 / 32位目的IP地址:负责描述数据从哪个主机来到哪个主机去
40字节选项数据:例如保留经过的路由器地址信息
注意:
若传输层交付下来的数据大小过大,会在网络层将这个大数据截断为多个小的数据分片,然后每个分片封装IP报头进行发送,到达对端之后进行分片重组,组合成为完整的一个报文交付给上层。
这个大小取决于链路层最大数据帧的限制 — MTU(最大传输单元)
传输层tcp协议协商的MSS就是根据MTU计算得到的,因此tcp传输的数据到了网络层通常是不会进行分片的
但是udp协议传输数据,只限制数据小于64k-28就可以传输,但是若大于MTU大小就会在网络层进行数据分片 — 网络层数据分片主要针对udp
13位能够表示的最大大小事 8192 = 2^10 * 2^3;但是一个完整的udp报文有可能是接近64K的大小,最后一个分片有可能偏移量都6万多了,13位的偏移大小是没法表示;
因此这个字段中的大小是以8字节为单位 8 = 2^3;这时候8192就表示具体的偏移量为 8192 * 8 = 64K;这样就可以完整表示偏移量了(因此每个分片除了最后一个,大小都是8的整数倍)
网络非常大,人为分配是搞定不了的;只能机器分配 — DHCP — 动态地址分配
整个网络是由很多的小型网络组成的,按照网络进行地址分配,每个网络中的主机IP地址带有这个网络的标识符,只要每个网络的标识符不同,就可以保证分配的IP地址不同
IP地址的组成:网络号(网段) + 主机号
一个路由器组建局域网的时候,所对应的网络表示(每个路由器对于接收到的数据进行源地址判断,这个网络是否属于自己的网络,属于才会转发,不属于则直接丢弃)
主机号的唯一路由器很容易就可以实现;主要保证的是网络号如何划分?
将所有的IP地址划分为五类地址,组建什么样的网络,就使用什么样的网络号,分配什么样的地址。
你要组建什么网络,然后去权威机构进行申请,分配一个网络号,接下来组建网络,主机号的分配由自己完成
随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就 分配完了, 而A类却浪费了大量地址;
引入了一个新的字段 — 子网掩码
子网掩码:无符号32位的整数,不过数据由连续的二进制1组成(由一串“0”来结尾)
根据数据中的目的地址,来为数据选择一条合适的路径
每一个主机连接上路由器之后,都会全网广播dhcp请求,路由器收到后会进行回复:
IP数据包的传输过程也和问路一样.
如何判定当前这个数据包该发送到哪里呢? 这个就依靠每个节点内部维护一个路由表;
IPv4的IP地址不够用,除了DHCP动态地址分配技术(谁上网给谁分配地址)之外还有一种NAT技术 — 网络地址转换技术
一个路由器可以组建一个私网,仅限于私网内部通信,若要进行外部通信,则大家使用同一个对外IP地址进行上网,这样的话,只要保证相邻的两个私网网络号不同,分配的地址不同,其他的私网之间,IP地址是否冲突就不重要了。
在RFC1918中规定,能够用于组建私网的地址有以下几种
大型私网 | 中型私网 | 小型私网 |
---|---|---|
10. * . * . * | 172.16. * . * ~172.31. * . * | 192.168. * . * |
一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).
路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.
不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间的IP地址就可以重复了.
每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了.
子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地址转换).
如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服务器上. 这样的服务器可以在阿里云/腾讯云上进行购买.
A.UDP,TCP 在传输层,IP在网络层
B.IP协议负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机
C.TCP在传输层负责传送数据,并且确定数据已被送达并接收。
D.UDP提供的是一种可靠的数据流服务,TCP相反
正确答案:AC
Ip协议是不可靠的,不能保证每一数据块均能到达目的主机。
A. IP地址采用分层结构,它由网络号与主机号两部分组成
B. 根据不同的取值范围IP地址可以分为五类
C. 202.112.139.140属于B类地址
D. 每个C类网络最多包含254台主机
E. IPv6采用128位地址长度
F. A类,B类和C类地址为内部私有地址
正确答案: CF
答案解析:
A类地址: 1.0.0.1—126.155.255.254
① 10.X.X.X 是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
② 127.X.X.X 是保留地址,用做循环测试用的。
B类地址: 128.0.0.1—191.255.255.254 。
① 172.16.0.0—172.31.255.255 是私有地址
② 169.254.X.X 是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
C类地址 : 192.0.0.1—223.255.255.254 。
192.168.X.X 是私有地址。
D类地址 : 224.0.0.1—239.255.255.254
E类地址 : 240.0.0.1—255.255.255.254
A. TTL的最大可能值是65535
B. 在正常情况下,路由器不应该从接口收到TTL=0的报文
C. TTL主要是为了防止IP报文在网络中的循环转发,浪费网络带宽
D. IP报文每经过一个网络设备,包括Hub、LAN SWITCH和路由器,TTL值都会被减去一定的数值
正确答案: B,C
答案解析:
TTL(time to live)生存时间字段设置了IP数据报能够经过的最大的路由器数,TTL字段是由发送端主机初始设置的,以防止数据包不断在IP互联网络上永不终止地循环。每个处理该数据报的路由器都需要将其TTL值减1,当路由器收到一个TTL值为0的数据报时,路由器会将其丢弃,TTL的最大值是255。
如果本篇博文有帮助到您,请动动您的小手,点赞激励博主呐~~