网络协议学习——IP协议

这篇具有很好参考价值的文章主要介绍了网络协议学习——IP协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络协议学习——IP协议,网络,网络协议,学习,tcp/ip,学习笔记,网络,linux

目录

​编辑

一,IP协议

二,协议字段

三,IP层传输数据的问题

1,如何将报头和有效载荷分离

2,向上协议选择

3,局域网

四,IP问题

1,IP的组成

2,IP的划分

3,特殊IP

4,IP分配不足的问题解决方案

五,数据包分片问题

一,IP协议

IP协议是网络互联协议,是TCP/IP四层结构里的网络层IP协议。这个协议的作用是确保数据数据能够可靠的到达目标主机。

二,协议字段

网络协议学习——IP协议,网络,网络协议,学习,tcp/ip,学习笔记,网络,linux

四位版本号:该字段填入的就是IP报文的协议字段。例如ipv4和ipv6,用于标识协议版本。

四位首部长度:表示报头的长度。

八位服务类型(TOS):用于标识IP数据包的服务要求,前两位表示服务优先级,中间三位表示一些特定的服务,最后三位是保留字段。

十六位总长度:表示有效载荷和数据报加起来的长度。

八位生存时间:IP报文能在网络当中生存的最大跳数,当这个数减少为0时这个数据报便是一个丢弃报文消散在网络当中。

三,IP层传输数据的问题

1,如何将报头和有效载荷分离

采用的分离方式是定长报头+自描述字段。IP报头的长度是20个字节的,当我们读取数据时会先读取这二十个字节得数据。这二十个数据里面便包含了表示报头长度得四位首部长度,还有表示整个数据包长度得十六位总长度。这两个字段相减便是有效载荷的长度。

2,向上协议选择

要进行协议选择便要通过八位协议号中的数据来进行选择。

3,局域网

出现

局域网的出现的主要原因便是IP地址不足导致的。我们都知道IP地址是一个32位的数字,所以IP地址的范围便是[0,2^32-1],随着全球入网设备的不断增多IP地址有耗尽的风险。因为这个原因,我们便要将网络划分为一个个的小网络。这样的小网络便被称为一个局域网。

作用

为什么局域网出现后便可以缓解IP地址耗尽的风险呢?因为不同的局域网当中的IP地址是可以相同的。比如说我有一个IP:12.22.99.88。那这个IP能够出现在A局域网当中,也能出现在B局域网当中。

公网IP和私网IP

公网IP便是在公网通信当中使用到的IP,私网IP便是在局域网当中使用的IP。这里有一点要注意,私网IP说不能出现在公网当中的,因为可能造成IP重复的情况发生

不同局域网之间的主机如何通信

不同的局域网之间得主机的通信是靠路由来实现的。这就好比你要到一个陌生的城市的某个地点去旅游。你不知道路怎么走,这个时候咋办呢?只有问人了。在这种情况下,你就相当于一个数据包,而这个路人便是一个路由器,这个路人在思考的过程便是一个查找路由表的过程。这个路人给出的答案会有两种,一种是知道,所以你便可以靠着这个路人的指引到达下一跳。第二种便是不知道,这个时候他会指向一个默认的地点,你也会被发到这个默认的路由器上。

所以不同局域网中的主机是通过路由器来找到彼此的

过程

1,目标ip与源IP到达路由器。

2,进行NAT转换,这个源IP被转化为公网IP。

3,目标IP与上这个路由器的子网掩码,并查找路由表。

4,找到了便将这个数据发送到下一跳,如果找不到便通过Iface发送到下一个默认路由器。

在Linux和Windows系统当中,我们可以分别通过route 和 route PRINT来查看路由表:

网络协议学习——IP协议,网络,网络协议,学习,tcp/ip,学习笔记,网络,linux

网络协议学习——IP协议,网络,网络协议,学习,tcp/ip,学习笔记,网络,linux 

参数

  • Destination:代表的是目的网络地址。

  • Gateway:代表的是下一跳地址。

  • Genmask:代表的是子网掩码。

  • Flags:U表示正在使用,G就表示默认网关(路由器)。

  • Iface:代表的是发送接口。

NAT技术

我们在彼此通信时,是通过私有IP来找到彼此吗?并不是!因为私网IP是用在自己的局域网当中的,所以在这里便会有一个IP地址转换的过程。NAT技术转换的是什么ip呢?是私网ip和公网ip。并且这个转换技术被称为NAT技术。

WAN口IP&&LAN口IP

在路由器上一般会有两个端口,一个叫做LAN口IP一个叫做WAN口IP。这两个端口,LAN连接的是局域网,WAN连接的是公网。在进行私网IP和公网IP交换时交换的便是这两个端口的IP。

四,IP问题

1,IP的组成

IP由两部分组成:网络号+主机号

通过网络号便能找到一个局域网,通过主机号便能找到这个局域网当中的唯一一台主机。

2,IP的划分

按照地址划分

在一开始,IP的按照地址的方式划分:

网络协议学习——IP协议,网络,网络协议,学习,tcp/ip,学习笔记,网络,linux

之后大部分人在申请IP时都在申请B类IP,于是便导致A类IP被大量的浪费。在IPV4IP有限的情况下,还要被大量浪费?于是,这种划分方式就被逐渐淘汰了。

CDIR(无类别域间路由)

CDIR的划分方式便是引入子网掩码比如以下例子:

  • 例子:192.168.1.0/24

    • /前面表示网络号。

    • 24表示这个IP的前面24位代表网络号,后面八位表示这个局域网的主机号

这种划分方式能够灵活的分配IP地址,能够减小路由表的大小,减小路由负担。

IPV6

前面的方式都是在缓解IPV4 类型的IP耗尽问题,而IPV6便是在从根源上解决这个问题。IPV6便是让IP的变得更长(128位),所以这样就能让IP资源变得几乎无限。

3,特殊IP

  • 特殊IP

    • 网络地址:除了网络号,后面的数据都是0

    • 广播地址:除了网络号,后面的数据都是1

    • 本地环回:127.0.0.1

4,IP分配不足的问题解决方案

  • IP划分不足问题解决方案

    • 动态划分

      • 只给在使用网络的主机划分IP地址,当你不联网时你的主机便没有分配IP地址。

    • NAT划分

      • 通过私有IP和公网IP的转换让不同的局域网有相同的IP存在。

    • IPV6

      • 16字节,128位的IP地址。

 

五,数据包分片问题

  • 分片与组装

    • 分片

      • 为什么要分片?

        • 数据的传输是由数据链路层完成的,数据链路层有一个MTU(最大传输单元)。当数据(包含报头)超过了这个大小时便要分片,也就是将数据变小后再传输。数据包的大小是由TCP协议来控制的。

      • 如何分片?

      • 13位偏移:表示当前分片相对于数据开始段的偏移量。

        • 3位标志

          • 第一位:保留。

          • 第二位:1表示禁止分片,0表示允许分片。

          • 第三位:表示更多分片。

        • 16位标识字段:标识分片id,同一个报文的不同分片的id是相同的。

      • 是否建议切片:不建议,因为切片增大了数据包丢失的风险。丢包TCP就要重发一整个报文(切片前的)。

    • 组装

      • 根据上面的字段信息来组装接片。文章来源地址https://www.toymoban.com/news/detail-850821.html

到了这里,关于网络协议学习——IP协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SCTP, TCP, UDP, IP, ICMP都在哪一层?(TCP/IP网络通信协议学习)

    TCP/IP网络通信协议最早是由 罗伯特·卡恩 (Robert E. Kahn)和 文顿·瑟夫 (Vinton G. Cerf)于1972年提出的,它是一个实际的协议栈。 OSI七层网络通信协议最早是 由国际标准化组织 (ISO)于1977年提出的,它是一个理论模型。TCP/IP网络通信协议由于其简单性和实用性,成为 事实上

    2024年01月22日
    浏览(37)
  • Linux tcp/ip 网路协议栈学习-00 前言

    Linux tcp/ip 网路协议栈学习-00 前言 目录 Linux  tcp/ip 网路协议栈学习-00 前言 (1)预备知识  (2)前置知识 (3)学习目标 (4)总结     (1)预备知识  好工具事半功倍,做任何事情都需要有方法和工具,同样,阅读 Linux 内核源码也是如此。由于当前内核源码非常庞大,学习上,不能一

    2024年04月26日
    浏览(29)
  • Linux内核--网络协议栈(五)TCP IP栈的实现原理与具体过程

    一、引言 二、Linux内核的结构 三、Linux网络子系统 四、TCP/IP协议栈 ------4.1、网络架构 ------4.2、协议无关接口 ------4.3、套接口缓存 ------4.4、重要的数据结构 五、网络信息处理流程 ------5.1、硬中断处理 ------5.2、ksoftirqd内核线程处理软中断 ------5.3、网络协议栈处理 ------5.4、

    2024年01月21日
    浏览(55)
  • 【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}

    了解网络发展背景,对局域网/广域网的概念有基本认识; 了解网络协议的意义, 重点理解TCP/IP五层结构模型; 学习网络传输的基本流程,理解封装和分用; DHCP(动态主机配置协议,Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

    2024年04月14日
    浏览(43)
  • 计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

    计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地

    2024年02月07日
    浏览(41)
  • Linux高性能服务器编程|阅读笔记:第1章 - TCP/IP协议族

    Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~   ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:扎实基础 + 多做

    2024年02月01日
    浏览(39)
  • 系分笔记计算机网络OSI七层模型概念、协议和作用以及TCP/IP协议

      计算机网路是系统分析师考试的常考知识点,本篇主要记录了知识点:OSI七层模型概念、协议和作用以及TCP/IP协议中比较重要的考点。   计算机网络的OSI七层模型从底层往上,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。   计算机网络

    2024年01月16日
    浏览(43)
  • 【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》

    为什么要有 TCP/IP 网络模型? 不同设备上的进程间通信需要通过一套通用的网络协议进行网络通信。 对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通信,而设备是多样性的,所

    2024年04月11日
    浏览(37)
  • Linux学习记录——삼십팔 网络层IP协议

    应用层之下有传输层,应用层使用系统调用把数据拷贝到传输层就返回,继续执行自己那一层的代码;传输层使用TCP协议来管理和对端主机传输层之间的交互;应用层将数据传给传输层的TCP,TCP这个传输控制协议根据滑动窗口,选好能发送的数据,传给网络层,网络层有IP协

    2024年02月02日
    浏览(29)
  • 网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)

    1、IP协议简介 IP协议又称 网际协议 特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议,是网络层中的协议。 2、特点 不可靠 :它不能保证IP数据包能成功地到达它的目的地,仅提供尽力而为的传输服务 无连接 :IP 并不

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包