计算机网络-基础

196 阅读3分钟

TCP/IP网络模型有几层?

先说结论:一共四层

  • 应用层
  • 传输层
  • 网络层
  • 网络接口层

TCP_IP网络模型.png

应用层:直接面向用户的应用程序,提供各种网络服务

  • 工作在操作系统中的用户态
  • 常见协议:
    • Http/Https:用于Web浏览器与服务器之间的通信
    • FTP:文件传输协议
    • DNS:域名系统,用于将域名转化为IP地址
    • Telnet:远程登录协议
    • SMTP、POP3、IMAP:电子邮件传输协议

传输层:是为应用层提供网络支持的

  • 应用层的数据包会传给传输层
  • 传输层以下都工作在操作系统中的内核态

在传输层有两个协议,分别是TCPUDP

TCPTransmission Control Protocol):传输控制协议

  • 是一种面向连接的协议
  • 大部分应用都是使用TCP协议,因为TCP比UDP多了很多特性
    • 如:Http协议

UDPUser Datagram Protocol): 用户数据报协议

  • 是一种无连接的的协议
    • 它不预先建立连接,直接发送数据包到目标地址
  • 但是实时性相对更好,传输效率也高

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

在TCP协议中,我们把每个分块称为一个TCP段(TCP Segment)

传输层.png

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

比如说:

  • 80 端口通常是 Web 服务器用的
  • 22 端口通常是远程登录服务器用的

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

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

网络层:负责将一个设备传输到另一个设备

最常用的是IP协议Internet Protocol

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

IP协议.png

我们一般用 IP 地址给设备进行编号,对于 IPv4 协议, IP 地址共 32 位,分成了四段

  • 比如:192.168.100.1,每段是8位

网络接口层:主要为网络层提供链路级别传输的服务

  • 负责在以太网、WiFi 这样的底层网络上发送原始数据包
  • 工作在网卡这个层次,使用 MAC 地址来标识网络上的设备

在IP头部的前面加上MAC头部,并封装成数据帧(Data frame),发送到网络上

以太网在判断网络包目的地时,和 IP 的方式不同,因此必须采用相匹配的方式,才能在以太网中将包发往目的地。 而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址

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

总结:

封装格式.png

  • 网络接口层的传输单位是帧(Frame)
  • IP层的传输单位是包(Packet)
  • TCP层的传输单位是段(Segment)
  • HTTP层的传输单位则是消息或报文(message)