TCP/IP的网络模型
1.应用层:
- 它是网络模型的最上层,也是我们能够直接接触到的。我们用的手机、电脑中的应用软件就是在应用层实现的,当两个不同的设备需要传输数据的时候,应用就会将数据传输到下一层,也就是传输层
- 应用层只需要关注为用户提供应用功能,比如http、ftp、telnet、DNS、SMTP等
- 应用层是工作在操作系统中的用户态,而传输层及以下则工作在内核态
2.传输层:
- 传输层是用于给予应用层网络支持的,应用层的数据包会传输到传输层中
- 传输层中有两个重要的协议:UDP协议和TCP协议:
- TCP协议:全称为传输控制协议(Transmission Control Protocol),大部分应用使用的就是TCP传输层协议,比如HTTP应用层协议。TCP相比于UDP多了很多特性,如流量控制、超时重试、拥塞控制等,这些都能够保证数据包能够可靠地传输到对方
- UDP协议:它相对来说简单一些,简单到只负责发送数据包,不保证数据包能够准确地传输到对方,它的实时性更好、速度更快。如果想要确保数据传输,可以实现TCP传输层协议的特性,
- 因为应用需要传输的数据包一般都非常大,如果直接传输很难控制,因此当数据包大小超过MSS(TCP最大报文段长度),就要将数据进行分块,这样即时半路丢失了数据,也只需要重新传输丢失的数据块,而不是重新传输全部的数据。在TCP协议中,每一个数据包块被称为TCP段(TCP segment)
- 当设备作为接收方时,传输层就会将应用层的数据包传输给应用,而一个设备中会有多个应用在接收数据和发送数据,所有我们就需要一个编号来将应用区分开来,而这个编号就是我们所说的端口号
3.网络层
-
真正实现传输功能的时网络层,而不是应用层直接传输数据的传输层,它只需要服务好应用就可以了,不需要去处理太多的事情
-
网络层主要的协议是:IP协议
- IP协议会将传输层的数据包作为数据部分,再加上IP包头组成IP报文,如果IP报文大小超过MTU(以太网一般为1500字节)就会再次进行分片,得到一个即将发送到网络中的IP报文。它有寻址和路由两种作用
-
IP头部中有IP地址的网络号和主机号
-
IP协议的寻址作用是告诉我们去往下一个目的地该朝哪一个方向走,路由则是根据下一个目的地选择路径
4.网络接口层
- 在网络层中,IP协议为报文添加了IP头,网络接口层则继续会为报文的IP头前面添加MAC地址,然后再将它封装成数据帧发送到网络上
- 网络接口层主要为网络层提供链路级别传输的服务,负责在以太网、WiFi这样的底层网络上发送原始数据包,工作在网卡这个层次,使用MAC地址来表示网络上的设备
- MAC头部是以太网的头部,它包含了接收方和发送方的MAC地址等信息,我们可以通过ARP协议来获取对方的MAC地址
5.总结
- TCP/IP网络通常分为四层,从上到下分别为:应用层、传输层、网络层和网络接口层。
- 每一层数据的封装格式