一样的,本文篇幅也比较长,先来一张思惟导图,带你们过一遍。前端
从字面意义上讲,有人可能会认为 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 就是互联网的协议。编程
包、帧、数据包、段、消息
以上五个术语都用来表述数据的单位,大体区分以下:缓存
每一个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。一般,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包所有都被认为是本层的数据。安全
网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另外一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来讲,看到首部,也就可以了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。服务器
下图以用户 a 向用户 b 发送邮件为例子:网络
TCP/IP 中有两个具备表明性的传输层协议,分别是 TCP 和 UDP。数据结构
数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不一样的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种相似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通讯的不一样应用程序。所以,它也被称为程序地址。socket
一台计算机上同时能够运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通讯的应用程序,并准确地将数据传输。函数
下面来看看三次握手的流程图:性能
下面来看看四次挥手的流程图:
上面是一方主动关闭,另外一方被动关闭的状况,实际中还会出现同时发起主动关闭的状况,
具体流程以下图:
TCP 以1个段为单位,每发送一个段进行一次确认应答的处理。这样的传输方式有一个缺点,就是包的往返时间越长通讯性能就越低。
为解决这个问题,TCP 引入了窗口这个概念。确认应答再也不是以每一个分段,而是以更大的单位进行确认,转发时间将会被大幅地缩短。也就是说,发送端主机,在发送了一个段之后没必要要一直等待确认应答,而是继续发送。以下图所示:
窗口大小就是指无需等待确认应答而能够继续发送数据的最大值。上图中窗口大小为4个段。这个机制实现了使用大量的缓冲区,经过对多个段同时进行确认应答的功能。
在使用窗口控制中, 出现丢包通常分为两种状况:
28 | 28 | 28 | 28 | |
---|---|---|---|---|
10101100 | 00010100 | 00000001 | 00000001 | (2进制) |
10101100. | 00010100. | 00000001. | 00000001 | (2进制) |
172. | 20. | 1. | 1 | (10进制) |
相比于广播,多播既能够穿透路由器,又能够实现只给那些必要的组发送数据包。请看下图:
IP 地址 | 172. | 20. | 100. | 52 |
---|---|---|---|---|
子网掩码 | 255. | 255. | 255. | 192 |
网络地址 | 172. | 20. | 100. | 0 |
子网掩码 | 255. | 255. | 255. | 192 |
广播地址 | 172. | 20. | 100. | 63 |
子网掩码 | 255. | 255. | 255. | 192 |
IP 地址 | 172. | 20. | 100. | 52 | / 26 |
---|---|---|---|---|---|
网络地址 | 172. | 20. | 100. | 0 | / 26 |
广播地址 | 172. | 20. | 100. | 63 | / 26 |
未定义 | 0000 ... 0000(128比特) | ::/ 128 |
---|---|---|
环回地址 | 0000 ... 0001(128比特) | ::1 / 128 |
惟一本地地址 | 1111 110 | FC00:/ 7 |
链路本地单播地址 | 1111 1110 10 | FE80::/ 10 |
多播地址 | 1111 1111 | FF00::/ 8 |
全局单播地址 | (其余) |