TCP/IP
TCP/IP模型
TCP/IP网络模型:对于不同设备之间的通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议。
TCP/IP分层
这个网络协议是分层的,每一层都有各自的作用和职责,接下来就根据「 TCP/IP 网络模型」分别对每一层进行介绍。
应用层
应用层是我们能直接接触到的层面,设备中的应用程序都是在应用层实现。当两个不同的设备进行通信时,就将数据传给下一层——传输层
常见的应用层: HTTP、FTP、Telnet、DNS、SMTP等。
传输层
应用层的数据包传递给传输层,传输层为应用层提供网络支持。
传输层常见协议:
- TCP(Transmission Control Protocol,传输控制协议 ):提供 面向连接 的,可靠 的数据传输服务
- UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。
网络层
实际场景中的网络环节是错综复杂的,中间有各种各样的线路和分叉路口,如果一个设备的数据要传输给另一个设备。
网络层就是专注于在不同设备之间传输功能。
区分
这里需要认识清楚传输层与网络层在名字上的误区:
传输层是负责将应用层的数据根据协议(TCP/UDP)打包给网络层。
网络层则是将数据传输给其他设备
网络层常见协议
网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。
网络接口层
生成了 IP 头部之后,接下来要交给网络接口层(Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。
IP基础认识
IP 在 TCP/IP 参考模型中处于第三层,也就是网络层。
在 TCP/IP 网络通信时,为了保证能正常通信,每个设备都需要配置正确的 IP 地址,否则无法实现正常的通信。
P 地址(IPv4 地址)由 32
位正整数来表示,IP 地址在计算机是以二进制的方式处理的。
而人类为了方便记忆采用了点分十进制的标记方式,也就是将 32 位 IP 地址以每 8 位为组,共分为 4
组,每组以「.
」隔开,再将每组转换成十进制。
端口
当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口。
比如 80 端口通常是 Web 服务器用的,22 端口通常是远程登录服务器用的。而对于浏览器(客户端)中的每个标签栏都是一个独立的进程,操作系统会为这些进程分配临时的端口号。
由于传输层的报文中会携带端口号,因此接收方可以识别出该报文是发送给哪个应用。