IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 从IP协议看计算机网络通信 -> 正文阅读

[网络协议]从IP协议看计算机网络通信

一、序言

在TCP/IP分层模型中,互联网层是心脏,对应OSI的分层模型,则是网络层。网络层的主要作用,是实现终端节点之间的通信,也就是点对点的通信。在该层中,主要是由IP、ICMP两个协议组成,而IP的作用就是在复杂的网络环境中将数据包发送给到最终的主机。

二、网络层跟数据链路层

有的小伙伴可能会分不清IP(网络层)和MAC(数据链路层)的关系,其实很好理解,MAC主要是实现两个直连设备之间的通信,而IP则负责在没有直连的两个网络之间通信,举个栗子:
在这里插入图片描述
假设我现在要去一个地方游玩,需要转地铁和火车才能到达,制定了一个行程表,可能需要先搭乘A地铁再转B火车才能到达,地铁和火车都只能再特定的区间内移动,该区间就像网络通信中的数据链路层,而区间的起始和中止地址就好比源MAC地址和目的MAC地址。而整个旅程的行程表就好比网络层,记录行程的源IP和目的IP,所有主机都维护着一张路由控制表,记录IP包在下一步应该发给那个路由器。

三、IP分片与重组

对于网络层来说,数据链路层是具备抽象化的,不同的MAC(数据链路层)都有各自的MTU(最大传输单元),就好比寄快递,有的快递大,有的快递小。但对于网络层来说,是需要屏蔽这个差异的,所以对大于MTU的IP包,传输层会进行分片处理,将较大的包分片成多个IP包进行传输,再由接收方目标主机进行重组。

在这里插入图片描述

在以太网中MTU则是1500个字节,假设我们要发一个4000字节的IP数据包无法再一个帧中发送出去,这时候就会将数据包分成3个分片进行发送。发送前会设置一个唯一数据做为IP首部的标识码发送,分片之后IP首部的识别码都相同,同时有一个“片偏移”字段,用来标识分片之后每个分片再原始数据的相对位置以及是否还有后续其他分片。

在分片传输中,?旦某个分片丢失,则会造成整个 IP 数据报作废,所以 TCP 引?了 MSS(最大报文长度) 也就是在 TCP 层进行分片不由 IP 层分片,而对于 UDP 我们尽量不要发送一个大于MTU的数据报?。
为什么分层是在TCP层而不是在IP层?

四、IP协议相关技术

在实际使用中,其实是很少直接输入某个IP的,通常输入的是域名地址,因此,中间还会涉及到IP地址的映射,此外,在数据链路层还有要依赖MAC地址,所以,在实际中,仅凭IP地址是无法完成通信的,还需要IP的其他辅助技术:DNS、ARP、ICMP、ICMPv6、DHCP、NAT,还包括IP隧道、IP多播、IP任播、质量控制(Qos)以及网络拥塞显示通知以及Mobile IP等技术。

上面罗列的相关技术,有些大家应该比较熟悉,这里列举几个比较典型的进行说明。

3.1 ARP

我们都指导,确定了IP地址,就可以向该地址发送IP报文,但是在通信之前需要先了解IP所对应的MAC地址,而ARP就是用来处理这个内容。以目标IP地址为线索,用来定位下一个接收数据分包网络设备的MAC地址,如果目标主机不在同一个链路,会查找下一跳路由器的MAC地址。
在这里插入图片描述

3.2 ICMP

通过IP网络架构需要关注两个点:确认网络是否正常、遇到问题时进行网络诊断,制止问题蔓延,ICMP正是提供这类功能的协议,ICMP主要做的是确认IP包是否被成功送达,通知发送过程中IP包被丢弃的具体原因。普遍存在的问题有目标不可达(找不到目标IP)或者是ICMP超时消息。

IP请求头中有一个字段TTL,他的值每经过一个路由器就减1,直到减少0时候该包就被丢弃,此时路由器就会发送一个ICMP超时消息给到发送主机,告知该包已经丢弃,如果传输层是TCP协议的话从而触发超时重传。

设置IP包生命周期的主要目的,是为了防止数据包在网络上被无休止的转发。当消息送达的时候,目的主机会发送ICMP回送应答消息,告知消息已经收到,通常用的ping命令就是利用这个消息实现的。

3.3 显示拥塞通知

当发生网络拥塞时,作为IP上层协议,TCP虽然也能控制网络拥塞,但它是通过发送包的失败进行判断的,并不能在数据包损坏之前减少数据包的发送量。为了解决这个问题,人们提出了一种显示拥塞通知的机制,即ENC。

想要实现ENC机制,需要将TCP首部的TOS字段换成ENC。ENC机制主要是依赖两个标志位,会在TCP首部的保留位追加CWR标志和ECE标志,在发送包中记录在发送过程中是否遇到网络拥塞,并且在返回包的TCP首部通知是否发生过拥塞。拥塞检查是在网络层进行,拥塞通知则是在传输层处理。
在这里插入图片描述

五、总结

以上的大部分都是来源于《图解TCP_IP第5版(计算机网络)》这本书,以及结合小林Coding的《图解网络》的学习和理解,重在思想,例如分片的处理以及拥塞通知,很多在设计上都是相类似的,如果有理解错误的地方,欢迎指出,互相交流。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:40:35  更:2022-04-15 00:43:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:27:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码