基础篇——tcp/ip网络模型
文章目录
前言
- 计算机网络的本质活动:
是实现分布在不同地理位置的主机之间的进程通信,以实现应用层的各种网络服务; - 通用网络协议的由来:
同一设备上进程间通信有多种方式,eg:管道、消息队列、共享内存、信号…;
不同设备上进行进程通信,设备具有多样性,网络通信要兼容多种设备,因此,有了网络协议; - 网络协议是分层的,因此,从上至下分别分为:
- 应用层;
- 传输层;
- 网络层;
- 数据链路层;
- 物理层;
- 网络层、数据链路层、物理层实现了网络中主机之间的数据通信,但是数据通信不是组建计算机网络的最终目的;
- 建立计算机网络的主要目的是:
共享资源、分担任务;
一、 应用层(Application Layer)
1.概念
- 应用层一般就是我们所用的众多app;
- 在应用层,我们只需要关心为用户提供应用服务,不需要知道数据是如何传输的,这是传输层要做的事情;
- 应用层在操作系统中是用户态;
传输层及以下在操作系统中是内核态;
2. C/S模式
- 客户端服务器模式;
- 通常采用两层结构;
- 服务器主要负责数据管理,客户机主要负责完成与用户的交互任务;
- 主要用于局域网内;
- 这种模式通常用于中央化的应用系统,如 Web 服务器、数据库等;
3.P2P模式
- 对等计算网络;其中每个节点都是客户端和服务器的同等地位,可以相互发送和接收请求;
- 没有中心化的服务器和控制者,所有节点都平等,并且可直接与其他节点通信;
- 该模式在分布式计算、文件共享、点对点通信等方面广泛应用;
- 优点:可以在不增加服务器负载的情况下增加网络容量,因为所有节点都是可以充当服务器的角色;还可通过在网络上散布数据,提高网络的安全性和稳定性;
- 缺点:安全性问题、难以管理和维护等;
二、传输层(Transport Layer)
1.概念/功能
- 应用层的数据包会传给传输层;
- 传输层是为应用层提供网络支持的;
- 传输层实现主机进程之间的端端通信;
- 当应用层传输的数据包大于MSS(TCP最大报文段长度),
就要将数据包分块,这样当数据出现问题的时候就可以不用全部删除,只处理有问题的数据块即可;
在TCP协议中,我们把这样的数据块叫做TCP段。 - 主要功能: 实现分布式进程通信;
- 端口:当设备作为接收方的时候,传输层要将数据包传给应用,但是一个设备上会有很多应用,为了区分开,我们需要给每个应用设置一个编号,这个编号就是端口;
eg:
80端口:web服务器;
22端口:远程登陆服务器;
由于传输层的报文中是携带端口号的,所以接收方可以知道报文是发给那个应用的;
2.两个传输协议(TCP/UDP)
a.TCP
- 全称是:传输控制协议;
- 大部分应用使用的都是TCP传输层协议;
eg: HTTP应用层协议; - TCP比UDP的特性多很多,
eg:超时重传、流量控制、拥塞控制…
都是为了将数据包可靠的传给对方;提高可靠性; - 优点:面向连接的、可靠的;
b.UDP
-
只负责发送数据包,不保证对方能否接收到;
-
UDP 是User Datagram Protocol的简称,
中文名是用户数据报协议,
是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,
提供面向事务的简单不可靠信息传送服务,
IETF RFC 768是UDP的正式规范。 -
特点:不可靠快速传输;
-
UDP是OSI参考模型中一种无连接的传输层协议,
它主要用于不要求分组顺序到达的传输中,
分组传输顺序的检查与排序由应用层完成,
提供面向事务的简单不可靠信息传送服务。
UDP 协议基本上是IP协议与上层协议的接口。
UDP协议适用端口分别运行在同一台设备上的多个应用程序。UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。常用的UDP端口号有:
应用协议 端口号
DNS 53
TFTP 69
SNMP 161
UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。
但是正因为UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。
三. 网络层
1.概念
- 实现实际上的应用(设备)与应用(设备)之间的传输;(实现实际上的传输功能)
- 找计算机,靠ip地址;
2. IP协议
IP协议会将传输层报文作为数据部分加上IP包头组成IP报文;
当IP报文大于MTU(以太网大约为1500字节),会对其分片,这样就得到一个即将发送的IP报文;
- 寻址能力;寻找Ip地址:网络号+主机号;
- 路由:选择路径;
四. 数据链路层
- 为网络层提供链路级别传输的服务;
- 每台网卡都有一个MAC地址,用来唯一标识设备的;(路由器算出下个ip地址,通过ARP协议找到其MAC地址,即可知道该IP是谁的);
五. 物理层
- 主要为数据链路层提供二进制传输的服务;
- 数据从设备发送到网络时,需要把数据包转换成电信号,让其可以在物理介质上传输;
总结
综上所述,网络协议是由上到下分成五层,分别是应用层、传输层、网络层、数据链路层、物理层。