网络协议(一) -- 网络基础TCP/IP
一:前情概述
互联网将世界角落的计算机连接成一体的网络,沟通就需要定制通用协议标准进行规范。如HTTP、SMTP、NFS、SNMP、IP、TCP、UDP等等耳熟能详的协议,单一职责是优秀的设计理念,TCP/IP协议模型可以理解为不同职责协议的组合,从而形成完整的国际协议标准模型
二:网络分层
优秀的架构理所当然需要保持模块独立,各司所职,TCP/IP协议模型将不同职责的协议划分为四个分层即:应用层、传输层、网络层、链路层
三:应用层
直接与用户交互处理特定的应用程序细节,借用掘金王师傅的一句话:应用层本质是规定了应用程序之间如何传递报文
,更直白理解就是应用层的协议都定义了本次请求的目的,不同目的请求的报文自然有着不同的组成。下表为常见应用层协议作用:
编码 | 协议名称 | 协议作用 |
---|---|---|
1 | HTTP | 全称Hyper Text Transfer Protocol超文本传输协议,简单理解就是维护客户端与服务端文件传输的协议 |
2 | DNS | 域名系统,域名与IP地址之间的转换 |
3 | SMTP | 邮件传输协议,写过发送邮件功能代码应该就对该协议不陌生 |
4 | NFS | 网络文件服务协议,简单理解就是文件共享,访问远程文件就像访问本地一样 |
四:传输层
传输层并不会直接传输数据,抽象来讲就是建立一个端到端的逻辑通信。比如传输层中的TCP协议,通过三次握手创建连接、四次挥手断开连接。它会把应用层组装数据分隔为大小合适的包然后交由下面两层协议进行实际数据传输,其自身主要在于控制:超时重传、流量控制、校验和、重排序等
编码 | 协议名称 | 协议作用特点 |
---|---|---|
1 | TCP | 可靠的(reliable)、面向连接的(connection-oriented)、基于字节流(byte-stream)、全双工(full-duplex)的协议 |
2 | UDP | 用户数据报协议,仅仅提供数据不可靠的交付 |
五:网络层
也被称做互联网层,处理分组在网络中的活动。例如网络层中主要被使用的IP协议
编码 | 协议名称 | 协议作用 |
---|---|---|
1 | IP | 被运输层TCP、UDP协议使用,互联网中的数据传输就是通过IP协议 |
2 | ICMP | IP协议附属协议,用于交换错误报文或者其它信息 |
3 | IGMP | 将UDP数据报多播到多个主机 |
六:链路层
有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节