Linux:网络编程之TCP/IP模型,UDP协议

一、OSI模型七层结构

  OSI(Open Systems Interconnection)模型,即开放系统互连参考模型,是一个概念性框架,用于促进全球通信。它定义了网络通信的七层结构,每一层都执行特定的功能,并且每一层都使用下一层提供的服务,同时向它的上一层提供服务。这七层从下到上依次是:

  1. 物理层(Physical Layer)
    • 功能:定义物理设备之间如何传输原始比特流(0和1)。它定义了物理连接的特性,如电气规范、机械特性、功能和过程特性等。例如,以太网和光纤都是物理层的实现。
    • 例子:双绞线、同轴电缆、光纤、无线电波等物理传输介质;传输速率如100Mb/s、1Gb/s、10Gb/s等。
  2. 数据链路层(Data Link Layer)
    • 功能:数据链路层在物理层之上,负责将原始的比特流封装成帧(Frame),并提供错误检测和修正功能,确保数据的可靠传输。这一层还负责在物理网络中识别设备地址(如MAC地址)。
    • 例子:以太网(Ethernet)、帧中继(Frame Relay)、PPP(点对点协议)等;交换机工作在数据链路层。
  3. 网络层(Network Layer)
    • 功能:负责将数据包(Packet)从源端传输到目的端,可能跨越多个网络。
    • 例子:IP(Internet Protocol)协议;路由选择、流量控制、错误处理以及网络互联等功能;NAT(网络地址转换)也是网络层的一个功能。
  4. 传输层(Transport Layer)
    • 功能:为端到端的通信提供可靠的传输服务,确保数据包的顺序传输和完整性。
    • 例子:TCP(传输控制协议,提供面向连接的、可靠的传输服务)和UDP(用户数据报协议,提供无连接的、不可靠的传输服务,低延迟)。
  5. 会话层(Session Layer)
    • 功能:在两个通信的应用进程之间建立、管理和终止会话,管理通信双方之间的对话控制。
    • 例子:会话管理,如建立检查点、同步等;虽然具体协议不如低层那么知名,但它负责在网络应用之间建立和维护连接。
  6. 表示层(Presentation Layer)
    • 功能:对数据进行转换、加密和压缩,以便在应用层之间传输。
    • 例子:数据压缩(如gzip)、加密/解密(如SSL/TLS中的加密)、数据格式转换(如ASCII与EBCDIC之间的转换)。
  7. 应用层(Application Layer)
    • 功能:为用户的应用程序(如Web浏览器、电子邮件客户端等)提供网络服务。
    • 例子:HTTP(用于Web通信)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、TFTP(简单文件传输协议)、DNS(域名系统)等。
  • NAT(网络地址转换) 是网络层的一个功能,用于解决IPv4地址不足的问题,通过在网络边界将私有IP地址转换为公网IP地址。

OSI模型为网络通信提供了一个标准化的框架,尽管在实际应用中,TCP/IP协议栈(包含四层:网络接口层、网络层、传输层和应用层)更为广泛地被采用。然而,OSI模型仍然是理解网络通信原理的重要基础。

二、TCP/IP模型  

网际互联模型   ==》分为4层:
      实用模型  ===》工业标准
   也称tcp/ip协议栈
        

1. 应用层(Application Layer)

  • 职责:提供网络服务给最终用户,支持各种应用程序,如电子邮件、网页浏览、文件传输等。
  • 协议:HTTP(用于网页浏览)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。
  • 特点:应用层是TCP/IP协议栈中的最高层,为应用程序提供了接口,允许用户直接访问和使用网络服务。

2. 传输层(Transport Layer)

  • 职责:提供端到端的数据传输服务,确保数据的可靠性、顺序性和流量控制。
  • 协议:TCP(传输控制协议)和UDP(用户数据报协议)。
  • 特点:TCP协议提供可靠的、面向连接的数据传输服务,通过“三次握手”建立连接;UDP协议则提供无连接的数据传输服务,不保证数据的可靠性,但速度较快。

3. 网络层(Network Layer)

  • 职责:处理来自传输层的分组,将分组封装成数据包(IP数据包),并为数据包进行路径选择,最终将数据包从源主机发送到目的主机。
  • 协议:IP(网际协议)、ICMP(互联网控制消息协议)、IGMP(互联网组管理协议)、ARP(地址解析协议)等。
  • 特点:网络层负责数据包的路由和转发,确保数据包能够跨越不同的网络区域,从源主机准确地到达目的主机。

4. 接口层(Interface Layer,也称为网络接口层或数据链路层)

  • 职责:负责将数据包从物理介质发送到网络上的其他设备,处理物理地址(MAC地址)和数据帧的格式。
  • 协议:以太网、WiFi、PPP(点对点协议)等。
  • 特点:接口层是TCP/IP模型中最底层的一层,它直接与物理网络相连,负责数据的实际传输过程。它使用各种物理网络协议来确保数据帧在物理介质上的可靠传输。

TCP/IP协议与七层ISO模型的对应关系,大致如下图所示:

Linux:网络编程之TCP/IP模型,UDP协议_第1张图片

                    图:TCP/IP协议与七层ISO模型的对应关系​​​​​​​

DHCP(Dynamic

你可能感兴趣的:(网络,服务器,linux,c语言,tcp/ip,udp)