小林coding图解计算机网络|基础篇01|TCP/IP网络模型有哪几层?

小林coding网站通道:入口

本篇文章摘抄应付面试的重点内容,详细内容还请移步:

文章目录

  • [应用层(Application Layer)](#应用层(Application Layer))
  • [传输层(Transport Layer)](#传输层(Transport Layer))
    • [TCP段(TCP Segment)](#TCP段(TCP Segment))
  • [网络层(Internet Layer)](#网络层(Internet Layer))
  • [数据链路层(Link Layer)](#数据链路层(Link Layer))

应用层(Application Layer)

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

而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。因为应用层往往负责处理众多逻辑,比如文件传输、名称查询、网络管理等等,如果应用层也在内核中实现,会使内核变得非常庞大。

应用层协议有ping、telnet、OSPF、DNS

传输层(Transport Layer)

传输层服务好应用即可,让其作为应用间数据传输的媒介,帮助实现应用到应用的通信。

传输层两个最主要的协议TCP、UDP。

TCP协议为应用层提供可靠的、面向连接的、基于流的服务。

TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。


UDP协议与TCP协议完全相反,它为应用层提供不可靠、无连接和基于数据报的服务。

UDP 相对来说就很简单,简单到只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高。当然,UDP 也可以实现可靠传输,把 TCP 的特性在应用层上实现就可以,不过要实现一个商用的可靠 UDP 传输协议,也不是一件简单的事情。


TCP段(TCP Segment)

应用需要传输的数据可能会非常大,如果直接传输就不好控制,因此当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,这样即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。

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

比如 80 端口通常是 Web 服务器 用的,22 端口通常是远程登录服务器 用的。而对于浏览器(客户端)中的每个标签栏都是一个独立的进程,操作系统会为这些进程分配临时的端口号

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

网络层(Internet Layer)

网络层实现数据包的选路和转发,大家可能会认为传输层负责将数据从一个设备传输到另一个设备,事实上它并不负责

网络层最核心的协议是我们的IP协议,IP 协议会将传输层的报文作为数据部分 ,再加上 IP 包头 组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。

IP协议的寻址能力

将 IP 地址分成两种意义:

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

怎么分的呢?这需要配合子网掩码才能算出 IP 地址 的网络号和主机号

举个例子,比如 10.100.122.0/24,后面的/24表示就是 255.255.255.0 子网掩码,255.255.255.0 二进制是「11111111-11111111-11111111-00000000」,大家数数一共多少个1?不用数了,是 24 个1,为了简化子网掩码的表示,用/24代替255.255.255.0。

知道了子网掩码,该怎么计算出网络地址和主机地址呢?

将 10.100.122.2 和 255.255.255.0 进行按位与运算,就可以得到网络号。

也就是说网络号是:10.100.122.2。那么在寻址的过程中,先匹配到相同的网络号(表示要找到同一个子网),才会去找对应的主机。

IP协议的路由能力

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

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

IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘

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

数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。最常用的两个协议是ARP协议和RARP协议。他们**实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)**之间的相互转换。


什么是以太网?

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

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

总结

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

相关推荐
Kevin Wang72738 分钟前
欧拉系统服务部署注意事项
网络·windows
min18112345640 分钟前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
汤愈韬1 小时前
Full Cone Nat
网络·网络协议·网络安全·security·huawei
zbtlink2 小时前
现在还需要带电池的路由器吗?是用来干嘛的?
网络·智能路由器
桌面运维家2 小时前
vDisk配置漂移怎么办?VOI/IDV架构故障快速修复
网络·架构
dalerkd2 小时前
忙里偷闲叙-谈谈最近两年
网络·安全·web安全
Controller-Inversion2 小时前
cdn协议
计算机网络·github
广州服务器托管2 小时前
NVIDIA最新591.74显卡驱动精简版:支持DLSS 4.5、所有RTX显卡都可使用,最新N卡驱动下载
计算机网络·网络安全·云原生·个人开发·可信计算技术
汤愈韬2 小时前
NAT ALG (应用层网关)
网络·网络协议·网络安全·security·huawei
运维栈记4 小时前
虚拟化网络的根基-网络命名空间
网络·docker·容器