当前位置: 首页 > news >正文

43. LINUX网络编程(1)

1. 网络发展历史和分层

1.1 Internet的历史

  • Internet-“冷战”的产物
    • 1957年10月和11月,前苏联先后有两颗“Sputnik”卫星上天
    • 1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称ARPA
    • 1968年6月DARPA提出“资源共享计算机网络” (Resource Sharing Computer Networks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即“阿帕网”,是Interne的最早雏形

  • 网络互联促成了TCP/IP协议的产生

    • 早期的ARPAnet使用网络控制协议(Network Control Protocol,NCP),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能
    • 1973年由 Robert Kahn 和Vinton Cerf两人合作为ARPAnet开发了新的互联协议。
    • 1974年12月两人正式发表第一份TCP协议详细说明,但此协议在有数据包丢失时不能有效的纠正

  • TCP协议分成了两个不同的协议:

    • 用来检测网络传输中差错的传输控制协议TCP
    • 专门负责对不同网络进行互联的互联网协议IP

从此,TCP/IP协议诞生

1983年ARPAnet上停止使用NCP,互联网上的主机全部使用TCP/IP协议。TCP/IP协议成为Internet中的“世界语”

2. 网络的体系结构

网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。

每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务

网络体系结构即指网络的层次结构和每层所使用协议的集合

两类非常重要的体系结构:OSI与TCP/IP

OSI开放系统互联模型

  • OSI模型相关的协议已经很少使用,但模型本身非常通用
  • OSI模型是一个理想化的模型,尚未有完整的实现
  • OSI模型共有七层

在这里插入图片描述

OSI七层模型(开放式系统互联参考模型),是网络通信的分层架构标准,以下分点介绍:

各层功能与说明

层级功能概述典型协议/技术与TCP/IP模型的对应关系
应用层为用户提供应用服务(如文件传输、邮件、网页浏览)。HTTP、FTP、SMTP、DNS对应TCP/IP的应用层
表示层负责数据的编码、加密、压缩,确保通信双方数据格式一致。ASCII、JPEG、SSL/TLS部分融入TCP/IP的应用层
会话层建立、维护和终止通信会话,管理会话同步。RPC、NetBIOS部分融入TCP/IP的应用层/传输层
传输层提供端到端的可靠(如TCP)或不可靠(如UDP)数据传输,实现流量控制。TCP、UDP对应TCP/IP的传输层
网络层处理IP寻址、路由选择,实现不同网络间的数据包转发。IP、ICMP、OSPF对应TCP/IP的网络层
数据链路层负责数据帧的封装、差错检测,实现相邻节点的可靠传输。Ethernet、PPP、HDLC对应TCP/IP的链路层(含部分物理层功能)
物理层定义物理介质的电气、机械特性,实现比特流的传输。网线、光纤、无线射频规范对应TCP/IP的物理层

模型意义

OSI七层模型是网络架构的理论框架,虽实际应用中TCP/IP模型更广泛,但它帮助人们清晰理解网络通信的分层逻辑,便于协议设计、故障排查和技术学习。

TCP/IP协议族的体系结构

  • TCP/IP协议是Internet事实上的工业标准。

  • 一共有四层

在这里插入图片描述

TCP/IP四层模型,是互联网通信的核心架构,以下分点说明各层:

层级包含协议/技术功能概述补充说明
应用层Telnet、FTP、HTTP、DNS、SMTP等为用户提供各类网络应用服务,如远程登录(Telnet)、文件传输(FTP)、网页浏览(HTTP)、域名解析(DNS)、邮件发送(SMTP)等。整合了OSI模型中应用层、表示层、会话层的功能
传输层TCP、UDP提供端到端的可靠(TCP)或不可靠(UDP)数据传输,实现流量控制、拥塞控制(TCP)等。是进程间通信的核心层级,保障数据传输的可靠性或高效性
网络层IP、ICMP、IGMP处理IP寻址、路由选择,ICMP用于网络控制消息(如ping),IGMP用于组播管理。对应OSI模型的网络层,是跨网络通信的关键
网络接口和物理层以太网、令牌环网、FDDI等负责数据在物理介质上的传输,处理数据帧的封装、物理信号转换等。对应OSI模型的数据链路层和物理层,实现硬件级数据传输

在这里插入图片描述

TCP/IP协议通信模型架构图,可从以下维度解析:

1. 组件与角色

  • Client/Server:通信的两端,运行应用程序(如客户端的浏览器、服务器的Web服务),属于TCP/IP模型的应用层
  • Operating System:提供网络协议栈支持,负责传输层(TCP/UDP)、网络层(IP)的功能处理。
  • LAN driver:局域网驱动,属于网络接口层,负责将上层数据封装成以太网帧等,通过LAN(局域网)物理传输。
  • Router:工作在网络层,负责跨网段路由转发,实现LAN与LAN、LAN与WAN之间的通信。
  • WAN/Internet:广域网/互联网,是跨区域的网络载体,通过多路由器转发实现远距离通信。

2. 通信流程与分层逻辑

数据从客户端到服务器的流程体现了TCP/IP模型的分层协作:
应用层(Client应用)→ 传输层/网络层(操作系统处理)→ 网络接口层(LAN driver封装传输)→ 经Router路由转发 → 通过WAN/Internet到达Server侧 → 反向解封装到Server应用
这种分层设计让每一层专注自身职责(如Router仅处理网络层路由、LAN driver仅处理链路层帧传输),实现“解耦”,提升系统可维护性。

3. 实际意义

该图直观呈现了TCP/IP协议在实际网络中的通信路径,是理解网络分层协作的典型参考。例如,嵌入式物联网设备(作为Client)向云端服务器上传数据时,就是遵循此流程:设备应用层封装数据,经操作系统协议栈、硬件驱动(如Wi-Fi模块),通过路由器接入互联网,最终到达云端Server。

在这里插入图片描述

在这里插入图片描述

这是TCP/IP协议下的数据包结构示意图,可从以下几点分析:

1. 结构组成及功能

部分长度(字节)作用说明
Ethernet header14链路层头部,包含源/目的MAC地址等,实现以太网帧的链路层识别与传输。
IP header20网络层头部,包含源/目的IP地址、协议类型等,用于IP寻址和路由。
TCP header20传输层头部,包含源/目的端口号、序列号、确认号等,实现TCP可靠传输(流量控制、拥塞控制等)。
App. header-应用层头部,因应用协议(如HTTP、FTP)而异,用于标识应用层数据类型与信息。
User data-应用层实际传输的用户数据内容。
Ethernet trailer-链路层尾部,含CRC校验码,用于以太网帧的错误检测。

2. 长度范围说明

从IP头部到用户数据等部分,长度范围为46 - 1500字节,这是以太网帧有效载荷的范围,遵循了以太网MTU(最大传输单元)的要求,确保数据在链路层能正常传输。

在这里插入图片描述
这是一张TCP/IP模型下数据封装与传递过程的示意图,清晰展示了数据在网络分层中“封装→转发→解封装”的完整流程,可从以下维度解析:

1. 发送端(主机A)的封装过程

TCP/IP分层数据单元封装操作(添加头部/校验)头部作用
应用层应用层数据包客户数据 + FTP头定义文件传输的业务逻辑(FTP协议)
传输层TCP段添加TCP头实现端到端可靠传输(标记端口、序列号、确认号等,保证数据有序、不丢包)
网络层IP数据报添加IP头负责路由寻址(标记源/目的IP地址,让数据跨网段传输)
网络接口层以太网数据帧添加以太网头 + CRC校验实现局域网内传输(以太网头标记MAC地址,CRC用于帧的差错校验)

2. 路由器的转发过程

路由器接收主机A的以太网数据帧后,解封装到IP层(去掉以太网头和CRC),根据IP头中的目标IP地址,选择转发路径,再封装成令牌环网数据帧(添加令牌环网头和CRC),实现异构网络(以太网→令牌环网)的互通。

3. 接收端(主机B)的解封装过程

TCP/IP分层数据单元解封装操作(去掉头部/校验)最终结果
网络接口层令牌环网数据帧去掉令牌环网头 + CRCIP数据报
网络层IP数据报去掉IP头TCP段
传输层TCP段去掉TCP头应用层数据包
应用层应用层数据包去掉FTP头客户数据

4. 核心意义

该图直观体现了网络分层的“封装-解封装”机制:每一层只处理本层头部信息,实现“各司其职、接口标准化”,既保证了不同网络(以太网、令牌环网)的互通,又让数据传输的逻辑清晰可追溯。这也是TCP/IP协议能成为互联网基石的关键设计之一。

在这里插入图片描述
这是一张TCP/IP四层模型的结构与组件交互示意图,可从分层功能、Socket类型、模式区分三个维度解析:

1. 分层核心解析

分层核心组件/协议功能说明
应用层ftp、telnet、mail、ping承载具体业务功能(文件传输、远程登录、邮件收发、网络连通性检测)
传输层TCP、UDP提供端到端数据传输能力(TCP可靠有序,UDP高效低延迟)
网络层IP(+ICMP)负责路由寻址、跨网段通信(ICMP辅助网络控制,如ping的回显机制)
物理层(Device Drivers)设备驱动实现硬件接口驱动(如网卡驱动),将IP数据包封装为物理网络帧(以太网帧等),通过网线等介质传输

2. Socket类型与应用场景

Socket是应用层与传输层的交互接口,图中展示了两类关键Socket:

  • Stream Socket(流式套接字):适配TCP协议,提供可靠、有序的字节流通信,支撑ftp(文件传输)、telnet(远程登录)、mail(邮件)等场景。
  • Raw Socket(原始套接字):绕过传输层,直接操作网络层/物理层协议,如ping命令通过它发送ICMP回显请求,实现网络诊断。

3. 模式区分(用户模式 vs 内核模式)

  • 用户模式:应用层的ftptelnet等程序运行在用户空间,通过Socket接口发起网络请求。
  • 内核模式:传输层(TCP/UDP)、网络层(IP)、物理层(设备驱动)运行在内核空间,负责协议栈的底层处理(如数据包封装、路由转发)。

这张图清晰呈现了TCP/IP协议栈的“分层解耦”设计——应用层专注业务、传输层负责端到端可靠/高效传输、网络层处理跨网段路由、物理层完成硬件适配,而Socket则是连接应用与内核协议栈的关键纽带。

TCP协议特点

  • TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)

  • 适用情况:

    • 适合于对传输质量要求较高,以及传输大量数据的通信。
    • 在需要可靠数据传输的场合,通常使用TCP协议
    • MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

UDP协议的特点

  • UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

  • 适用情况:

    • 发送小尺寸数据(如对DNS服务器进行IP地址查询时)

    • 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)

    • 适合于广播/组播式通信中。

    • MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

    • 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

http://www.dtcms.com/a/602749.html

相关文章:

  • LLMops与MLOps
  • 织梦本地安装网站wordpress 迁移 ip
  • 网站建设 目标网站怎么做落款
  • 贵阳做网站kuhugz网站结构图怎么做
  • 攻击链重构的具体实现思路和分析报告
  • 免费软件下载网站app交易网站建设具体方案
  • 怎么做非法彩票网站西安搜建站科技网站
  • 怎样做农产品交易平台网站asp网站开发环境
  • 从混沌中见你所见——文生图的逆向浪漫
  • 啊里云服务器怎么做网站建筑设计师要学什么专业
  • 11月12日numpy学习总结——numpy的广播规则
  • 网站建设设计流程步骤万网网站域名多少钱一年
  • Flutter---Dart基础
  • 网站权重怎么看用jsp做校园网站
  • 网页制作与网站建设初学者必看教程杭州网站开发凡客
  • 如何解决解决,微信小程序ios无法长按复制问题<text>设置 selectable=“true“不起作用
  • Linux驱动知识点:容器嵌入机制(Container Embedding)
  • 深圳网站的建设维护公司现代农业建设 乡网站
  • Flutter---异步编程
  • 为什么浙江建设厅网站漯河市建设监理协会网站
  • 中国建设银行海南省分行网站教学活动设计方案模板
  • Nginx 零停机平滑升级完整指南
  • 洞头区网站建设收费本地同城服务平台
  • 易语言网站做软件下载上海园区虚拟地址一览表
  • wordpress多站点好吗网页设计居中代码
  • 继荣获GitCode G-Star认证后,数式Oinone入选2025年GitCode百大开源项目
  • 青少年CTF Crypto-factor1
  • 做平面哪个网站的素材最好wordpress一键 centos
  • 商城网站 搭建做小程序的平台
  • 金融网站建设案例仿淘宝网站制作