【计算机网络】TCP/IP协议栈—因特网层(网络层)

2024-01-20 11:32

本文主要是介绍【计算机网络】TCP/IP协议栈—因特网层(网络层),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TCP/IP协议栈其他文章
网络参考模型
TCP/IP协议栈—应用层
TCP/IP协议栈—传输层
TCP/IP协议栈—网络接入层

文章目录

  • TCP/IP协议栈—因特网层(网络层)
    • IPv4报文格式
    • IP地址
      • 什么是IP地址
      • IP地址构成
      • IP地址分类(有类编址)
        • IP地址类型
      • IP地址计算
      • 为什么要划分子网(VLSM)
      • 特殊IP地址
      • 私网IP地址

TCP/IP协议栈—因特网层(网络层)

  • 传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另一台主机之间的传递
  • 网络层的PDU被称为Packet(包)

IP协议

  • IP是Internet Protocol的缩写。Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式
  • 经常被提及的IP,一般不是特指Internet Protocol这个协议文件本身,而是泛指直接或间接与IP协议相关的任何内容

IPv4报文格式

  • Version—4位,声明IP协议版本(IPv4, Version=0100; IPv6, Version=0110)

  • Header Length 写作5(实际数值为20)

  • TOS(Type of Service)服务类型

  • Total Length 总长度=头部长度+数据长度(TCP头部+用户数据),整个IP包的长度

  • Identification,Flags,Fragment Offset这三个字段用于做分片,为碎片化服务

  • TTL(Time to Live)生存周期

    • 限制IP数据包在计算机网络中的存在的时间,大小只占1个Byte,最大值为255
    • IPv4的这个区域记录一个整数(比如30),表示在IP包接力过程中最多经过30个路由接力,如果超过30个路由接力,那么这个IP包就作废。IP包每经过一个路由器,路由器就给Time to Live减一。当一个路由器发现Time to Live为0时,就不再发送该IP包。
    • 不同设备的默认TTL值不同,Windows设备TTL=128,Unix设备TTL=255,Linux设备TTL=64,可通过ping主机看TTL值判断操作系统类型
  • Protocol 协议

    • 标识IP包上一层(IP上面不一定是传输层)是什么协议,大小1Byte=8bit=256
    • TCP(6),UDP(17),ICMP(1)
  • Header Checksum 头部校验和

  • Source IP Address 源IP,原地址,固定的,不会随意改变

  • Destination IP Address 目标IP,目标地址,固定的,不会随意改变

  • Options

    • 在头部的最后,是options。每个options有32位,是选填性质的区域。一个IPv4头部可以完全没有options区域。不考虑options的话,整个IPv4头部有20 bytes(上面每行为4 bytes)。但由于有options的存在,整个头部的总长度是变动的。
    • 用IHL(Internet Header Length)来记录头部的总长度

IP地址

什么是IP地址

IP地址详解,结合起来看

  • IP地址在网络中用于标识一个节点(或者网络设备接口)。
  • IP地址用于IP报文在网络中寻址

  • 一个IPv4地址有32bit
  • IPv4地址通常采用“点分十进制”表示

  • IPv4地址范围:0.0.0.0—255.255.255.255

IP地址构成

  • 网络部分:用来标识一个网络
  • 主机部分:用来区分一个网络内的不同主机
  • 网络掩码:区分一个IP地址中的网络部分和主机部分

10.1/24代表有24个1

IP地址分类(有类编址)

  • 为了方便IP地址的管理及组网,IP地址分为五类:

A类:网段类比较少,A类每个网段类的主机数量较多。
B类:比较均衡。
C类:网段较多,网段类的每个地址较少。
IP地址类型
  • 我们通常把一个网络号所定义的网络范围称为一个网段

  • 网络地址:用于标识一个网络

    • 例如:192.168.10.0/24
  • 广播地址:用于向该网络中的所有主机发送数据的特殊地址

    • 192.168.10.255/24
  • 可用地址:可分配给网络中的节点或网络设备接口的地址

    • 192.168.10.1/24

注意:
网络地址和广播地址不能直接被节点或网络设备所使用
一个网段可用地址数量为2n-2(n:主机部分比特位数)

IP地址计算

为什么要划分子网(VLSM)

  • 一个B类地址(216=65536个IP地址)用于一个广播域,地址浪费
  • 广播域太庞大,一旦发生广播,内网不堪重负

  • 将一个网络号划分成多个子网,每个子网分配给一个独立的广播域

    如此一来广播域的规模更小,网络划分更加合理,IP地址得到了合理利用

特殊IP地址

  • IP地址空间中,有一些特殊的IP地址,这些IP地址有特殊的含义和作用,距离吐下

本地链路地址==>DHCP地址

私网IP地址

  • **公网IP地址:**IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址
  • **私网IP地址:**实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况,称为私网IP地址
A类:10.0.0.0—10.255.255.255       10.0.0.0/8
B类:172.16.0.0—172.31.255.255     172.16.0.0/12
C类:192.168.0.0—192.168.255.255   192.168.0.0/24

TCP/IP协议栈其他文章
网络参考模型
TCP/IP协议栈—应用层
TCP/IP协议栈—传输层
TCP/IP协议栈—网络接入层

这篇关于【计算机网络】TCP/IP协议栈—因特网层(网络层)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625874

相关文章

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

图解TCP三次握手|深度解析|为什么是三次

写在前面 这篇文章我们来讲解析 TCP三次握手。 TCP 报文段 传输控制块TCB:存储了每一个连接中的一些重要信息。比如TCP连接表,指向发送和接收缓冲的指针,指向重传队列的指针,当前的发送和接收序列等等。 我们再来看一下TCP报文段的组成结构 TCP 三次握手 过程 假设有一台客户端,B有一台服务器。最初两端的TCP进程都是处于CLOSED关闭状态,客户端A打开链接,服务器端