协议地址结构_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.pswp.cn/news/379080.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/379080.shtml

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

相关文章

ffmpeg进行混音,将两路音频pcm数据合成一路输出

ffmpeg进行混音&#xff0c;将两路音频pcm数据合成一路输出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map> #include <mutex> #include <cstdio> #include <cstdint> #include <string> #include <memory>exter…

python sep函数_Python中带有print()函数的sep参数

python sep函数sep parameter stands for separator, it uses with the print() function to specify the separator between the arguments. sep参数代表分隔符&#xff0c;它与print()函数一起使用以指定参数之间的分隔符。 The default value is space i.e. if we dont us…

关于 MySQL 主从复制的配置(转)

来源&#xff1a;http://www.oschina.net/bbs/thread/10388设置Mysql的主从设置很重要&#xff0c;有如下几点用处&#xff1a;1 做备份机器&#xff0c;一旦主服务器崩溃&#xff0c;可以直接启用从服务器作为主服务器2 可以直接锁定从服务器的表只读&#xff0c;然后做备份数…

Silverlight 同域WCF免跨域文件

在sl3使用wcf时常常会因为sl中调用了不同域的wcf服务而导至调用服务失败&#xff0c;记得在很久以前sl当是只支持同域的访问&#xff0c;那么让我有一个想法&#xff0c;就是在sl引用时可以动态地取得当前sl所在的域&#xff0c;而wcf服务也必须同时部署到这个域下边&#xff0…

使用ffmpeg 的 filter 给图片添加水印

使用ffmpeg 的 filter 给图片添加水印。 main.c #include <stdio.h>#include <libavfilter/avfilter.h> #include <libavfilter/buffersrc.h> #include <libavfilter/buffersink.h> #include <libavformat/avformat.h> #include <libavcodec…

程序崩溃 分析工具_程序分析工具| 软件工程

程序崩溃 分析工具A program analysis tool implies an automatic tool that takes the source code or the executable code of a program as information and produces reports with respect to a few significant attributes of the program, for example, its size, multif…

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

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

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

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

[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…

最佳页面置换算法

在一个请求分页系统中&#xff0c;采用最佳页面置换算法时&#xff0c;假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;当分配给该作业的物理块数M分别为3和4时&#xff0c;试计算在访问过程中所发生的缺页次数和缺页率。请给出分析过程。 解析&…

网络名称 转换 网络地址_网络地址转换| 计算机网络

网络名称 转换 网络地址At the time of classful addressing, the number of household users and small businesses that want to use the Internet kept increasing. In the beginning, a user was connected to the Internet with a dial-up line, for a specific period of…

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

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

ubuntu下最稳定的QQ

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

字体Times New Roman

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

最近最久未使用页面置换算法

在一个请求分页系统中&#xff0c;采用最近最久未使用页面置换算法时&#xff0c;假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;当分配给该作业的物理块数M分别为3和4时&#xff0c;试计算在访问过程中所发生的缺页次数和缺页率。请给出分析过程。 …

ffplay的数据结构分析

《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到SDL输出&#xff09;》 《f…

tolowercase_Java String toLowerCase()方法与示例

tolowercase字符串toLowerCase()方法 (String toLowerCase() Method) toLowerCase() method is a String class method, it is used to convert given string into the lowercase. toLowerCase()方法是String类方法&#xff0c;用于将给定的字符串转换为小写。 Syntax: 句法&a…

python web 服务器实时监控 websocket_python websocket网页实时显示远程服务器日志信息...

功能&#xff1a;用websocket技术&#xff0c;在运维工具的浏览器上实时显示远程服务器上的日志信息一般我们在运维工具部署环境的时候&#xff0c;需要实时展现部署过程中的信息&#xff0c;或者在浏览器中实时显示程序日志给开发人员看。你还在用ajax每隔段时间去获取服务器日…