Skip to content

计算机网络 1

网络编程的三要素

协议

IP 协议

[!attention] “IP” 和 “IP 地址” 可能有人会把“IP”和“IP 地址”搞混,“IP”其实是一种协议的名称,叫作网际协议

IP 协议的作用是把各种数据包准确地传送给对方。所以需要满足两个重要的条件 IP 地址【指明了节点被分配到的地址】和 MAC 地址【网卡所属的固定地址】

IP 地址可变换,但 MAC 地址基本上不会更改。

TCP/IP 协议族

TCP/IP 协议族里包含了什么?

![[Excalidraw/计算机/四大件/计算机网络 Draw.md#^group=EvbWjsbl|400]]

TCP/IP 的分层管理

![[Excalidraw/计算机/四大件/计算机网络 Draw.md#^group=mSWl9U1a|860]]

  • [!] 过程
    • 首先作为发送端的客户端在应用层【HTTP 协议】发出一个想看某个 Web 页面的 HTTP 请求;
    • 接着,为了传输方便,在传输层【TCP 协议】把从应用层收到的数据【HTTP 请求报文】进行分割,并在各个报文上打上标记序号及端口号后转发给网络层;
    • 在网络层【IP 协议】,增加作为通信目的地的 MAC 地址后转发给链路层;
    • 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。
  • [!] 分层的特点
    • 分层之后代表模块化,我们需要修改哪一块就修改哪一块,不用改动整体
    • 使得设计更加简单,应用层只用考虑应用层的内容,无需弄清 IP,线路等问题

应用层

应用层负责处理网络通信中的应用程序数据应用层协议【定义了应用程序之间的通信规则和数据交换格式,使得不同的应用程序能够在网络上进行可靠的数据传输和通信】

应用层协议提供了各种服务和功能【电子邮件传输(SMTP)、文件传输(如 FTP 和 TFTP)、远程登录(如 Telnet 和 SSH)、万维网访问(如 HTTP 和 HTTPS)域名系统(DNS)、网络时间协议(NTP)、简单网络管理协议(SNMP)等等】

传输层

传输层提供端到端的数据传输服务,确保数据在源主机和目标主机之间的可靠传输 #问题/没搞懂传输层是干什么的?

传输层的两个主要协议是 传输控制协议 (TCP)用户数据报协议 (UDP)

网络层

网络层主要负责:

  • IP 地址处理: 负责确定数据包的源 IP 地址和目标 IP 地址。这使得数据包能够正确的从源头发送到目标。
  • 路由选择: 负责确定数据包从源头到目标的最佳路径。它要考虑的因素包括路径的长度、网络的拥堵程度、路由器的性能等。
  • 分片和重组: 如果一个数据包过大,以至于不能通过某个网络,网络层会将其分片成更小的部分,这些部分会独立的通过网络。在目标端,这些分片会被重新组合。
  • 错误处理和诊断: 例如,ICMP 协议【它能够告诉发送者数据包是否成功到达,如果没有,原因是什么】

网络接口层【链路层】【物理层】

链路层提供了一个物理介质,并处理与物理层相关的细节,以便上层协议可以进行可靠的数据传输。包括控制操作系统、硬件的设备驱动、NIC【网络适配器(网卡)】,及光纤等物理可见部分