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

相关文章

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

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