网络常见概念
⭐说一说TCP/IP四层模型,简单谈一下自对每一层的理解
TCP/IP模型的话从上到下的话是应用层——>传输层——>网络层——>网络接口层
我的简单理解是首先应用层就是为用户提供应用服务的,比如HTTP,FTP,DNS,Talent,SMTP,当两个不同设备进行通信的的时候,应用就把数据传递给下一层也就是传输层。
在传输层的话有两个主要的协议:UDP和TCP,简单来说大部分应用使用的都是TCP(传输控制协议),TCP相较与UDP而言多了很多特性:比如流量控制,超时重传,拥塞控制这些都能保证数据包能够可靠的传输给对方。
UDP相对于来说就很简单,他只负责发送数据包,不保证数据包能否抵达对方,但其实时性更好,传输效率更高。比如直播这些应用走的都是UDP传输。
应用层需要传输的数据可能非常大,如果直接传输的话就不好控制。因此当传输层的数据包大小超过MSS(TCP最大报文段长度),就要将数据包分块。即使在传输过程中有分块丢失或者损坏,只需要重新发送这一个分块,而不用重新发送整个数据包。每一个分块叫做一个TCP段。在每一个分块前面都要加上TCP报文头。
当设备作为接收方时需要负责把数据包传给应用,但是一台设备上有很多应用在接收或传输数据,因此需要一个编号也就是端口号进行将应用区别开来。由于传输层的报文中会携带端口号,因此接收方会识别出该报文是发送给哪一个应用的
传输层并不负责将数据从一个设备传输到另一个设备,实际的传输功能交给网络层:网络层最厂使用的是ip协议,ip协议会将传输层的报文作为数据部分,再加上IP包头部组装成IP报文,得到一个即将发送到网络的IP报文。有时候两台设备并不是由一条网线连接在一起的,也就是并不是在同一个网段下,,而是由很多网关,路由器,交换机连接起来的。IP协议通过寻址和路由功能,选择合适的路径朝下一个目的地出发
生成了IP头部之后,接下来借给网络接口层,在IP头部的前面加上MAC头部,并封装成数据帧发送到网络上。MAC头部是以太网使用的头部,它包含了接收方和发送方的MAC地址等信息,我们可以通过ARP协议获取对方的MAC地址。网络接口层负责在以太网,WIFI这样的底层网络上发送原始数据包,使用MAC地址来标识网络上的设备
每一层的封装格式:(来源:小林coding)

评论