TCP/IP 网络模型学习
学习资源 小林Coder 图解网络 2022.3.27
对于同一台设备上的进程间通信->管道、消息队列、共享内存、信号等方式
对于不同设备上的进程间通信->网络通信->设备多样性->兼容多种多样的设备
就协商出了一套通用的网络协议。
应用层
应用软件 -> 应用层
通信 -> 下一层 传输层
专注为用户提供应用功能 不关心如何传输
应用层 -> 操作系统 用户态
传输层以下 -> 内核态
重点协议 HTTP DNS
传输层
两个重要的传输协议
TCP UDP
TCP 传输控制协议
特点 流量控制 超时重传 控制阻塞
保证可靠性
UDP 只负责发送 不保证抵达
特点 实时性 传输效率高
应用传输数据大 -> 直接传输不好控制 -> 传输层数据包大小超过MSS(TCP最大报文段长度)
-> 将数据包分块
分块目的:即使中途有一个分块丢失或损坏了,只需要重新发送这一个分块,而不用重新发送整个数据包。在 TCP 协议中,我们把每个分块称为一个 TCP 段(TCP Segment)
传输层传输数据 -> 应用层可能有多个应用 -> 端口
(将应用区别开的编号)
常见端口 80 web服务器
22 远程登录服务器
浏览器 每个标签页都是一个独立的进程 会分配临时的端口号
传输层报文携带端口号 -> 接收方识别发送目标应用
网络层
网络环境复杂 -> 不满足传输层(简单 高效 专注)的设计理念 -> 将具体传输功能交给 网络层
网络层最常使用的协议 IP协议
IP协议将传输层的报文作为数据 加上IP报头 组成 IP报文
IP报文大小超过MTU(以太网中一般为1500字节)
-> 再次进行分片
得到一个即将发送到网络的IP报文
网络层负责 将设备传输给设备 -> 需要区分设备的编号
采用IP地址
给设备进行编号
IPV4 32位 四段 每段8位
寻址方式: 配合子网掩码
算出IP地址网络号和主机号
1.网络号 负责标识该IP地址是属于哪个子网的
2.主机号 负责标识同一子网下的不同主机
IP地址另一个重要的能力 路由
设备 -> 网关-> 路由器->…->交换机 ->…->设备
IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘。
网络接口层
生成了 IP 头部之后,接下来要交给**网络接口层(Link Layer)**在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。
IP 头部中的接收方 IP 地址表示网络包的目的地,通过这个地址我们就可以判断要将包发到哪里,但在以太网的世界中,这个思路是行不通的。
什么是以太网呢?电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分。以太网就是一种在「局域网」内,把附近的设备连接起来,使它们之间可以进行通讯的技术。
以太网在判断网络包目的地时和 IP 的方式不同,因此必须采用相匹配的方式才能在以太网中将包发往目的地,而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址。
MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息,我们可以通过 ARP 协议获取对方的 MAC 地址。
所以说,网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。
总结
综上所述,TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。