嵌入式Linux网络编程,网络基础,OSI七层模型,TCP/IP四层模型,TCP/IP通信模型、协议结构、封包与拆包,TCP/UDP协议特点及适用情况
2018-11-14 17:03
1061 查看
文章目录
1,TCP协议分成了两个不同的协议----->TCP/IP协议诞生
- 用来检测网络传输中差错的传输控制协议TCP
- 专门负责对不同网络进行互联的互联网协议IP
2,网络的体系结构
- 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
- 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
- 网络体系结构即指网络的层次结构和每层所使用协议的集合
- 两类非常重要的体系结构:OSI与TCP/IP
2.1,OSI开放系统互联模型
OSI模型相关的协议已经很少使用,但模型本身非常通用 | |
OSI模型是一个理想化的模型,尚未有完整的实现 | |
OSI模型共有七层(右图) | |
低层是Linux内核中的内容 高层是在应用空间 |
- 交换机:
·两层交换机(偏硬件)—数据链路层
·三层交换机(偏软件)—网络层 - 交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。
- 路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。交换机最大的好处是快速,路由器最大的好处是控制能力强。
2.2,TCP/IP协议族的体系结构
TCP/IP协议是Internet事实上的工业标准。 | |
一共有四层 | |
下三层是Linux内核中的内容 应用层是在应用空间 |
- 网络接口和物理层:硬件驱动,屏蔽硬件差异,形成统一的接口(内核中的struct net_device)
- 网络层(IP层):跨不同的操作系统和机器,实现端到端的传输数据
- 传输层:数据应该交给哪一个任务处理
- 应用层:各种应用层的协议
各层典型的协议 | ||
---|---|---|
应用层 |
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协议特点
- TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)
- 适用情况:
·适合于对传输质量要求较高,以及传输大量数据的通信。
·在需要可靠数据传输的场合,通常使用TCP协议
·MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
5,UDP协议特点
-
UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
-
适用情况:
·发送小尺寸数据(如对DNS服务器进行IP地址查询时)
·在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
·适合于广播/组播式通信中。
·MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
·流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输
相关文章推荐
- 一、Linux网络编程-TCP/IP基础(一)ISO/OSI参考模型、TCP/IP四层模型、基本概念
- (四十五)网络基础——OSI七层模型简介和TCP/IP四层模型及其通信过程
- 网络基础 — OSI七层协议模型、TCP/IP四层模型
- Linux网络编程——OSI七层模型、TCP/IP模型
- Linux网络基础-ISO/OSI七层模型、TCP/IP四层模型
- 五、Linux网络编程-TCP/IP基础(五)滑动窗口协议、UDP特点、UDP报文格式
- iOS 开发 网络编程详解之OSI七层模型和TCP/IP四层模型
- Linux网络编程之[基于socket通信的tcp协议的编程模型]
- linux网络编程之IP协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)和TCP、UDP协议头结构总结
- linux网络编程之TCP/IP基础(四):TCP连接的建立和断开、滑动窗口
- 网络编程知识(12)--ISO/OSI七层模型和TCP/IP四层网络模型
- linux网络编程之TCP/IP基础(三):IP数据报格式和IP地址路由
- osi七层模型和tcp/ip四层模型每层作用和协议
- 黑马程序员--图形界面中的鼠标,键盘两个事件,做一个磁盘的文件列表,菜单,子菜单,模拟记事本。网络编程,TCP的通信协议的特点
- linux网络编程基础——TCP/IP认识
- 二、Linux网络编程-TCP/IP基础(二)MTU、路径MTU、以太网帧格式、ICMP、ARP、RARP
- XMPP框架 微信项目开发之网络通信基础——OSI_TCP/IP 参考模型的理解
- linux网络编程之TCP/IP基础(二):利用ARP和ICMP协议解释ping命令
- 嵌入式 TCP/IP 协议单片机技术在网络通信中的应用
- Linux 网络编程笔记(1)——TCP / IP 基础