【计算机网络】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

相关文章

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu