TCP/IP网络模型有那几层?

应用层、传输层、网络层、网络连接层

应用层

   应用层只需要专注于为用户提供应用功能,我们的手机或者电脑上面的应用软件就是在应用层上实现的,它不用去关心数据是如何传输的。

应用层是工作在操作系统中的用户态,传输层及以下则是工作在内核态。

传输层

   传输层是为应用层提供网络支持的;应用层的数据包会传给传输层。

传输层有两个传输协议:TCP、UDP

TCP

    TCP(传输控制协议):大部分应用使用都是在TCP传输层协议,如:HTTP应用层协议

它相比于UDP多的特性

  1. 流量控制
  2. 超时重传
  3. 拥塞控制等,它们都是为了保证数据包可靠地传输给对方

UDP

    UDP:只负责发送数据包,不保证数据包是否能抵达对方

优点:

  1. 实时性相对更好
  2. 传输效率高
UDP实现可靠传输

     UDP要想实现可靠传输,需要把TCP特性在应用层实现,但是实现一个商用地可靠地UDP传输协议,也是不易地。

数据包分块

    当应用层传输地数据较大时,直接传输就不好控制了,所以当传输层的数据包大小超过MSS(注:MSS是TCP最大报文段长度),就要数据包分块,这样即使中途有一个分段损坏或丢失,就只需重发这一分块,而不需要发送整个数据包了。

     在TCP协议中,每个分块称为一个TCP段。

端口

     当设备作为接收方时,传输层则负责把数据包传给应用,但同一设备可能会有很多应用在接收或者传输数据,这时就需要一个编号将应用区分开,这个编号就是端口。

端口号

      浏览器(客户端)中每个标签栏都是一个独立的进程,操作系统会为这些进程分配临时的端口号。

由于传输层的报文段中都会携带端口号,所以接收方可以识别出该报文是发送给哪个应用的。

注:传输层并不负责将数据从一个设备传输到另一个设备,我们不希望传输层协议处理太多的事情,只需服务好应用,让其作为应用间数据传输的媒介,帮助实现应用与应用间的通信,而实现传输功能交给网络层。

网络层

       网络层最常使用的IP协议:IP协议会将传输层的报文作为数据部分,再加上IP头部,组装为IP报文,若IP报文大小超过MTU(以太网中一般为1500字节)就会再次进行分片,得到一个即将发送到网络的IP报文。

 

网络层负责将数据从一个设备传输到另一个设备,那如何找到所要传输的设备呢?

  网络层需要有区分设备的编号:一般用IP地址给设备进行编号,对于IPV4协议,IP地址共32位,分成四段(例:192.168.100.1),每段8位。

寻址能力

       为了寻址方便,还将IP地址分成了两种类型:

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

那么它们是如何分的呢?

       需要配合子网掩码算出IP地址的网络号和主机号。(具体参考笔记)

路由

       除了寻址能力,IP协议的另一个重要的能力就是路由,实际场景中,两台设备并不是用一条网线连接起来的,而是通过很多网关、路由器、交换机等众多网络设备连接起来的,那么就会形成很多条网络的路径,当数据包到达一个网络节点,就需要通过路由算法决定下一步走哪条路径。

路由器:在寻址工作中,就是要找到目标地址的子网,找到后进而将数据包转发给对应的网络内。

路由器只要一看到IP地址地网络号就可以进行转发。

所以,IP协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,而路由则是根据下一个目的地选择路径。

网络接口层

       生成IP头部之后,接下来交给网络接口层,在IP头部的前面加上MAC头部,并封装成数据帧发送到网络上。

以太网的世界中,通过IP头部中接收方的IP地址来判断将网络包送去哪里的方法是行不通的。

什么是以太网呢?

  电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分。以太网就是在一种局域网内,把附近的设备连接起来。使它们之间可以进行通讯的技术。

以太网在判断网络包目的地时和IP地址不同,所以在以太网进行通讯要用到MAC地址。

MAC头部就是以太网使用的头部,它包含了接收方和发送方的MAC地址等信息,我们可以通过ARP协议获取对方的MAC地址。

网络接口层主要为网络层提供链路级别的传输服务,负责在以太网,WIFI这样的底层网络上发送原始数据包,工作在网卡(网卡作为TCP/IP层的接口,可以在物理层传输信号,在网络层传输数据包)这个层次,使用MAC地址来标识网路上的设备。

总结

每一层的封装格式:

 

网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值