/ 技术 / 1825浏览

网络通信与TCP/IP协议入门

文章目录
  • 从寄快递理解网络
  • 从寄快递理解网络

    每当我们在微信发送消息、刷视频、单购物时,背后"数据"是如何传递的呢?其实它们的传输原理和快递网络差不多。

    地址与门牌号

    如果要给寄快速,需要哪些信息?当然是收件地址、收件人姓名和联系方式。网络的数据传输同样需要三个关键的东西:

    1. IP地址:相当于"XX市XX区XX路XX号",用于定位目标计算机(如192.168.1.1
    2. 端口号:类似"XX号楼XX室",是指定接收数据的特定程序(比如HTTP默认端口是80)
    3. 传输协议:选择顺丰还是EMS,决定哪种配送方式(TCP/UDP)

    这三个要素构成的"数字快递单",确保了数据包能准确送达目标程序。就像快递员不会把包裹扔在小区门口,网络协议保证数据直达指定的地方。

    网络四层模型

    网络有四层模型,分别是应用层、传输层、网络层、数据链路层。

    应用层:(HTTP/FTP/DNS) 负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是 HTTP、FTP 等。 该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。

    网络层:负责分配地址和传送二进制数据(选路线),主要协议是 IP 协议。

    传输层:(TCP/UDP) 传输层负责传送文本数据,主要协议是 TCP 协议。 传输层的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。 在 TCP/IP 协议组中,传输协议也包括所给数据应该送给哪个应用程序。

    数据链路层: 负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL 等等。

    如果类比快递公司的话,就是不同的分工

    层级类比部门核心职责常见协议
    应用层客服中心处理用户具体需求HTTP/FTP/DNS
    传输层配送团队确保包裹完整送达TCP/UDP
    网络层路线规划部选择最优运输路径IP/ICMP
    链路层货车司机实际运输包裹以太网

    TCP与UDP

    TCP三次挥手——建立信任连接

    TCP是可靠传输,就像一位负责任的邮差,要确保每个"数据包裹"都能完整送达。它通过三大保障机制构建信任:

    • 顺序标号:给每个数据包编号(如包裹单号)
    • 确认回执:收件人签收后发送回执
    • 超时重发:未收到回执自动补发包裹

    也就是TCP的三次握手建立连接

    [客户端]                         [服务器]
      |-------- SYN(申请合作) ------->| 
      |<------- SYN-ACK(确认可合作)----|
      |-------- ACK(正式开工) ------->|

    TCP四次挥手——优雅的告别

    [主动方]                         [被动方]
      |-------- FIN(我说完了) ------->| 
      |<------- ACK(收到结束通知)------|
      |<------- FIN(我也说完了)--------|
      |-------- ACK(确认结束) ------->|

    为什么需要四次挥手?

    • 全双工特性:就像双向车道,需要分别关闭两个方向的传输通道
    • 确保数据完整性:给被动方足够时间处理剩余数据

    UDP协议

    UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。也就是该协议不能保证数据准确无误地到达目的地。

    如果比喻为快递就是:

    • 即发即忘:寄出后不跟踪进度
    • 高效快速:省去确认环节
    • 可能丢件:适合实时性要求高的场景

    UDP常常用在视频通话,直播推流方面。

    DNS解析

    DNS 的全称是 Domain Name System。网络的连接网络是通过每台计算机在网络中拥有的惟一 IP 地址来完成的,所以DNS的任务是负责查找网络地址的ip。

    当用户访问我们网站一个网页时,他需要经过以下步骤:

    1. 找到这个网页的存放服务器;
    2. 服务器将用户的请求信息接入;
    3. 服务器通过文件路径(URL)查找用户请求网页;
    4. 用户将该网页内容下载到自己电脑上。
    这里荒芜寸草不生 后来你来这走了一遭 奇迹般万物生长 这里是我的心

    1

    1. 可爱

      可爱ヾ(≧∇≦*)ゝ

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注