TCP/IP网络模型

server/2024/9/24 8:01:50/

应用层

应用层服务于用户,比如说我们在电脑上使用的软件,都是在应用层上实现的,当不同设备通信时,数据由下一层的传输层实现。应用层提供的功能比如HTTP、FTP、Telnet、DNS、SMTP等。应用层是工作在操作系统中的用户态,传输层以及下层模型工作在内核态。

传输层

传输层主要作用是给应用层提供网络支持,主要服务于应用层,作为数据传输媒介,实现应用与应用之间的通信。

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

大部分应用都采用的TCP传输协议,比如说HTTP应用层协议。TCP与UDP相比多了很多特性,比如流量控制,拥塞控制,超时重传,这些特性都是为了保证数据包可以可靠的传输给对方。

UDP只负责传输数据包,不保证数据包是否丢失,实时性更好些,传输效率也更高。

应用传输的数据过大时(超过MSS),传输层会将数据包分块,当有分块丢失时,只需要重传丢失的分块即可,不需要重写发送整个数据包。在TCP协议中,这些分块叫做TCP段。

设备作为接收方时,传输层是要将数据包传输给应用层的。但是同一时间可能有多个应用在收发数据,为了避免数据传给应用时传输错误,通常会使用一个编号将应用区分开来,这个编号叫端口

一些应用的端口是默认的,比如说80的Web服务器端口,22的远程登陆服务器端口,浏览器每一个独立的标签页都是一个独立的进程,操作系统会为这些页面分配独立的端口号,而不是给浏览器应用一个端口。

网络

具体的传输实现,是由网络层实现的。

网络层常用的协议为IP协议,IP协议会将传输层的报文(HTTP与TCP报文)作为数据部分再次封装,加入IP包头组装成IP报文,与传输层相同的是,如果IP报文过大(超过MTU),那么也会进行分片传输,从而得到一个一个即将发送到网络的报文。

网络层是将数据从一台设备发送到另一台设备,为了找到接收数据的设备,我们需要一个与传输层中的端口类似的编号,在网络层这个编号叫做IP地址

这里以IPv4协议举例,IP地址一共32位,分为4段,每段以.进行分割,比如说192.168.100.1,每段占8位。

通过IP地址我们可以进行设备区分,但是网络层是如何进行寻址呢?

因此,IP地址可分为两种意义:

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

IP地址配合子网掩码来计算网络号与主机号。

在说如何计算网络号与主机号之前,先来了解一下子网掩码。比如说,10.100.122.0/24,IP地址后面的/24代表子网掩码1的个数。也就是 [11111111-11111111-11111111-00000000],转换为十进制子网掩码就是255.255.255.0

了解子网掩码是什么之后,再来看如何计算网络号与主机号。将IP地址与子网掩码进行按位与运算得到网络号。将子网掩码取反后与IP地址进行按位与运算,就可以得到主机号。

网络层在寻址过程中,先去匹配相同的网络号(找到同一个子网),然后再去找主机。

IP协议处理方便寻址,还有一个重要作用是路由,在实际中,两台设备并不是使用一个网线连接的,而是通过网关,路由器,交换机等设备连接起来的,那么就会形成很多条网络路径,当数据包到达一个网络节点之后,就需要通过路由算法决定下一步走哪个网络路径。

IP协议中寻址是告诉我们应该去哪里,路由则是根据目的地选择路径。

网络接口层

网络层提供链路级别传输的服务,负责在以太网、WiFi这样的底层网络上发送原始数据包,工作在网卡这个层次,使用Mac地址来标识网络上的设备。

生成IP报头之后,接下来要将数据传输给网络接口层,在IP报头之前再加上Mac报头,并封装成数据帧发送到网络上。

  • MTU:一个网络包的最大长度,以太网中一般是1500字节。
  • MSS:除去TCP与IP头部之后,一个网络包所能容纳的TCP数据的最大长度。

总结

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


http://www.ppmy.cn/server/20272.html

相关文章

jQuery中获取和设置属性

在jQuery中,你可以使用 .attr() 方法来获取和设置HTML元素的属性。这个方法有一个参数,当你传递一个参数给 .attr() 时,它会返回指定属性的值。当你传递两个参数给 .attr() 时,它会设置指定属性的值。 下面是一些示例代码&#x…

嵌入式学习——C语言基础——day10

1. 指针的基本概念 1.1 地址 用来区别不同内存字节空间的编号 1.2 指针 地址就是指针,指针就是地址,地址是一个编号,指针多了指向的概念 1.3 指针变量 用来存放指针的变量,有时将指针变量简称为指针 2. 指针相关运算符 & …

【六十】【算法分析与设计】用一道题目解决dfs深度优先遍历,dfs中节点信息,dfs递归函数模板进入前维护出去前回溯,唯一解的剪枝飞升返回值true

路径之谜 题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是nn个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着音走,也不能跳跃。每走到一个新方格,就要向正北 方和正西…

Java 提取HTML文件中的文本内容

从 HTML 文件中提取文本内容是数据抓取中的一个常见任务,你可以将提取的文本信息用于编制报告、进行数据分析或其他处理。本文分享如何使用免费 Java API 从HTML 文件中提取文本内容。 安装免费Java库: 要通过Java提取HTML文本,需要用到Free…

科技改变视听4K 120HZ高刷新率的投影、电视、电影终有用武之地

早在1888年,法国生理学家埃蒂安朱尔马莱就发明了一套盒式摄像机,能以120帧/s的速度在一条纸膜上曝光照片,但是当时没有相匹配的放映设备。而马莱的另一套拍摄设备是60帧/s的规格,并且图像质量非常好。 受此启发,雷诺的…

Redis之路系列(5)功夫在诗外

5 拓展篇—功夫在诗外 6.0新特性 相对都比较鸡肋,谨慎在生产环境使用 ACL安全策略 Redis6版本推出了ACL(Access Control List)访问控制权限 的功能,基于此功能,可以设置多个用户,并且给每个用户单独设 置命令权限和数据权限。 …

火绒安全:全面守护你的数字世界

火绒安全:全面守护你的数字世界 在数字化时代的浪潮中,我们的电脑和生活已经紧密相连。然而,网络安全问题也如影随形,恶意软件、病毒、间谍软件等安全威胁层出不穷。作为一名国际著名的病毒程序软件专家,我深知一款高…

iOS AVPlayer

参考文章 AVPlayer的基本使用