协议地址结构_TCP/IP 协议 讲解

17bb90acd421ec12489c189bc94d6e0d.png

374926f2d090402f0b341576d9e82b1b.png

计算机网络体系结构分层

afedc09287396d2753615267350ba684.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

计算机网络体系结构分层

不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

1. TCP/IP 的具体含义

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。

互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

733c16ca01de4111d01226e2a7a5f67c.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

网际协议群

2. 数据包

包、帧、数据包、段、消息

以上五个术语都用来表述数据的单位,大致区分如下:

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

ac87fe7d41e0b80172cd47c164dfac8f.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

数据包首部

网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。

3. 数据处理流程

下图以用户 a 向用户 b 发送邮件为例子:

a7cce6a27d9034d7ee012c5fc5d84fa2.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

数据处理流程

TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。

1. 端口号

数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

1.1 根据端口号识别应用

一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。

d91398a489139fb0a03d5086b265b603.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

通过端口号识别应用

1.2 通过 IP 地址、端口号、协议号进行通信识别

88a9bdd6d32534239d771d746ee676a9.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

75844682917fbfe8d53e8028a86e5b45.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

通过端口号、IP地址、协议号进行通信识别

1.3 端口号的确定

1.4 端口号与协议

2. UDP

3. TCP

3.1 三次握手(重点)

下面来看看三次握手的流程图:

905ca6fabbba1c46e91e69d88c7b1ba7.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

三次握手

3.2 四次挥手(重点)

下面来看看四次挥手的流程图:

c1f6f73f4d9f8842c51aa7bd1232ac9b.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

四次挥手

上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,

具体流程如下图:

7f7382221fe9da0cbd31e79839fdfed1.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

同时挥手

3.3 通过序列号与确认应答提高可靠性

d8027c6bd5290f7e81510e99a1882b73.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

序列号和确认应答

3.4 重发超时的确定

3.5 以段为单位发送数据

3.6 利用窗口控制提高速度

9e7dff1bca2f4dbf7cbf7e8422b672bc.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

3.7 滑动窗口控制

094325200a67b80cc8795b2d7569c487.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

滑动窗口

3.8 窗口控制中的重发控制

在使用窗口控制中, 出现丢包一般分为两种情况:

261f4cc23a5943488c9e3dce65f570aa.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

部分确认应答丢失

da24d8dd9d4ba4d63e0e9a40f08b4b38.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

高速重发控制

1. IP 地址

1.1 IP 地址概述

02e0b298ed8f454aa03e8bed732806d0.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

1.2 IP 地址由网络和主机两部分标识组成

5860f55d2de8cdaa0584dee644c70d26.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

IP地址的主机标识

6aad2056a3ce942e264d8b143ad782a0.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

IP地址的网络标识

1.3 IP 地址的分类

1.4 广播地址

1.5 IP 多播

55f1971a94f7b78a894923a696babf71.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

1.6 子网掩码

1e7cc7c2a0e72597793605049601b6bf.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

a8cd51c87bee05bf030d5d326e256c9a.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

2. 路由

2.1 IP 地址与路由控制

c34017118ae368284807e6e0642531ff.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

路由控制表与 IP 包发送

3. IP 分包与组包

3.1 路径 MTU 发现

4. IPv6

4.1 IPv6 的特点

4.2 IPv6 中 IP 地址的标记方法

4.3 IPv6 地址的结构

9e45dbbe9f681a6ac1a1cfab398552f0.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

4.4 全局单播地址

9f73586b93caccb57909109e61c378d9.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

全局单播地址

4.5 链路本地单播地址

ff3052cd2e86536ccb70410982b88c76.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

链路本地单播地址

4.6 唯一本地地址

c927296c5bf902be0efa4a6ee35d262c.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

唯一本地地址

4.7 IPv6 分段处理

4.8 IP 首部(暂略)

5. IP 协议相关技术

5.1 DNS

5.2 ARP

5.3 ICMP

5.4 DHCP

5.5 NAT

5.6 IP 隧道

3680cb313d71154bf94e89ba1da32fc9.png

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

夹着 IPv4 网络的两个 IPv6 网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

28335接两个spi设备_IIC和SPI如此流行,谁才是嵌入式工程师的必备工具?

IICvs SPI现今,在低端数字通信应用领域,我们随处可见 IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和 Motorola(for SPI) 出于不同背景和市场需求…

线性表15|魔术师发牌问题和拉丁方阵 - 数据结构和算法20

线性表15 : 魔术师发牌问题和拉丁方阵 让编程改变世界 Change the world by program 题外话 今天小甲鱼看到到微博有朋友在问,这个《数据结构和算法》系列课程有木有JAVA版本的? 因为这个问题之前也有一些朋友问过,所以咱在这里统一说下哈…

[ZT]Three ways to tell if a .NET Assembly is Strongly Named (or has Strong Name)

Here are several convenient ways to tell whether a .NET assembly is strongly named. (English language note: I assume the form “strongly named” is preferred over “strong named” since that’s the form used in the output of the sn.exe tool shown immediat…

rstudio 修改代码间距_第一章 R和RStudio

R与RStudioR是一种统计学编程语言,在科学计算领域非常流行。它是由Ross Ihaka和Robert Gentleman开发的,是 "S "编程语言的开源实现。R也是使用这种语言进行统计计算的软件的名字。它有一个庞大的在线支持社区和专门的软件包,可以为…

ubuntu下最稳定的QQ

一、安装好 Wine 1.2(1.2 版安装好就支持中文界面的了) 当然得有WINE 了 当然我的有 如果没有可以如下方法得到: 第一种方法:如果你已经安装过 Wine 的老版本,那么只要添加 Wine 1.2 的软件源,然后去新立得…

字体Times New Roman

Windows系统中的字体是Monotype公司为微软公司制作的Times New Roman PS(TrueType字体),视窗系统从3.1版本开始就一直附带这个字体。而在苹果电脑公司的麦金塔系统中使用的是Linotype公司的 Times Roman (在Macintosh系统中直接简称为‘Times…

磁盘调度算法

1,假设磁头当前位于第105道,正在向磁道序号增加的方向移动,现有一个磁道访问请求序列为:35,45,12,68,100,180,170,195,试用先来先服务…

C++11 std::shared_ptr的std::move()移动语义底层分析

std::shared_ptr的std::move()移动语义底层分析 执行std::move()之前: 执行std::move()之后: 结论:一个浅拷贝 sizeof(std::shared_ptr) 8字节 pss1 : 0x0028fea8 pss2 : 0x0028fea0 (栈是逆增长的) 观察执行std::m…

python去掉字符串最外侧的引号_疯狂Python讲义第二章读书笔记

本章讲解变量和简单类型2.1 从注释讲起单行注释使用#,#后面的代码被注释掉不会运行,如:# print(123) 注释掉后123不会输出。多行注释使用""" """,三个双引号,双引号中的内容注释掉&…

【转】深入分析 ASP.NET Mvc 1.0 – 1. 深入MvcHandler

MvcHandler是一个mvc程序真正开始的地方,因为你可以直接看到并调试它的源码。 MvcHandler的主要代码如下:protected internal virtual void ProcessRequest(HttpContextBase httpContext) {AddVersionHeader(httpContext);// Get the controller typestring control…

C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析

右值引用保存临时变量(函数返回值)的问题 :临时变量是右值 1、普通变量接收函数返回值: 2、右值引用变量接收函数返回值: 3、用const int& 和右值引用是一样的效果,只是const int& 就不可以修改…

axure源文件_Axure教程:实现网易云音乐有声播放效果

为了方便讲解,我们首先在桌面新建一个文件夹,命名为音乐。1、将自己想要演示播放的MP3音乐文件放在这个文件夹里面。2、给播放页添加一个中继器,随便命名,我给它命名为【音乐地址链接器】,用来链接播放本地音乐文件。并…

ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作)

《ffplay的数据结构分析》 《ffplay分析(视频解码线程的操作)》 《ffplay分析(音频解码线程的操作)》 《ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)》 《ffplay分析 (视频从Frame(解…

并发进程同步

P是荷兰语Proberen(测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。也就是不好的一方面。 V是荷兰语Verhogen(增加)的首字母。为唤醒原语,负责把一…

寄存器和pin_16x2 LCD的PIN图和寄存器

寄存器和pinIn these years the LCD is finding widespread use. It has replaced the LEDs or other multi-segment LEDs.This is due to the following reasons: 近年来, LCD正在广泛使用。 它已替换LED或其他多段LED,原因如下: The decli…

ffplay分析(视频解码线程的操作)

《ffplay的数据结构分析》 《ffplay分析(从启动到读取线程的操作)》 《ffplay分析(音频解码线程的操作)》 《ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)》 《ffplay分析 (视频从Fram…

【转】.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间,完善《.NET深入学习笔记》系列(基本都是.Net重要的知识点,我都做了详细的总结,是什么、为什么、和怎么实现)。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏

100万职场人都在看后台回复礼包领199元职场干货大家好,我是小可~今天跟大家分享一个提高Excel操作效率的小技巧自定义你的快速访问工具栏设置后的效果▼▼▼也就是把你最经常用到的两三个功能放到快速访问工具栏可以一眼就找到这些功能不需要靠快捷键或者功能选项卡…