你知道TCP/IP网络模型吗?

应用层

我们电脑或者手机使用的应用软件都在应用层实现,应用层只需要为用户提供应用功能,不需要关心数据是如何传输的。应用层是工作在操作系统的用户态,传输层及以下则工作在内核态。

传输层

应用层的数据包会传给传输层,传输层是为应用层提供网络支持的。
在传输层存在两个传输协议

  • TCP:TCP的全称为传输层控制协议,大部分应用使用的正是TCP传输层协议,比如HTTP应用层协议。TCP有很多特性(流量控制、超时重传、拥塞控制等)都是为了保证数据包可靠地传输给对方。
  • UDP:UDP相对简单,只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高。UDP也可以实现可靠传输,把TCP的特性在应用层上实现就可以。

应用层需要传输的数据可能非常大,当传输层的数据包大小超过MSS(TCP最大报文段长度),就要将数据分块,每一个分块称为TCP段。
当设备作为接收方时,传输层则负责把数据传给应用,但一台设备上可能有很多应用在接受或者传输数据,因此需要一个编号将应用区分开来,这个编号就是端口。传输层的报文中会携带端口号,因此接受方可以识别出该报文是发送给哪一个应用。

网络层

传输层并不负责将数据从一个设备传输到另一个设备,实际的传输功能是网路层。网络层最常使用的是IP协议,IP协议会将传输层的报文作为数据,再加上IP包头组装成IP报文。如果IP报文超过MTU(以太网中一般为1500字节)就会进行分片。为了寻址,需要将IP地址分层两种意义

  • 网络号:负责标识该IP地址是属于哪个子网的
  • 主机号:负责标识同一子网下的不同主机

IP 协议的寻址作⽤是告诉我们去往下⼀个⽬的地该朝哪个⽅向⾛,路由则是根据下⼀个⽬的地选择路径。寻址更像在导航,路由更像在操作⽅向盘。

数据链路层

一旦数据需要跨网络传输,就需要有一个设备同时在两个网络当中,这个设备一般是路由器,路由器可以通过路由器表计算下一个要去的IP地址。正是由于数据链路层的存在,路由器可以知道这个IP地址是哪个设备的。数据链路层用来表示网络中的设备,让数据在一个链路中传输,主要为网络层提供链路级别传输的服务。每⼀台设备的⽹卡都会有⼀个 MAC 地址,它就是⽤来唯⼀标识设备的。路由器计算出了下⼀个⽬的地 IP 地址,再通过ARP协议找到该⽬的地的 MAC 地址,这样就知道这个 IP 地址是哪个设备的了。

物理层

当数据准备要从设备发送到⽹络时,需要把数据包转换成电信号,让其可以在物理介质中传输,主要是为数据链路层提供⼆进制传输的服务。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值