嵌入式Linux网络编程,网络基础,OSI七层模型,TCP/IP四层模型,TCP/IP通信模型、协议结构、封包与拆包,TCP/UDP协议特点及适用情况

1,TCP协议分成了两个不同的协议----->TCP/IP协议诞生

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

2,网络的体系结构

  1. 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
  2. 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
  3. 网络体系结构即指网络的层次结构和每层所使用协议的集合
  4. 两类非常重要的体系结构:OSI与TCP/IP

2.1,OSI开放系统互联模型

OSI模型相关的协议已经很少使用,但模型本身非常通用
OSI模型是一个理想化的模型,尚未有完整的实现
OSI模型共有七层(右图)
低层是Linux内核中的内容
高层是在应用空间
  1. 交换机:
    ·两层交换机(偏硬件)—数据链路层
    ·三层交换机(偏软件)—网络层
  2. 交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。
  3. 路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。交换机最大的好处是快速,路由器最大的好处是控制能力强。

2.2,TCP/IP协议族的体系结构

TCP/IP协议是Internet事实上的工业标准。
一共有四层
下三层是Linux内核中的内容
应用层是在应用空间
  1. 网络接口和物理层:硬件驱动,屏蔽硬件差异,形成统一的接口(内核中的struct net_device)
  2. 网络层(IP层):跨不同的操作系统和机器,实现端到端的传输数据
  3. 传输层:数据应该交给哪一个任务处理
  4. 应用层:各种应用层的协议
各层典型的协议
应用层 HTTP/HTTPS:网页访问协议
邮件发送接收协议: POP3(收)/SMTP(发) 、IMAP(可接收邮件的一部分)
FTP:文件传输
Telnet/SSH: 远程登录
嵌入式相关:NTP: 网络时钟协议
嵌入式相关:SNMP: 简单网络管理协议(实现对网络设备集中式管理)
嵌入式相关:RTP/RTSP:传输音视频的协议(安防监控)
传输层 TCP: (Transfer Control protocol,传输控制协议) 提供面向连接的,一对一的可靠数据传输的协议 即数据无误、数据无丢失、数据无失序、数据无重复到达的通信
UDP: (user Datagram Protocol, 用户数据报协议): 提供不可靠,无连接的尽力传输协议 是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
SCTP: 是可靠传输,是TCP的增强版,它能实现多主机、多链路的通信
网络层(IP层) IP: Internet protocol(分为IPV4和IPV6)
ICMP: Internet控制管理协议,ping命令属于ICMP
IGMP: Internet分组管理协议,广播、组播
网络接口和物理层 MAC地址:48位的数,全球唯一,网络设备的身份标识
ARP:通过IP地址找到(解析)MAC地址
RARP:通过MAC地址找到IP地址
PPP协议:拨号协议(电话线、3G、4G)

3,TCP/IP协议通信模型

在这里插入图片描述

3.1,TCP/IP结构

在这里插入图片描述

3.2,TCP/IP协议通信模型

在这里插入图片描述

  • MTU(Max Transfer Unit):最大传输单元,和网络类型有关
    ·以太网:MTU=1500字节
  • mss(maximum segment size):最大段大小,和网络类型、线路、系统特性等相关

3.3,数据的封装与传递过程(封包和拆包)

在这里插入图片描述

4,TCP协议特点

  1. TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)
  2. 适用情况:
    ·适合于对传输质量要求较高,以及传输大量数据的通信。
    ·在需要可靠数据传输的场合,通常使用TCP协议
    ·MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

5,UDP协议特点

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

  2. 适用情况:
    ·发送小尺寸数据(如对DNS服务器进行IP地址查询时)
    ·在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
    ·适合于广播/组播式通信中。
    ·MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
    ·流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

猜你喜欢

转载自blog.csdn.net/m0_37542524/article/details/84069818