前言
对于一名程序员来说,掌握TCP/IP是我们成为资深工程师的底层知识之一,只有掌握了这个,才能无往不利。所以可能需要很多时间在这上面。
什么是TCP/IP协议
官方解释:TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。
通俗的理解:可以把网络当作一个异世界,我们如果要在异世界里面进行活动,就需要遵循这个世界的规则与规范,只有按照它的规范,才能在这里面生活与工作。
TCP/IP如何划分
官方定义:TCP/IP传输协议是Internet最基本的协议,严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层。以上四层架构,我们也称为互联网协议群。每一层都负责不同的功能。因为TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
网络通信都自是下而上的。
为何要划分
我觉得归根到底就是 分而治之 吧。我们知道网络协议是非常复杂的,但是将它分层后,就可以将它拆成多个简单的处理。
独立性:* 开发人员可以只关注整个结构中的其中某一层;
灵活性:* 可以很容易用新的实现来替换原有层次的实现;灵活性
耦合性:* 可以降低层与层之间的依赖;
规范性:* 有利于标准化;
复用性:* 利于各层逻辑的复用。
维护性:* 降低复杂度,易于实现和维护。
每层的作用
链路层
定义:
- 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(其它的任何传输媒介)的物理接口细节。
目的:
- 为IP模块发送和接收IP数据报;
- 为ARP模块发送ARP(地址解析协议)请求和接收ARP应答;
- 为RARP发送RARP请求和接收RARP应答。
主要协议
- 以太网链路层的协议
- 两个串行接口链路层协议(SLIP和PPP)
网络层
定义:
- 网络层有时也被称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)
目的:
- 实现两个端系统之间的数据透明传送。
- 处理输入数据报
- 处理路径、流控、拥塞等问题
功能:
- 分组与分组交换
- 路由
- 网络连接复用
- 差错检测与恢复
- 服务选择
- 网络管理
- 流量控制
- 拥塞控制
- 网络互连
- 连接的建立、保持和终止等
传输层
定义:
- 传输层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。
功能:
- 分割与重组数据
- 按端口号寻址
- 连接管理
- 差错控制和流量控制,纠错的功能
传输层要向上层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。
传输层是接下来要重点讲的。
应用层
定义:
- 应用层主要负责处理特定的应用程序细节。用于通信的应用程序和用于消息传输的底层网络提供接口。
功能 :
- 文件传输、访问和管理
- 电子邮件
- 虚拟终端
- 简单网络管理
- 查询服务和远程作业登陆
通用的应用程序
- Telnet远程登陆
- FTP文件传输协议
- SMTP简单邮件传送协议
- SNMP简单网络管理协议
- HTTP协议
总结
这一期中,主要讲了讲 TCP/IP的各个分层,及其对应层次的功能。下一期中,就开始具体讲讲传输层中 TCP协议与UDP协议。